Install
openclaw skills install @odaiin/assetfare-routeopenclaw skills install @odaiin/assetfare-routeUse REST/OpenAPI v2 at https://api.assetfare.dev/v2/openapi.json as the primary interface. The optional MCP endpoint is https://api.assetfare.dev/mcp.
Request one fresh AssetFare quote when all of these are true:
402 Payment Required response.Read /v2/capabilities to identify the live endpoints. Routes are available
only as the live capabilities/quote response reports, through REST/OpenAPI v2 and the MCP assetfare_v2_quote tool.
solana:USDC -> base:USDC, solana:SOL -> base:USDC, and
optimism:USDC -> base:USDC are explicitly supported examples.
Polygon and Optimism are directional native-USDC source-only origins to Base or
Arbitrum USDC and use the same caller-approved prepare/session boundary. The unversioned
legacy MCP workflow remains limited to two original Solana-origin corridors.
Do not request an AssetFare quote for an unsupported chain or asset, an identity route, an amount below $1 or a non-finite amount, or a custodial execution request. Do not request one merely because a payment wallet is empty when no spendable source asset is known, or when the wallet is already funded on an accepted payment rail. A quote is only a candidate-comparison input: it grants no wallet access, action preparation, signature, or submission authority.
assetfare_v2_capabilities and assetfare_v2_quote: the same full quote matrix, passing through the caller_action_plan_handoff.continuation_v3: full-quote and route hashes,
fingerprint claim, exact wallet/signer requirements, path, bounds, TTL, and
allowed modes. It remains unranked_candidate until a separate explicit
offline assetfare-select operation writes approval_v3 mode 0600.assetfare_v2_prepare (one-shot first unsigned bundle) and the assetfare_v2_session_create/_get/_observe_source/_observe_output/_refresh_action lifecycle. Remote clients generate the session capability locally from 32 CSPRNG bytes encoded as base64url; the remote adapter never generates that secret. The optional self-hosted stdio adapter additionally exposes assetfare_v2_new_session_capability as an offline helper. Each execution tool requires explicit caller approval and the caller's public wallet addresses, is never auto-called from a quote, and rejects private key/seed/signed transaction material. Never mix these with the legacy v1 session tools.solana:SOL -> base:ETH and solana:SOL -> arbitrum:ETH.Every v2 quote must include a validated direct_route_summary. Show its
ordered provider/from/to steps, normalized chain:asset endpoints, amount bounds,
and AssetFare fee step before recommending the candidate. Treat
direct_protocol_only as direct disclosed protocols; treat external_intent
as Across Robinhood ingress where provider-internal liquidity sourcing may
occur. route_aggregator_used=false describes only AssetFare's engine.
Validate continuation_v3 before showing the candidate. Do not emit
selection_status=selected, an idempotency key, or executable approval from a
quote-only evaluation. With no comparable external candidates, it must remain
unranked_candidate. Multi-step routes allow session only.
/v2/capabilities and /v2/status.from_chain, from_token, to_chain, to_token, and amount_usd to /v2/quote.approval_v3 from the exact unexpired
quote. Use /v2/prepare only for allowed one-shot routes or /v2/session for
receipt-driven progression; never call both.payload_sha256.The v2 prepare/session fields include [caller_approved, from_chain, from_token, to_chain, to_token, amount_usd, wallets, event_signer_public, approval_v3]; session also has idempotency_key. approval_v3 is optional only for the named legacy_advisory compatibility path. The caller—not an adapter—must supply literal caller_approved:true, which is not proof of human approval. wallets must exactly match continuation_v3.required_wallet_chains; the event signer must exactly match its boolean requirement. For Solana-CCTP only, generate a fresh ephemeral Solana keypair locally, send its public key, and retain its private key client-side. A session uses a caller-generated >=256-bit url-safe capability in X-AssetFare-Session-Token; raw tokens never belong in logs or structured output. Persist one only to an explicit new mode-0600 file. The server stores only its hash. Retain transaction hashes for recovery.
assetfare_manifest and assetfare_status.assetfare_quote with a finite whole-dollar amount of at least $1 and destination_chain set to base or arbitrum.
Treat $1 as reachability/schema smoke only; SOL input includes a swap, and
$1,000 is the primary representative evaluation amount.assetfare_start_wallet_auth, session creation, or action preparation.agent_must_verify item before the caller signs an unsigned action.After any delay or error, read the workflow state and current asset location. Never guess, silently rebuild, or resend a stale action.