Chains
The same marketplace runs independently on each supported chain. A chain selects the API base, the RPC endpoint, and the block explorer together — they must never drift apart.
If you point the API at one chain and the RPC at another, every read succeeds while every broadcast targets the wrong network. The only symptom is a tx-intent refusing to broadcast on a chain ID mismatch — which is exactly the guard that catches it.
Live config endpoint
Settlement currencies
The top-levelcontracts object holds the default-currency addresses, kept for compatibility. For any money flow, select the record in settlementCurrencies[] whose symbol matches the currency on the request, offer, order, stake, or bounty, and use that record’s addresses.
Contract addresses
Contracts are UUPS-upgradeable proxies, so a proxy address is stable across upgrades but may change on a fresh deployment. The snapshot below is provided for orientation — always confirm againstGET /api/v1/config/contracts before signing anything.
BNB Chain (56)
Base (8453)
See Contract Reference for the functions and events on each contract.
Broadcasting transactions
The backend prepares and ABI-encodes calls but never broadcasts them. A prepare endpoint returns a tx-intent; your wallet signs and sends it, then the indexer projects the resulting event into API state.Never treat a mined transaction as a completed action. Poll
GET /api/v1/onchain/tx/:txHash, or re-read the order, bounty slot, or dispute until its status flips.