Transactions
The stablecoin module adds a single native transaction payload type, Convert (type 7),
contiguous with the core types (transfer, bond, sortition, unbond, withdraw, batch-transfer). A
Convert carries an operation enum that selects which stablecoin conversion it performs, plus a
uniform amount (the operation’s input quantity) and min_out (a slippage bound). There is no
price-attestation transaction — the oracle price rides in the block’s OracleData section, not in a
transaction.
| Op | amount is… | min_out is… | Purpose |
|---|---|---|---|
MINT_STABLE | ANM deposited (Gust) | min stablecoin out (NanoUSD) | Deposit ANM at the oracle price and mint stablecoin, if the post-mint collateral ratio stays above the floor. |
REDEEM_STABLE | stablecoin burned (NanoUSD) | min ANM out (Gust) | Burn stablecoin and withdraw ANM at the oracle price. |
MINT_RESERVE | ANM deposited (Gust) | unused (0) | Mint reserve-coin (the junior/equity tranche) by contributing ANM to the reserve. |
REDEEM_RESERVE | reserve-coin shares to burn | min ANM out (Gust) | Burn reserve-coin and withdraw the corresponding ANM. |
REDEEM_RECOVERY | recovery-token face (NanoUSD) | min ANM out (Gust) | Redeem recovery tokens (a deferred senior claim issued during a debt restructuring) pro-rata from the recovery fund. |
Convert tx (type 7, with the op enum above) so the protocol keeps its small, fixed set of
transaction types; the on-chain math and gating are identical. The taxonomy is 11 contiguous
types (1–11) with no reserved gaps — Convert is type 7, the protocol-only Coinbase mint is
type 8, and the pooled-delegation Delegate / Undelegate / ClaimReward payloads are types 9–11
(the last type); any future type would append at 12.Convert reuses the existing signature/auth machinery — it is an ordinary signed transaction, decoded
by the same switch as every other payload type. Because mint/redeem move value against the committed
oracle price and the reserve, they are gated by the module’s circuit breaker (a per-period net
mint/redeem cap) and the operating mode (mint/redeem halt below the collateral floor or during the
terminal wind-down).
At launch: bootstrap funding before minting opens
On a fresh network these transactions follow the two-phase reserve bootstrap (see
Overview). During Phase 1,
MintReserve is the bootstrap funding transaction: it seeds the reserve toward the genesis target
(BootstrapReserveTarget, default 75,000 ANM) with the anti-hype cap bypassed. While the bootstrap
is incomplete, MintStable is rejected — minting is gated until the reserve first reaches the target
and the BootstrapDone latch flips. Once it does, MintStable opens under the normal collateral floor
and MintReserve is subject to the anti-hype cap again.
See Overview for the mechanism and Oracle for how the price these transactions use is derived.
Transferring USD and reserve coin (peer-to-peer)
Convert changes the supply of an asset (mint/redeem against the reserve). Moving an asset
between holders is a different operation: the unified Transfer (type 1) now carries an asset
selector, so the senior USD stablecoin and the reserve coin (RC) are peer-to-peer
transferable for the first time — the same one transfer path that moves native ANM.
| Asset | amount is… | What moves |
|---|---|---|
ANM | Gust | the native account balance (unchanged from before) |
USD | displayed NanoUSD | senior stablecoin shares (converted from the displayed amount at the current senior index) |
RC | reserve-coin shares | junior-equity shares directly |
A transfer is a pure move: it debits the sender and credits the recipient with no change to any
global supply counter (it mints and burns nothing). Conservation is exact — Σ holder.Shares
equals the unchanged senior TotalShares, and Σ ReserveCoinShares equals the unchanged
ReserveCoinSupply. The recipient’s stablecoin account is created if it doesn’t exist yet, and the
fee is always paid in native ANM regardless of the asset moved.
From the wallet: anemos-wallet send transfer <FROM> <TO> <AMOUNT> --asset {anm|usd|rc} (the
--asset flag defaults to anm).
Using it from the wallet
Each of the Convert operations maps to an anemos-wallet send subcommand — mint-stable,
redeem-stable, mint-reserve, redeem-reserve, and redeem-recovery. For the exact command
syntax, arguments, and a worked example against the public testnet endpoint, see
Stablecoin transactions in the wallet tutorial.