IARC20 interface. A field token ID identifies the program used for each call.
Required transfer paths
An asset used by the AMM must support the transfer paths exercised by its workflows:- Private to public for mint, increase, and swap funding
- Public to private for collect, swap output, and refunds
- Public transfer for protocol fee collection
Included programs
Development fixtures include:- Self-contained ARC-20 example
- Test token A through D
- Wrapped native credits
- Wrapped USDCx test adapter
USDCx caveat
The included wrapped USDCx program depends on a test stablecoin program. Once value is inside the wrapper, its ARC-20 transfer functions do not consult the underlying issuer freezelist or compliance proof. Before enabling a USDCx market, verify whether issuer controls survive the wrapper boundary. Cover minting, redemption, account freezes, freezelist enforcement, authorization, and disclosure semantics.Token metadata and allowlisting
A development script seeds token metadata into the off-chain API. Bootstrap later reads that API to set the on-chain pool-creation allowlist and wrapper relationship. These are distinct actions:- API metadata makes an asset discoverable to tooling.
allow_token(token_id, underlying_token_id)permits pool creation and records a wrapper relationship when the IDs differ.- Token and pair pauses can later block entry and trading.