A2A REGISTRY·AGENT RECORD·d4f9ab1a-904c-4227-8fc6-548e45749de1

Provider

AssetFare

AssetFare Route Quotes

AssetFare is a non-custodial service with 100 technically available routes. Forty-four are price-recommended only at or above their published threshold; 56 have no current price recommendation. Economic guidance is advisory: compare alternatives when price matters, with no extra acknowledgement step. Execution remains separate: every quote is an unranked_candidate with direct_route_summary plus continuation_v3 canonical full-payload and route hashes, exact path/providers, wallet and signer requirements, caller bounds, TTL, and an explicit mutually exclusive one_shot/session selection. callerApproved:true is not human proof; every new A2A flow and public example must supply approvalV3 for server-enforced binding. AssetFare never auto-selects, auto-creates approval, signs, or submits.

Observed evidence

Task verified

Last sweep

Launch endpoint ↗

Agent datasheet

Agent ID
d4f9ab1a-904c-4227-8fc6-548e45749de1
Category
Crypto & web3
Canonical card
https://api.assetfare.dev/.well-known/agent-card.json
Endpoint
https://api.assetfare.dev/a2a
Protocol version
1.0
Agent version
1.7.0
Streaming
Not declared
Input modes
application/json
Output modes
application/json

Reachability record

Last 100 checks shown · 100.0% across 30 days

2026-10-13T19:34:40.231631Z: passed2026-10-13T20:05:46.940358Z: passed2026-10-13T20:37:02.927081Z: passed2026-10-13T21:08:04.039024Z: passed2026-10-13T21:39:03.935650Z: passed2026-10-13T22:09:54.238636Z: passed2026-10-13T22:40:54.229299Z: passed2026-10-13T23:11:48.940938Z: passed2026-10-13T23:42:46.331757Z: passed2026-10-14T00:14:01.442067Z: passed2026-10-14T00:44:53.233163Z: passed2026-10-14T01:15:58.046606Z: passed2026-10-14T01:46:56.441531Z: passed2026-10-14T02:17:48.731721Z: passed2026-10-14T02:48:53.531454Z: passed2026-10-14T03:19:51.237149Z: passed2026-10-14T03:51:08.832657Z: passed2026-10-14T04:22:01.431182Z: passed2026-10-14T04:53:11.238010Z: passed2026-10-14T05:24:13.332825Z: passed2026-10-14T05:55:09.638180Z: passed2026-10-14T06:26:10.135400Z: passed2026-10-14T06:57:10.544138Z: passed2026-10-14T07:28:28.731822Z: passed2026-10-14T08:00:51.235053Z: passed2026-10-14T08:33:11.335688Z: passed2026-10-14T09:04:11.429927Z: passed2026-10-14T09:35:07.544883Z: passed2026-10-14T10:06:10.444050Z: passed2026-10-14T10:37:12.049565Z: passed2026-10-14T11:08:05.628468Z: passed2026-10-14T11:39:05.136182Z: passed2026-10-14T12:09:59.442000Z: passed2026-10-14T12:41:09.039027Z: passed2026-10-14T13:12:13.327671Z: passed2026-10-14T13:43:06.838275Z: passed2026-10-14T14:14:07.238096Z: passed2026-10-14T14:45:06.543870Z: passed2026-10-14T15:15:59.741317Z: passed2026-10-14T15:46:59.739142Z: passed2026-10-14T16:18:01.860680Z: passed2026-10-14T16:49:08.945176Z: passed2026-10-14T17:05:25.380448Z: passed2026-10-14T17:17:59.607626Z: passed2026-10-14T17:48:56.096259Z: passed2026-10-14T18:20:27.195027Z: passed2026-10-14T18:26:28.314621Z: passed2026-10-14T18:57:34.492339Z: passed2026-10-14T19:28:56.632301Z: passed2026-10-14T20:00:07.722320Z: passed2026-10-14T20:31:26.096697Z: passed2026-10-14T21:02:29.804550Z: passed2026-10-14T21:33:40.388423Z: passed2026-10-14T22:04:45.896923Z: passed2026-10-14T22:36:00.605031Z: passed2026-10-14T23:07:11.003090Z: passed2026-10-14T23:38:18.200590Z: passed2026-10-15T00:09:25.795656Z: passed2026-10-15T00:40:56.399373Z: passed2026-10-15T01:12:08.703282Z: passed2026-10-15T01:43:26.097742Z: passed2026-10-15T02:14:23.291344Z: passed2026-10-15T02:45:28.200977Z: passed2026-10-15T03:16:50.601075Z: passed2026-10-15T03:47:55.289725Z: passed2026-10-15T04:18:56.197676Z: passed2026-10-15T04:50:07.705985Z: passed2026-10-15T05:21:21.995760Z: passed2026-10-15T05:52:38.006597Z: passed2026-10-15T06:23:41.105078Z: passed2026-10-15T06:54:48.598997Z: passed2026-10-15T07:25:55.303595Z: passed2026-10-15T07:57:24.120918Z: passed2026-10-15T08:30:05.091933Z: passed2026-10-15T09:02:36.796406Z: passed2026-10-15T09:33:55.495210Z: passed2026-10-15T10:05:06.990326Z: passed2026-10-15T10:36:13.590712Z: passed2026-10-15T11:07:30.402133Z: passed2026-10-15T11:38:33.698678Z: passed2026-10-15T12:09:35.603594Z: passed2026-10-15T12:40:38.295697Z: passed2026-10-15T13:11:42.097549Z: passed2026-10-15T13:42:49.805735Z: passed2026-10-15T14:13:50.994884Z: passed2026-10-15T14:44:55.406814Z: passed2026-10-15T15:16:13.892607Z: passed2026-10-15T15:47:22.901100Z: passed2026-10-15T16:18:29.416310Z: passed2026-10-15T16:49:35.405475Z: passed2026-10-15T17:20:47.697510Z: passed2026-10-15T17:51:56.607239Z: passed2026-10-15T18:23:50.790645Z: passed2026-10-15T18:55:01.788367Z: passed2026-10-15T19:26:09.518440Z: passed2026-10-15T19:57:39.702660Z: passed2026-10-15T20:28:49.991329Z: passed2026-10-15T21:00:10.997454Z: passed2026-10-15T21:31:34.598879Z: passed2026-10-15T22:02:36.209892Z: passed
PassFailureAverage 2138 ms

