Mathematically Backed Asset

A digital reconstruction of what a coin used to be: real metal inside, the minter's stamp on the face. In an MBA the "metal" is proof-of-work BCH sealed inside the issuing covenant, and the "stamp" is the covenant bytecode itself — enforced not by a mint's reputation but by Bitcoin Cash consensus. The reservoir IS the liquidity; there is no issuer treasury, no peg desk, no counterparty.

chipnet · live mainnet · view-only

The heritage — what a coin used to be

Before fiat, a coin was two things fused together: a measured amount of metal, and the minter's stamp pressed into its face. The metal was the value; the stamp was the assertion of authenticity and weight. You could reject the stamp and still trust the coin — a goldsmith's scale told you what the metal was worth. You could trust the stamp and skip the weighing — but only if you trusted the mint.

Both halves mattered. The metal was the sound money: scarce, costly to produce, inherently valuable. The stamp was the convenience layer: it let coins change hands without the weigh-and-assay step every single time.

A Mathematically Backed Asset reconstructs that two-part structure on Bitcoin Cash. The sound money is proof-of-work BCH — scarce, costly, inherently valuable, sealed inside the issuing covenant. The stamp is the covenant bytecode itself: an on-chain program, provably immutable, that identifies the issuer and enforces the conservation rule. The enforcement that physical coinage got from chemistry (metal cannot leave the coin without destroying it), an MBA gets from Bitcoin Cash consensus (BCH cannot leave the reservoir except through the redeem branch, which burns the matching units). Different mechanism, identical property.

What makes it an MBA

An MBA is distinct from an ordinary CashToken in one load-bearing way: the backing is inside the covenant. A conventional CashToken is a mint — someone issues units, someone else owns them, and there is no on-chain commitment that any amount of BCH stands behind them. An MBA's issuing covenant locks backingRateSats satoshis per minted unit into itself at the moment of mint, and refuses to let those satoshis out except via the redeem path that burns the corresponding units.

The practical consequence: an MBA has a floor price it cannot drop below without the covenant breaking. For a 100 sats/unit MBA, 1 unit = 100 sats always, as long as the covenant is spendable. There is no market mechanism that can push it below the backing.

Template families

Every MBA uses one of four cashscript covenants. The one you're reading is identifiable from the templateId byte in the asset's DVMB OP_RETURN sidecar, or from the covenant bytecode itself. Three families are live (CoinMBA, ShareMBA, OracleMBA); the fourth (DynamicMBA) is a reserved slot for the Dynamic Rate Asset covenant.

templateIdFamilyRateFee behaviorWho gets paid
0x00 Static · CoinMBA Fixed sats/unit, baked at genesis Flat founderFeeBps (0..500) Founder of the asset
0x01 Share · ShareMBA Fixed sats/unit Flat feeBps, split companySplitBps:(10000-split) between company and shareholder vault Company treasury + distribution vault
0x02 Oracle · OracleMBA Set by a signed price feed at claim time Flat feeBps + oracle-sized overhead Founder; oracle receives no fee from this flow
0x03 Dynamic · DynamicMBA (scaffold) Computed from on-chain state (reservoir depth, time, mint-count catalysts) — no oracle TBD with the DRA spec TBD

DynamicMBA is distinct from FIATμ: FIATμ combines a dynamic-rate layer with an oracle signal to track a fiat purchasing-power target, while pure DRA (what DynamicMBA covers) works without any oracle, reflective against a shared pool.

The protocol-level fee behavior is the same across all three: on top of the covenant's own fee, a platform fee of 0.5% currently applies (40% to the Potidaea platform, 60% to the DEA Yield vault), configured in the client at swap-build time. The platform fee is a client enforcement, not a covenant rule — a wallet that strips it still produces a tx the covenant accepts, so trust in that fee rests on the client, not the chain.

How to interact

Three operations, all one chipnet transaction each:

Trust model — what the covenant guarantees

Reading an MBA is reading a cashscript covenant. The guarantees come from BCH consensus, not from any team or process:

The guarantees deliberately do not include:

Reading MBAs from any BCH wallet

A BCH wallet that holds an MBA category id displays it correctly through either of two sidecars we emit alongside every genesis and publish transaction:

If your wallet does not autoresolve a new MBA by itself, paste its 32-byte categoryId into the wallet's "Add asset" / "Import token" dialog — the BCMR auto-fetch will fire from there in most wallets.

