Skip to main content
An Arkade asset swap follows the same quote-first flow as every route. Today the quote is computed client-side: the application prices it from the market card’s own feed, the user funds the derived contract, and any compatible solver fills it. The contract records what the user gives and the minimum result a fulfillment must deliver; it stays open until a solver fills it or the user cancels. The RFQ transport for this route is specified and replaces local pricing without changing the flow. Posting a standing offer at a user-chosen price is future work, outside Intents.

Lifecycle

Asset swap states has the state diagram and maps each status to the evidence that proves it. An unfilled swap has no expiry — it stays open until filled or cancelled. Cancellation can race a fill: if the deposit is already spent, inspect the spending transaction before deciding whether the swap was fulfilled or cancelled.

Discovery and Pricing

Solver cards advertise supported pairs, amount bounds, indicative fees, and a price feed for cross-asset markets. Applications choose which cards and registries they accept. The card and feed are advisory:
  • they do not reserve solver inventory;
  • a feed response is not a signed quote;
  • the application applies its own freshness, tolerance, and eligibility policy;
  • the user reviews the resulting deposit, receive amount, and fee before funding.
See Discovery and Registries for the card and index formats.

Funding the Swap

The application derives the non-interactive swap contract from the approved terms. createOffer registers the contract and returns the type 0x03 extension; it does not broadcast a transaction. The swap becomes discoverable when the wallet funds the derived address and includes that extension. The packet tells solvers watching the Arkade transaction stream how to interpret the funded output. Persist both the encoded offer and the funding transaction identifier. Identical terms derive the same address, so the address alone does not identify one deposit.

What the Contract Enforces

The non-interactive swap contract binds the asset identity and minimum amount the fulfillment must deliver. Both legs settle in one Arkade transaction. The contract does not guarantee:
  • that a solver has sufficient inventory;
  • that the feed represented a fair or current market price;
  • that the swap fills within a particular time;
  • that an asset issuer redeems or honors the asset.
The covenant path depends on the Emulator key, which the client package resolves from the Arkade operator (overridable via the optional emulatorPubkey parameter). Review Trust and Limitations before using the flow with value.

The maker Fields

The covenant programs and the Offer type carry maker* identifiers — makerWP, makerPkScript, makerPublicKey. They name contract positions, not roles: the side that funds the swap and receives the fill. Arkade Intents deliberately avoids maker and taker as participant vocabulary; the parties are the user and the solver.

Negotiated Arkade Swaps

The client package can map a negotiated Arkade-to-Arkade quote onto the same swap terms. No reference solver serves that RFQ path today, so current Arkade asset integrations use discovery and market-feed pricing.

Sources