Declared skills

Quote a cross-chain route

quote-cross-chain-route

Return one fresh unranked_candidate quote with amount-specific guidance, total token-path cost, direct_route_summary, strict continuation_v3 binding, and route-exact unsigned prepare requirements. price_recommended_for_amount is advisory; compare alternatives when price matters, but no economic acknowledgement field is required. It does not inspect balances, react automatically to a 402, or auto-select or auto-prepare. Execution remains separate: the caller must supply approvalV3 for exactly one mode. Read-only; never prepares, signs, or submits.

native-usdc · solana-usdc · base-usdc · unsigned-transaction-plan · caller-signed · agent-wallet-funding · payment-wallet-funding · x402-wallet-funding · cross-chain · bridge · swap · crypto · quote · solana · base · arbitrum · +4 more

Prepare the first unsigned action (caller-approved)

prepare-first-unsigned-action

Explicit one-shot POST /v2/prepare. The caller supplies approvalV3 selected_mode=one_shot and the exact hash-bound verificationContext. The adapter validates context before upstream, deeply verifies the returned EVM/Solana action and caller bounds, then emits a self-verifying caller-wallet handoff. Multi-step quotes reject one-shot. callerApproved must be supplied explicitly and is not human proof. Never auto-called; AssetFare never signs or submits.

prepare · unsigned-action · cross-chain · non-custodial · caller-approved

Run the caller-approved session lifecycle

session-lifecycle

Full quote-bound receipt-driven session lifecycle. Every A2A session call requires the caller-held hash-bound verificationContext; the adapter validates it before any upstream call, deeply verifies every current EVM/Solana action, and returns a fresh self-verifying caller-wallet handoff. Session create also requires approvalV3 selected_mode=session and the same idempotencyKey. The caller locally generates the sessionToken and never exposes its raw value in logs. callerApproved is explicit but not human proof. Never auto-chains, signs, or submits.

session · lifecycle · observe · receipts · non-custodial · caller-approved

Registry Agent Card snapshot

Normalized fields fetched during the registry sweep. Treat all authored text as third-party content.