What a third-party wallet needs to integrate

Two integration tiers. Pick the one that matches what your wallet already does with other CashTokens.

Tier 1 — display only (balance, name, icon)

Zero per-asset work. If your wallet already reads CashToken categories from an electrum endpoint and already honours BCMR, every MBA shows up correctly the moment the user holds one. The genesis transaction carries a OP_RETURN <'BCMR'> <sha256(json)> <url> output; fetch the URL, verify the hash matches, read identities[categoryId] for ticker/name/icon. Nothing from us needs to be installed, imported, or trusted beyond the BCH chain and the on-chain hash gate.

Requirements: an electrum endpoint, BCMR support (CHIP-2023-04), standard CashToken parsing. All already in Cauldron, Selene, Zapit, Bitcoin.com, Cashonize, Paytaca.

Tier 2 — transact (claim / redeem / swap directly)

Needed if the wallet wants to let the user mint or redeem an MBA without routing them to the Potidaea dApp. Requires the covenant artifact plus the exact transaction shape.

What you need:

Claim transaction shape (BCH → MBA):

input  [0]     reservoir UTXO at contract.tokenAddress (minting NFT, carries supply)
input  [1..N]  payer's plain BCH inputs

output [0]     fresh reservoir at contract.tokenAddress — new supply balance
output [1]     payer's MBA output at payer's tokenaddr — amount = floor(grossSats / rate)
output [2]     founder fee (sats, plain BCH) → founderLockingBytecodeHex   [if feeSats > 0]
output [3..4]  Potidaea platform fee outputs                               [optional]
output [N-1]   BCH change back to payer

Redeem transaction shape (MBA → BCH):

input  [0..N]  payer's MBA UTXOs (same categoryId); their satoshis field IS the backing
               that will be released. The MBA token outputs are NOT re-emitted — they
               are consumed by the implicit burn (no output carries that category).

output [0]     payer's net plain BCH output
output [1]     dust padding at payer       [only if leftoverBacking < 1000 sats, see dust floor]

No covenant input is required on redeem — MBA UTXOs are plain P2PKH-shaped once held in a wallet; the covenant only polices mint. The reduction in circulating supply is implicit (no output carries the burned category).

Tier 3 — route to Potidaea

If you don't want to ship covenant code at all, deep-link into our dApp: https://navigate.st/bns/potidaea.asm/?from=BCH&to=<ticker>&amount=<sats>. The user signs in Potidaea with their existing wallet (WalletConnect or copy-paste the signed tx hex back), you keep your wallet off the covenant surface entirely. Lowest integration cost, highest UX overhead.

Live chipnet catalog

Deployed and chipnet-verified at the time of writing. Mainnet remains view-only — no MBAs are deployed on mainnet yet.

TickerFamilyRateFeeCategory id
ASM Static 100 sats/unit 1.0% 09af8a5b…75d67231
ASM2 Static 1 000 sats/unit 1.0% 8a9f592d…8fea2815

The protocol swap has been chipnet-validated continuously since 2026 with 52 998 recorded swaps and zero exploits (canonical tally in Parameters/ASM_Native/ASM-single-asset-throughput.md).

For developers

Everything a dApp needs to interact with an MBA sits in two files:

A claim transaction's shape is deterministic:

input [0]      the reservoir UTXO (contract, consumes a minting NFT)
input [1..N]   payer's plain BCH inputs

output [0]     fresh reservoir UTXO (contract, remaining supply)
output [1]     payer's new MBA output (token category = this MBA)
output [2]     founder fee (sats)                       — present if feeSats > 0
output [3]     platform fee (sats)                      — Potidaea convention
output [4]     DEA yield vault (sats)                   — Potidaea convention
output [5]     change back to payer

Rate derivation: amountUnits = floor(grossSats / backingRateSats). Chipnet dust floor forces a minimum claim; for a rate of 100 sats/unit at 1% fee that minimum is 546 sats paid in.

Verify a covenant's identity before trusting any client-supplied params:

  1. Rebuild the Contract(artifact, [categoryId, rate, feeBps, founderLB]) locally.
  2. Compute the derived contract.tokenAddress.
  3. Confirm it equals the on-chain address holding the reservoir. If not, the sidecar params are lying.