Rising Tide Developers
MarketplacesStacks

Payment Currency

The currencies a payment can settle in on Stacks - sBTC for collecting, STX for creating, the CurrencyCode values and their decimals.

The payment currency policy is chain-neutral: two levers, one resolution rule, enforced at the signing boundary. This page is the half of it that only holds on Stacks - which currencies exist, what they are worth, and what still has to be paid in gas.

The currencies

  • sBTC - what COLLECTING settles in. Bitcoin on Stacks, held through a decentralized peg with a signer set. The only currency an app accepts for a collect, and the floor every app accepts. 8 decimals (satoshis).
  • STX - what CREATING costs. The native asset. Stacks is the marketplace, and you pay a marketplace in its own token: the create fee and the gas underneath it are the same asset, so a creator holds one thing and spends it once. 6 decimals (microSTX).
  • Other SIP-010 tokens - optional. Never required, never default.

The two are not a preference between rails. They answer different questions, and this page used to describe STX as "supported but declining" as a way to pay - which was true of collecting and has never been true of creating.

The wire and database representation is the CurrencyCode enum: 'STX' | 'SBTC'. ('sBTC' with a lowercase b is a display label only.)

The gas requirement

The policy governs the settlement currency. It does not remove the gas requirement: a Stacks transaction fee is always paid in STX, whatever the payment settles in. True sBTC-only-with-no-STX (sponsored, gasless transactions) is tracked separately by the sbtc-native-payments work and stacks on top of the policy rather than replacing it.

Because the fee and the gas are the same asset, an app can state one number rather than a price plus a hedge about network costs.

This section used to end by explaining why the user-facing name for that float was credits. It is not, any more - see the ruling below.

Why not a single portable unit

The obvious-looking alternative is one name for "whatever pays to create", portable across every marketplace. Rising Tide shipped exactly that, called it credits, and retired it on 2026-08-26.

The decisive problem is not vocabulary. A credit that a person holds a balance of is scrip, and scrip requires a trusted issuer holding a reserve and promising to honour it. This protocol is meant to be forked and run by people who are not us, and an issuer cannot be forked. It would sit at the centre of the product rather than at its edge.

Three consequences follow, and each cuts the other way from the intuition:

  • Adding a marketplace stays flat. A native token needs an adapter. A shared unit needs a float, an FX pair, a sale path and a margin policy per chain - so the multichain goal argues for naming the token, not against it.
  • Marketplaces can compete, and the protocol stays neutral. One credit price across chains hides what each chain actually costs, which means quietly subsidising the expensive ones. A visible price gives a chain a reason to court creators.
  • A 1:1 peg makes the abstraction inert. It buys no insulation from volatility and no cross-chain consistency, while costing the full vocabulary. That is the worst cell in the matrix, and it is where we were.

Worth separating, because it is the part that is genuinely reusable: a credit does two jobs - denominate a price and hold a prepaid balance. Every hard problem above lives in the balance. Stable pricing without issuance is still available (quote against a stable target, charge in the native token) and is deliberately out of scope rather than ruled out.

What a second chain would change

The policy shape ports. This page does not. A second marketplace brings its own wrapped Bitcoin with its own trust model (see Stacks), its own native token, its own decimals, and its own token standard in place of SIP-010. CurrencyCode is a two-value enum today because there is one marketplace today.

The asymmetry is the useful part: only the create side needs a per-marketplace concept. sBTC, cbBTC and wBTC are wrappers over the same underlying asset, so one sat is one sat everywhere and the money side ports unchanged. That is why the marketplace, not the currency, is the primitive.

See also