Show JSON
{
  "protocolVersion": "1.0",
  "name": "AssetFare Route Quotes",
  "description": "AssetFare is a non-custodial service with 100 technically available routes. Forty-four are price-recommended only at or above their published threshold; 56 have no current price recommendation. Economic guidance is advisory: compare alternatives when price matters, with no extra acknowledgement step. Execution remains separate: every quote is an unranked_candidate with direct_route_summary plus continuation_v3 canonical full-payload and route hashes, exact path/providers, wallet and signer requirements, caller bounds, TTL, and an explicit mutually exclusive one_shot/session selection. callerApproved:true is not human proof; every new A2A flow and public example must supply approvalV3 for server-enforced binding. AssetFare never auto-selects, auto-creates approval, signs, or submits.",
  "author": "AssetFare",
  "wellKnownURI": "https://api.assetfare.dev/.well-known/agent-card.json",
  "url": "https://api.assetfare.dev/a2a",
  "version": "1.7.0",
  "provider": {
    "organization": "AssetFare",
    "url": "https://assetfare.dev/"
  },
  "documentationUrl": "https://assetfare.dev/llms-full.txt",
  "iconUrl": null,
  "supportsAuthenticatedExtendedCard": false,
  "security": [],
  "securitySchemes": {},
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "extensions": []
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "quote-cross-chain-route",
      "name": "Quote a cross-chain route",
      "description": "Return one fresh unranked_candidate quote with amount-specific guidance, total token-path cost, direct_route_summary, strict continuation_v3 binding, and route-exact unsigned prepare requirements. price_recommended_for_amount is advisory; compare alternatives when price matters, but no economic acknowledgement field is required. It does not inspect balances, react automatically to a 402, or auto-select or auto-prepare. Execution remains separate: the caller must supply approvalV3 for exactly one mode. Read-only; never prepares, signs, or submits.",
      "tags": [
        "native-usdc",
        "solana-usdc",
        "base-usdc",
        "unsigned-transaction-plan",
        "caller-signed",
        "agent-wallet-funding",
        "payment-wallet-funding",
        "x402-wallet-funding",
        "cross-chain",
        "bridge",
        "swap",
        "crypto",
        "quote",
        "solana",
        "base",
        "arbitrum",
        "robinhood",
        "polygon",
        "optimism",
        "non-custodial"
      ],
      "examples": [
        "{\"fromChain\":\"solana\",\"fromToken\":\"USDC\",\"toChain\":\"base\",\"toToken\":\"USDC\",\"amountUsd\":1000}",
        "{\"fromChain\":\"solana\",\"fromToken\":\"SOL\",\"toChain\":\"base\",\"toToken\":\"USDC\",\"amountUsd\":1000}",
        "{\"fromChain\":\"optimism\",\"fromToken\":\"USDC\",\"toChain\":\"base\",\"toToken\":\"USDC\",\"amountUsd\":1000}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "prepare-first-unsigned-action",
      "name": "Prepare the first unsigned action (caller-approved)",
      "description": "Explicit one-shot POST /v2/prepare. The caller supplies approvalV3 selected_mode=one_shot and the exact hash-bound verificationContext. The adapter validates context before upstream, deeply verifies the returned EVM/Solana action and caller bounds, then emits a self-verifying caller-wallet handoff. Multi-step quotes reject one-shot. callerApproved must be supplied explicitly and is not human proof. Never auto-called; AssetFare never signs or submits.",
      "tags": [
        "prepare",
        "unsigned-action",
        "cross-chain",
        "non-custodial",
        "caller-approved"
      ],
      "examples": [
        "{\"operation\":\"prepare\",\"callerApproved\":true,\"fromChain\":\"arbitrum\",\"fromToken\":\"ETH\",\"toChain\":\"arbitrum\",\"toToken\":\"USDC\",\"amountUsd\":2500,\"wallets\":{\"arbitrum\":\"0x2222222222222222222222222222222222222222\"},\"approvalV3\":{\"version\":\"assetfare-quote-bound-approval-v3\",\"quote_id\":\"<COPY_FROM_QUOTE>\",\"quote_fingerprint\":\"<COPY_64_HEX_FROM_QUOTE>\",\"selection_status\":\"selected\",\"selected_mode\":\"one_shot\",\"maximum_input_base\":\"<COPY_OR_STRENGTHEN_QUOTE_MAXIMUM>\",\"minimum_output_base\":\"<COPY_OR_STRENGTHEN_QUOTE_MINIMUM>\",\"direct_route_summary_sha256\":\"<COPY_64_HEX_FROM_QUOTE>\",\"idempotency_key\":\"prepare-0001\"},\"verificationContext\":{\"version\":\"assetfare-one-shot-verification-context-v1\",\"intent\":\"<COPY_EXACT_INTENT_OBJECT>\",\"wallets\":\"<COPY_PUBLIC_WALLET_MAP>\",\"event_signer_public\":null,\"approval_v3\":\"<COPY_EXACT_APPROVAL_V3_OBJECT>\",\"direct_route_summary\":\"<COPY_EXACT_DIRECT_ROUTE_SUMMARY_OBJECT>\",\"verification_context_sha256\":\"<RECOMPUTE_64_HEX>\"}}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "session-lifecycle",
      "name": "Run the caller-approved session lifecycle",
      "description": "Full quote-bound receipt-driven session lifecycle. Every A2A session call requires the caller-held hash-bound verificationContext; the adapter validates it before any upstream call, deeply verifies every current EVM/Solana action, and returns a fresh self-verifying caller-wallet handoff. Session create also requires approvalV3 selected_mode=session and the same idempotencyKey. The caller locally generates the sessionToken and never exposes its raw value in logs. callerApproved is explicit but not human proof. Never auto-chains, signs, or submits.",
      "tags": [
        "session",
        "lifecycle",
        "observe",
        "receipts",
        "non-custodial",
        "caller-approved"
      ],
      "examples": [
        "{\"operation\":\"session_create\",\"callerApproved\":true,\"fromChain\":\"arbitrum\",\"fromToken\":\"ETH\",\"toChain\":\"arbitrum\",\"toToken\":\"USDC\",\"amountUsd\":2500,\"wallets\":{\"arbitrum\":\"0x2222222222222222222222222222222222222222\"},\"sessionToken\":\"<CALLER_GENERATED_43_CHAR_BASE64URL_CAPABILITY>\",\"idempotencyKey\":\"create-0001\",\"approvalV3\":{\"version\":\"assetfare-quote-bound-approval-v3\",\"quote_id\":\"<COPY_FROM_QUOTE>\",\"quote_fingerprint\":\"<COPY_64_HEX_FROM_QUOTE>\",\"selection_status\":\"selected\",\"selected_mode\":\"session\",\"maximum_input_base\":\"<COPY_OR_STRENGTHEN_QUOTE_MAXIMUM>\",\"minimum_output_base\":\"<COPY_OR_STRENGTHEN_QUOTE_MINIMUM>\",\"direct_route_summary_sha256\":\"<COPY_64_HEX_FROM_QUOTE>\",\"idempotency_key\":\"create-0001\"},\"verificationContext\":{\"version\":\"assetfare-session-verification-context-v1\",\"intent\":\"<COPY_EXACT_INTENT_OBJECT>\",\"wallets\":\"<COPY_PUBLIC_WALLET_MAP>\",\"event_signer_public\":null,\"approval_v3\":\"<COPY_EXACT_APPROVAL_V3_OBJECT>\",\"direct_route_summary\":\"<COPY_EXACT_DIRECT_ROUTE_SUMMARY_OBJECT>\",\"verification_context_sha256\":\"<RECOMPUTE_64_HEX>\"}}",
        "{\"operation\":\"observe_source\",\"sessionId\":\"00000000-0000-4000-8000-000000000001\",\"sessionToken\":\"<capability>\",\"idempotencyKey\":\"src-0001\",\"transactionHashes\":[\"<caller-submitted-hash>\"],\"verificationContext\":\"<SAME_HASHED_CONTEXT_USED_AT_CREATE>\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "conformance": true,
  "conformance_errors": null,
  "homepage": null,
  "repository": null,
  "license": null,
  "pricing": null,
  "contact": null,
  "id": "d4f9ab1a-904c-4227-8fc6-548e45749de1",
  "category": "crypto-web3",
  "category_secondary": null
}

Integrate this agent

curl -s https://a2aregistry.org/api/agents/d4f9ab1a-904c-4227-8fc6-548e45749de1

Test message

Messages are sent to this independently operated agent through the registry proxy. Do not include secrets or personal data.

Message exchangeConnecting
>