arkadeSwapRequest) is specified and joins when served —
Arkade Asset Swaps covers how that route
sources its quote today.
Quote Lifecycle
1
Discover eligible solvers
Filter accepted solver cards by network, route, amount, and application
policy. Discovery advertises capability; it does not prove inventory.
2
Request terms
Address an encrypted request to one solver, or publish the request and
select one sealed bid.
3
Verify the quote
Check solver identity, route, amounts, expiry, timing, and settlement
profile. Derive the contract locally and reject any mismatch.
4
Persist and commit
Persist the complete recovery record, then perform the route’s first
enforceable commitment before
valid_until.5
Settle or recover
Complete the destination action and required claims, or follow the
settlement profile’s timeout
and refund paths.
Addressed and Published Requests
Neither a request nor a bid locks funds. A bid is signed and attributable but
not bonded. The signed quote returned by the selected solver is the binding
RFQ message. A client publisher for published requests is tracked in
ts-sdk#725; with it,
dropping the transport’s
solverPubkey is the entire client change.
Relay
RFQ messages may travel through Nostr relays. Client and solver each dial out; neither needs to accept inbound connections. A relay transports messages but does not select a solver, aggregate quotes, or touch funds.
The negotiation kinds sit in NIP-01’s ephemeral range: relays deliver
them to live subscribers and store nothing, so an expired negotiation leaves
no public record. The cost is no store-and-forward — a request sent while the
solver is offline is dropped, which the client timeout and retry cover. The
advertisement is replaceable: standing state a relay keeps the current
version of. Kind numbers remain provisional.
Message Family
Every payload carries the envelope{"v": 1, "type": …}.
Addressed payloads are transport-independent. The reference service accepts
HTTP and Nostr traffic; clients can implement another transport while
preserving the same payloads.
Quote Boundary
Economic commitments stay at the top level. Settlement construction data stays insideprofile.
Profile fields are also checked against client-owned inputs such as an invoice,
payment hash, destination, and network. Recheck time-sensitive conditions
immediately before value moves.
Transport Requirements
Regardless of transport implementation:- reconnect after both connection errors and clean closes;
- restore live subscriptions on a new connection;
- bound and persist or reject outbound events queued while disconnected;
- correlate every response with the expected RFQ identifier and route;
- treat a status timeout as unknown, not failed.