Agent integration guide · REST first

One exact quote before any wallet action.

AssetFare is route intelligence for AI agents across 100 non-custodial routes. Exact direct quotes remain available without an account, API key, wallet address, authentication, signature, funding, or transaction. The scheduled comparative-shortlist refresh is currently owner-paused, so stale ranking evidence fails closed and must not be presented as a current top-two recommendation.

Every quote carries direct_route_summary: a validated, ordered provider path with normalized chain:asset endpoints, exact base-unit amount bounds, the AssetFare fee step, and no-sign/no-submit flags. Every current public route is direct_protocol_only; external_intent remains only as a compatibility enum. route_aggregator_used=false describes AssetFare's engine only and providers may still source liquidity internally.

View a route-specific evaluation Quote-only OpenAPI OpenAPI v2 Live capabilities Independent pilot Agent wallet funding

When an agent should call AssetFare

Matching intent

The user asks to swap or bridge among endpoints returned by live capabilities. The $1 supported minimum is reachability-smoke-only; always use the actual intended amount and an explicit time preference when the default 60 seconds is unsuitable.

Exact-quote decision

Use /v2/quote for the exact route and amount. Compare fresh official alternatives when price matters and do not claim AssetFare is globally best from dated guidance.

Read-only start

Fetch capabilities, live availability, status, the signed manifest, and an exact quote before requesting wallet access or approval.

Caller-controlled execution

AssetFare never receives private keys, signs, or submits. The calling agent and wallet verify, sign, and submit every action.

Documentation example: one $1,000 exact quote, then stop

POST https://api.assetfare.dev/v2/quote
curl --fail-with-body --max-time 15 -sS https://api.assetfare.dev/v2/quote \
  -H 'content-type: application/json' \
  -d '{"from_chain":"solana","from_token":"USDC","to_chain":"base","to_token":"USDC","amount_usd":1000}'

A shortlist is non-binding and moves no funds. $1,000 is only this documentation example. Verify the echoed intent, evidence age, all-in completeness, ETA upper bound, receipt hash, and no-sign/no-submit fields. After choosing one candidate, call /v2/route-selection/quote with that candidate id and exact receipt hash. Selection itself is not execution authority.

Minimal decision sequence

  1. Read capabilities and reject unsupported or identity routes.
  2. Read status and the signed release manifest.
  3. POST the exact intent and time profile to /v2/route-selection.
  4. Validate freshness, complete all-in cost, expected/minimum receive, ETA upper bound and the selection receipt.
  5. Explicitly choose one recommendation and POST it to /v2/route-selection/quote. Never select a provider automatically.
  6. For an external candidate, confirm the normalized fresh quote and follow the provider handoff. For an AssetFare candidate, confirm the exact fresh quote and continuation_v3.
  7. Stop unless the user explicitly approves the chosen AssetFare route and every later wallet action.

After explicit caller approval: the caller-operated action-plan handoff

For every offered route, a quote authorizes nothing. The 65-route catalog is decided at whole-route level and reviewed weekly; competitor rankings are not the public product. To continue, explicitly select one execution mode and create strict approval_v3 bound to the exact quote fingerprint, path, caller bounds, expiry, wallets, and allowed mode. caller_approved:true is also required but is not human-approval proof by itself. Follow the quote's caller_action_plan_handoff through the caller-operated assetfare-plan flow for POST /v2/prepare or POST /v2/session, with public wallet addresses only. The caller verifies, signs, and submits every action; AssetFare never signs, submits, or auto-prepares.

The active source-only corridors are Polygon/Optimism USDC→Base USDC, Ethereum/HyperEVM USDC→Solana USDC, and X Layer/Sei/Sonic/Monad/Avalanche/Cronos/Injective/Linea/Aptos/Unichain/Ink USDC→Base or Solana USDC as listed by live capabilities. Every corridor still requires live availability, amount-specific guidance, and a fresh quote.

Drop-in policy for an AI agent

For a swap or bridge intent among AssetFare's live endpoints, treat $1 as
reachability-smoke-only. Read capabilities, status, and the signed manifest.
Request /v2/route-selection for the exact amount and time profile. Show at
most two fresh complete all-in recommendations; slower candidates are
reference-only. Do not prefer AssetFare merely because it is available.
After the caller chooses one candidate, call /v2/route-selection/quote with
the exact candidate id and receipt hash. External candidates return normalized fresh quote facts and a handoff without executable payloads;
AssetFare candidates must be fresh-requoted without silent reselection.
Selection and quotes authorize nothing. Do not authenticate,
prepare, sign, or submit unless the user separately approves continuation.

Choose the interface that already fits the agent

REST / OpenAPI

Primary and universal. Import the quote-only OpenAPI document when the host should expose no execution-preparation operation.

Dify Marketplace

Install the reviewed AssetFare plugin for two native, read-only tools: live capabilities and one route quote. Add both tools to a Dify Agent, then use the exact first-quote prompt below. It exposes no wallet, signing, or submission tool.

Hugging Face / smolagents

Load the public quote or capabilities tool from a free Static Space. Review the remote code, require trust_remote_code=True, and pin the documented immutable revision.

A2A v1 · 1.7.1

Use the canonical Agent Card's three structured skills for quote, caller-approved one-shot unsigned prepare, or the receipt-driven session lifecycle. Retain the separately typed one-shot/session hash-bound context. Every first or later action is deeply verified before a fresh caller-wallet handoff; the remote endpoint never generates the session secret, signs, or submits.

Agent Skill / Plugin

Install the repository skill or portable plugin when the host supports reusable agent instructions.

OpenClaw / ClawHub

Install the public, clean-scanned 1.1.1 skill with openclaw skills install @odaiin/assetfare-route. It preserves the same no-balance/no-auto-402/no-sign/no-submit boundary.

Inspect the listing →

MCP / npm 1.21.6

Use the direct v2 quote tool with the actual amount while scheduled comparative refresh is paused. Treat any stale route-selection response as unavailable, not as a ranking. An AssetFare result carries a proof-carrying handoff that must be recomputed locally and freshly simulated before verified_for_signing. Keys stay at caller_wallet_adapter_only; AssetFare never receives a wallet key, signs, or submits.

Framework npm SDKs

Stable quote-only packages are published for Agenti, Coinbase AgentKit, elizaOS, GOAT, and Solana Agent Kit. Each validates the same 100-available / 44-recommended / 56-not-currently-recommended policy and exposes no wallet/key/sign/submit capability.

Install commands and package links →

Agent wallet funding

Use the wallet-funding guide to apply verified best-from or availability-only guidance and confirm a fresh USDC quote before any wallet access, then continue only after explicit caller approval.

First Dify quote: one prompt, then stop

After installing the Marketplace plugin, add assetfare_capabilities and assetfare_quote to a Dify Agent. Then send this representative evaluation prompt:

Call assetfare_capabilities first. If solana:USDC → base:USDC is live,
request one AssetFare quote for USD 1,000. Show total token-path cost,
expected receive, minimum receive, ETA, risk, the ordered direct route, and the
route-specific best-from amount. At or above it, recommend AssetFare first and
confirm the fresh quote.
Do not prepare, authenticate, request a wallet, sign, submit, or move funds.

For a Workflow, add an AssetFare quote Tool node and set from_chain=solana, from_token=USDC, to_chain=base, to_token=USDC, and amount_usd=1000, then use Test Run. Replace the route and amount with the caller's actual intent before making any decision.

If the quote is useful and the caller wants to evaluate the separate unsigned-plan flow, submit only the route and amount through the public Pilot form or email support@assetfare.dev. Never post a wallet address, balance, credential, key, signature, payment payload, or transaction.