AssetFare Agent-native Route API

Public REST API for the solana:SOL -> base:ETH corridor. Public no-auth quote/status/manifest endpoints plus bearer-protected session and execution workflow. Includes hosted MCP server, llms.txt agent guide, Arazzo workflow, and a published agent skill.

Operations 16

GET /.well-known/assetfare-manifest.json Read signed AssetFare verification manifest #
POST /v1/auth/challenge Request a wallet-signable self-service authentication challenge #
POST /v1/auth/verify Verify a Solana wallet signature and issue a wallet-bound session token #
POST /v1/quote Get AssetFare's own fee-inclusive route offer #
POST /v1/session Lock a fresh quote into an idempotent agent-signed execution session #
GET /v1/session/{session_id} Read session state #
GET /v1/session/{session_id}/next-action Read the current unsigned action or blocker #
POST /v1/session/{session_id}/observe-cctp Read Circle attestation and forwarded mint after an externally submitted burn #
POST /v1/session/{session_id}/observe-destination Verify an agent-submitted destination UserOperation receipt #
POST /v1/session/{session_id}/prepare-cctp-action Prepare unsigned CCTP burn after source receipt verification #
POST /v1/session/{session_id}/prepare-destination-action Prepare unsigned ERC-4337 Paymaster permit and atomic destination batch #
POST /v1/session/{session_id}/prepare-source-action Prepare a 60-second allowlisted unsigned Solana source action #
GET /v1/session/{session_id}/receipt Read a receipt after completion #
POST /v1/session/{session_id}/verify-source Read and verify a user-submitted Solana source receipt #
GET /v1/session/{session_id}/workflow Read the non-executing CCTP workflow and recovery state #
GET /v1/status Read public operational capability status #

Documentation

Specifications

Other Resources

🔗
LLMsTxt
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/llms/assetfare-llms.txt
🔗
MCPServer
https://api.assetfare.dev/mcp
🔗
ToolCrosswalk
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/mcp/assetfare-tool-crosswalk.yml
🔗
AgentSkill
https://github.com/odaiin/assetfare-mcp/blob/main/skills/assetfare-route/SKILL.md
🔗
Overlay
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/overlays/assetfare-agent-native-route-api-overlay.yaml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/errors/assetfare-problem-types.yml
🔗
Conventions
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/conventions/assetfare-conventions.yml
🔗
Idempotency
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/conventions/assetfare-conventions.yml
🔗
DataModel
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/data-model/assetfare-data-model.yml
🔗
Conformance
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/conformance/assetfare-conformance.yml
🔗
Plans
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/plans/assetfare-plans-pricing.yml
🔗
Lifecycle
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/lifecycle/assetfare-lifecycle.yml
🔗
StatusPage
https://api.assetfare.dev/v1/status
🔗
APIsJSON
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/apis.yml
🔗
Arazzo
https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/arazzo/assetfare-route-evaluation-arazzo.yaml

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/assetfare-agent-native-route-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

assetfare-agent-native-route-api-openapi.json Raw ↑
{"components":{"schemas":{"Error":{"additionalProperties":true,"properties":{"active_session_release_at":{"format":"date-time","type":["string","null"]},"error":{"type":"string"},"next_action":{"type":"string"},"recovery":{"type":"object"},"required_workflow_state":{"type":"string"},"retry_after_seconds":{"minimum":1,"type":"integer"},"retryable":{"type":"boolean"},"status":{"type":"string"},"workflow_state":{"type":"string"}},"required":["error"],"type":"object"},"Quote":{"additionalProperties":true,"properties":{"cache":{"enum":["hit","miss"],"type":"string"},"execution":{"description":"Invite-only unsigned-action availability.","type":"object"},"intent":{"type":"object"},"offer":{"description":"Fee-inclusive receive estimates. The cost interval is a model range, not an extra charge.","type":"object"},"provider":{"const":"AssetFare"},"quote_id":{"format":"uuid","type":"string"},"risk":{"description":"Non-atomic workflow and recovery disclosures.","type":"object"},"route":{"items":{"type":"object"},"type":"array"},"status":{"const":"available"},"ttl_seconds":{"type":"integer"}},"required":["quote_id","provider","status","ttl_seconds","intent","offer","route","risk","execution"],"type":"object"},"Session":{"additionalProperties":true,"properties":{"action_available":{"type":"boolean"},"action_expires_at":{"format":"date-time","type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"blocker":{"type":["string","null"]},"execution_mode":{"const":"agent_signed_unsigned_actions"},"idempotent_replay":{"type":"boolean"},"locked_source_terms":{"properties":{"input_lamports":{"type":"integer"},"minimum_output_usdc_base_units":{"type":"integer"}},"type":"object"},"next_action":{"type":["string","null"]},"prepared_action_id":{"type":"string"},"quote_id":{"format":"uuid","type":"string"},"recovery":{"type":"object"},"server_submission_enabled":{"const":false},"session_id":{"format":"uuid","type":"string"},"signed":{"const":false},"source_action_expired":{"type":"boolean"},"source_action_prepared":{"type":"boolean"},"source_action_ready":{"type":"boolean"},"status":{"description":"Current availability status, including action expiry","type":"string"},"submitted":{"const":false},"unsigned_action":{"additionalProperties":true,"properties":{"action_id":{"type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"expires_at":{"format":"date-time","type":"string"},"expires_in_seconds":{"const":60},"fee_payer":{"type":"string"},"input_lamports":{"type":"integer"},"instructions":{"items":{"type":"object"},"type":"array"},"minimum_output_usdc_base_units":{"type":"integer"},"payload_sha256":{"pattern":"^[0-9a-f]{64}$","type":"string"},"payload_sha256_spec":{"description":"Exact SHA-256 preimage construction: UTF-8 ECMAScript JSON.stringify, ordered top-level and projected instruction/key fields.","type":"object"},"prepared_at":{"format":"date-time","type":"string"},"programs":{"items":{"type":"string"},"type":"array"},"required_signers":{"items":{"type":"string"},"type":"array"},"signed":{"const":false},"submitted":{"const":false}},"required":["action_id","prepared_at","expires_at","expires_in_seconds","fee_payer","required_signers","input_lamports","minimum_output_usdc_base_units","programs","instructions","payload_sha256","payload_sha256_spec","agent_must_verify","signed","submitted"],"type":"object"},"unsigned_action_endpoint":{"type":"string"},"workflow_state":{"description":"Last verified event-driven state","type":"string"}},"required":["session_id","workflow_state","status","next_action","signed","submitted"],"type":"object"},"UnsignedSourceAction":{"additionalProperties":true,"properties":{"action_id":{"type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"expires_at":{"format":"date-time","type":"string"},"expires_in_seconds":{"const":60},"fee_payer":{"type":"string"},"input_lamports":{"type":"integer"},"instructions":{"items":{"type":"object"},"type":"array"},"minimum_output_usdc_base_units":{"type":"integer"},"payload_sha256":{"pattern":"^[0-9a-f]{64}$","type":"string"},"payload_sha256_spec":{"description":"Exact SHA-256 preimage construction: UTF-8 ECMAScript JSON.stringify, ordered top-level and projected instruction/key fields.","type":"object"},"prepared_at":{"format":"date-time","type":"string"},"programs":{"items":{"type":"string"},"type":"array"},"required_signers":{"items":{"type":"string"},"type":"array"},"signed":{"const":false},"submitted":{"const":false}},"required":["action_id","prepared_at","expires_at","expires_in_seconds","fee_payer","required_signers","input_lamports","minimum_output_usdc_base_units","programs","instructions","payload_sha256","payload_sha256_spec","agent_must_verify","signed","submitted"],"type":"object"},"WalletAuthChallengeRequest":{"additionalProperties":false,"properties":{"source_wallet":{"description":"Solana public key. The returned message must be signed with this wallet's Ed25519 signMessage capability.","type":"string"}},"required":["source_wallet"],"type":"object"},"WalletAuthVerifyRequest":{"additionalProperties":false,"properties":{"challenge_id":{"format":"uuid","type":"string"},"signature":{"description":"Base58-encoded 64-byte Ed25519 signature of the exact challenge message","type":"string"},"source_wallet":{"type":"string"},"terms_version":{"type":"string"}},"required":["challenge_id","source_wallet","signature","terms_version"],"type":"object"}},"securitySchemes":{"bearerAuth":{"description":"Revocable wallet-bound credential required for session endpoints","scheme":"bearer","type":"http"}}},"externalDocs":{"description":"Agent route skill, MCP endpoint, signed manifest, and verification material","url":"https://assetfare.dev/.well-known/assetfare.json"},"info":{"contact":{"email":"support@assetfare.dev","name":"AssetFare support","url":"https://assetfare.dev/security/"},"description":"Public fee-inclusive quotes for two capped Solana-origin corridors. Wallet-signed self-service execution is available only when the runtime launch gates are enabled. AssetFare returns bounded unsigned actions; the user's agent verifies, signs, and submits every transaction. AssetFare never receives private keys and never submits transactions. The three-stage cross-chain workflow is non-atomic.","termsOfService":"https://assetfare.dev/terms/","title":"AssetFare Agent-native Route API","version":"0.8.2"},"openapi":"3.1.0","paths":{"/.well-known/assetfare-manifest.json":{"get":{"operationId":"getSignedManifest","responses":{"200":{"description":"Ed25519-signed capability, contract, and mainnet-evidence manifest"}},"summary":"Read signed AssetFare verification manifest"}},"/v1/auth/challenge":{"post":{"description":"The challenge message authorizes no transaction, approval, or transfer. Availability is controlled by the public-demand-validation launch gates.","operationId":"createWalletChallenge","requestBody":{"content":{"application/json":{"examples":{"wallet_login":{"value":{"source_wallet":"ExampleSolanaPublicKeyOnly1111111111111111111111111"}}},"schema":{"additionalProperties":false,"properties":{"source_wallet":{"description":"Solana public key. The returned message must be signed with this wallet's Ed25519 signMessage capability.","type":"string"}},"required":["source_wallet"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Wallet challenge"},"400":{"description":"Invalid public wallet"},"429":{"content":{"application/json":{"example":{"error":"wallet_challenge_limit_reached","retry_after_seconds":300},"schema":{"additionalProperties":true,"properties":{"active_session_release_at":{"format":"date-time","type":["string","null"]},"error":{"type":"string"},"next_action":{"type":"string"},"recovery":{"type":"object"},"required_workflow_state":{"type":"string"},"retry_after_seconds":{"minimum":1,"type":"integer"},"retryable":{"type":"boolean"},"status":{"type":"string"},"workflow_state":{"type":"string"}},"required":["error"],"type":"object"}}},"description":"Authentication rate or live-challenge limit exceeded"},"503":{"description":"Self-service authentication is not enabled"}},"summary":"Request a wallet-signable self-service authentication challenge"}},"/v1/auth/verify":{"post":{"description":"Feature-gated during implementation. A verified login rotates any prior AssetFare token for the same wallet.","operationId":"verifyWalletSignature","requestBody":{"content":{"application/json":{"examples":{"signed_message":{"summary":"Use the exact challenge message; never sign a transaction here","value":{"challenge_id":"00000000-0000-4000-8000-000000000000","signature":"base58_signature_from_signMessage","source_wallet":"ExampleSolanaPublicKeyOnly1111111111111111111111111","terms_version":"2026-09-14-public-demand-validation-draft"}}},"schema":{"additionalProperties":false,"properties":{"challenge_id":{"format":"uuid","type":"string"},"signature":{"description":"Base58-encoded 64-byte Ed25519 signature of the exact challenge message","type":"string"},"source_wallet":{"type":"string"},"terms_version":{"type":"string"}},"required":["challenge_id","source_wallet","signature","terms_version"],"type":"object"}}},"required":true},"responses":{"201":{"description":"One-time access token response"},"400":{"content":{"application/json":{"example":{"error":"terms_version_mismatch"},"schema":{"additionalProperties":true,"properties":{"active_session_release_at":{"format":"date-time","type":["string","null"]},"error":{"type":"string"},"next_action":{"type":"string"},"recovery":{"type":"object"},"required_workflow_state":{"type":"string"},"retry_after_seconds":{"minimum":1,"type":"integer"},"retryable":{"type":"boolean"},"status":{"type":"string"},"workflow_state":{"type":"string"}},"required":["error"],"type":"object"}}},"description":"Invalid or expired challenge/signature"},"429":{"description":"Authentication rate limited"},"503":{"description":"Self-service authentication is not enabled"}},"summary":"Verify a Solana wallet signature and issue a wallet-bound session token"}},"/v1/quote":{"post":{"description":"Public quote only. Exactly five fields are accepted. Choose Base or Arbitrum as the destination; other tokens and corridors are unsupported.","operationId":"getQuote","requestBody":{"content":{"application/json":{"examples":{"solana_to_arbitrum_300":{"summary":"Solana to Arbitrum","value":{"amount_usd":300,"from_chain":"solana","from_token":"SOL","to_chain":"arbitrum","to_token":"ETH"}},"solana_to_base_300":{"summary":"Solana to Base","value":{"amount_usd":300,"from_chain":"solana","from_token":"SOL","to_chain":"base","to_token":"ETH"}}},"schema":{"additionalProperties":false,"properties":{"amount_usd":{"maximum":1000,"minimum":250,"multipleOf":1,"type":"number"},"from_chain":{"const":"solana","type":"string"},"from_token":{"const":"SOL","type":"string"},"to_chain":{"enum":["base","arbitrum"],"type":"string"},"to_token":{"const":"ETH","type":"string"}},"required":["from_chain","from_token","to_chain","to_token","amount_usd"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"cache":{"enum":["hit","miss"],"type":"string"},"execution":{"description":"Invite-only unsigned-action availability.","type":"object"},"intent":{"type":"object"},"offer":{"description":"Fee-inclusive receive estimates. The cost interval is a model range, not an extra charge.","type":"object"},"provider":{"const":"AssetFare"},"quote_id":{"format":"uuid","type":"string"},"risk":{"description":"Non-atomic workflow and recovery disclosures.","type":"object"},"route":{"items":{"type":"object"},"type":"array"},"status":{"const":"available"},"ttl_seconds":{"type":"integer"}},"required":["quote_id","provider","status","ttl_seconds","intent","offer","route","risk","execution"],"type":"object"}}},"description":"Fresh or cached offer"},"400":{"content":{"application/json":{"example":{"error":"amount_usd_out_of_range_250_1000"},"schema":{"additionalProperties":true,"properties":{"active_session_release_at":{"format":"date-time","type":["string","null"]},"error":{"type":"string"},"next_action":{"type":"string"},"recovery":{"type":"object"},"required_workflow_state":{"type":"string"},"retry_after_seconds":{"minimum":1,"type":"integer"},"retryable":{"type":"boolean"},"status":{"type":"string"},"workflow_state":{"type":"string"}},"required":["error"],"type":"object"}}},"description":"Invalid request or unsupported corridor"},"429":{"content":{"application/json":{"example":{"error":"quote_capacity_budget_exhausted","retry_after_seconds":60},"schema":{"additionalProperties":true,"properties":{"active_session_release_at":{"format":"date-time","type":["string","null"]},"error":{"type":"string"},"next_action":{"type":"string"},"recovery":{"type":"object"},"required_workflow_state":{"type":"string"},"retry_after_seconds":{"minimum":1,"type":"integer"},"retryable":{"type":"boolean"},"status":{"type":"string"},"workflow_state":{"type":"string"}},"required":["error"],"type":"object"}}},"description":"Expensive quote-miss budget exhausted"},"502":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"active_session_release_at":{"format":"date-time","type":["string","null"]},"error":{"type":"string"},"next_action":{"type":"string"},"recovery":{"type":"object"},"required_workflow_state":{"type":"string"},"retry_after_seconds":{"minimum":1,"type":"integer"},"retryable":{"type":"boolean"},"status":{"type":"string"},"workflow_state":{"type":"string"}},"required":["error"],"type":"object"}}},"description":"Required quote source temporarily unavailable"}},"summary":"Get AssetFare's own fee-inclusive route offer"}},"/v1/session":{"post":{"operationId":"createSession","requestBody":{"content":{"application/json":{"examples":{"wallet_bound_session":{"value":{"destination_wallet":"0x0000000000000000000000000000000000000001","idempotency_key":"agent-unique-request-key","quote_id":"00000000-0000-4000-8000-000000000000","source_wallet":"ExampleSolanaPublicKeyOnly1111111111111111111111111"}}},"schema":{"additionalProperties":false,"properties":{"destination_wallet":{"description":"Base or Arbitrum owner address that receives native ETH","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"idempotency_key":{"maxLength":128,"minLength":8,"type":"string"},"quote_id":{"format":"uuid","type":"string"},"source_wallet":{"description":"Solana public key that verifies, signs, and submits source actions","type":"string"}},"required":["quote_id","idempotency_key","source_wallet","destination_wallet"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"action_available":{"type":"boolean"},"action_expires_at":{"format":"date-time","type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"blocker":{"type":["string","null"]},"execution_mode":{"const":"agent_signed_unsigned_actions"},"idempotent_replay":{"type":"boolean"},"locked_source_terms":{"properties":{"input_lamports":{"type":"integer"},"minimum_output_usdc_base_units":{"type":"integer"}},"type":"object"},"next_action":{"type":["string","null"]},"prepared_action_id":{"type":"string"},"quote_id":{"format":"uuid","type":"string"},"recovery":{"type":"object"},"server_submission_enabled":{"const":false},"session_id":{"format":"uuid","type":"string"},"signed":{"const":false},"source_action_expired":{"type":"boolean"},"source_action_prepared":{"type":"boolean"},"source_action_ready":{"type":"boolean"},"status":{"description":"Current availability status, including action expiry","type":"string"},"submitted":{"const":false},"unsigned_action":{"additionalProperties":true,"properties":{"action_id":{"type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"expires_at":{"format":"date-time","type":"string"},"expires_in_seconds":{"const":60},"fee_payer":{"type":"string"},"input_lamports":{"type":"integer"},"instructions":{"items":{"type":"object"},"type":"array"},"minimum_output_usdc_base_units":{"type":"integer"},"payload_sha256":{"pattern":"^[0-9a-f]{64}$","type":"string"},"payload_sha256_spec":{"description":"Exact SHA-256 preimage construction: UTF-8 ECMAScript JSON.stringify, ordered top-level and projected instruction/key fields.","type":"object"},"prepared_at":{"format":"date-time","type":"string"},"programs":{"items":{"type":"string"},"type":"array"},"required_signers":{"items":{"type":"string"},"type":"array"},"signed":{"const":false},"submitted":{"const":false}},"required":["action_id","prepared_at","expires_at","expires_in_seconds","fee_payer","required_signers","input_lamports","minimum_output_usdc_base_units","programs","instructions","payload_sha256","payload_sha256_spec","agent_must_verify","signed","submitted"],"type":"object"},"unsigned_action_endpoint":{"type":"string"},"workflow_state":{"description":"Last verified event-driven state","type":"string"}},"required":["session_id","workflow_state","status","next_action","signed","submitted"],"type":"object"}}},"description":"Idempotent replay"},"201":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"action_available":{"type":"boolean"},"action_expires_at":{"format":"date-time","type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"blocker":{"type":["string","null"]},"execution_mode":{"const":"agent_signed_unsigned_actions"},"idempotent_replay":{"type":"boolean"},"locked_source_terms":{"properties":{"input_lamports":{"type":"integer"},"minimum_output_usdc_base_units":{"type":"integer"}},"type":"object"},"next_action":{"type":["string","null"]},"prepared_action_id":{"type":"string"},"quote_id":{"format":"uuid","type":"string"},"recovery":{"type":"object"},"server_submission_enabled":{"const":false},"session_id":{"format":"uuid","type":"string"},"signed":{"const":false},"source_action_expired":{"type":"boolean"},"source_action_prepared":{"type":"boolean"},"source_action_ready":{"type":"boolean"},"status":{"description":"Current availability status, including action expiry","type":"string"},"submitted":{"const":false},"unsigned_action":{"additionalProperties":true,"properties":{"action_id":{"type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"expires_at":{"format":"date-time","type":"string"},"expires_in_seconds":{"const":60},"fee_payer":{"type":"string"},"input_lamports":{"type":"integer"},"instructions":{"items":{"type":"object"},"type":"array"},"minimum_output_usdc_base_units":{"type":"integer"},"payload_sha256":{"pattern":"^[0-9a-f]{64}$","type":"string"},"payload_sha256_spec":{"description":"Exact SHA-256 preimage construction: UTF-8 ECMAScript JSON.stringify, ordered top-level and projected instruction/key fields.","type":"object"},"prepared_at":{"format":"date-time","type":"string"},"programs":{"items":{"type":"string"},"type":"array"},"required_signers":{"items":{"type":"string"},"type":"array"},"signed":{"const":false},"submitted":{"const":false}},"required":["action_id","prepared_at","expires_at","expires_in_seconds","fee_payer","required_signers","input_lamports","minimum_output_usdc_base_units","programs","instructions","payload_sha256","payload_sha256_spec","agent_must_verify","signed","submitted"],"type":"object"},"unsigned_action_endpoint":{"type":"string"},"workflow_state":{"description":"Last verified event-driven state","type":"string"}},"required":["session_id","workflow_state","status","next_action","signed","submitted"],"type":"object"}}},"description":"Quote-locked session"},"409":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"active_session_release_at":{"format":"date-time","type":["string","null"]},"error":{"type":"string"},"next_action":{"type":"string"},"recovery":{"type":"object"},"required_workflow_state":{"type":"string"},"retry_after_seconds":{"minimum":1,"type":"integer"},"retryable":{"type":"boolean"},"status":{"type":"string"},"workflow_state":{"type":"string"}},"required":["error"],"type":"object"}}},"description":"Session policy or idempotency conflict. tenant_active_session_limit includes retryable and, when automatic expiry is known, retry_after_seconds plus active_session_release_at."}},"security":[{"bearerAuth":[]}],"summary":"Lock a fresh quote into an idempotent agent-signed execution session"}},"/v1/session/{session_id}":{"get":{"operationId":"getSession","parameters":[{"in":"path","name":"session_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"action_available":{"type":"boolean"},"action_expires_at":{"format":"date-time","type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"blocker":{"type":["string","null"]},"execution_mode":{"const":"agent_signed_unsigned_actions"},"idempotent_replay":{"type":"boolean"},"locked_source_terms":{"properties":{"input_lamports":{"type":"integer"},"minimum_output_usdc_base_units":{"type":"integer"}},"type":"object"},"next_action":{"type":["string","null"]},"prepared_action_id":{"type":"string"},"quote_id":{"format":"uuid","type":"string"},"recovery":{"type":"object"},"server_submission_enabled":{"const":false},"session_id":{"format":"uuid","type":"string"},"signed":{"const":false},"source_action_expired":{"type":"boolean"},"source_action_prepared":{"type":"boolean"},"source_action_ready":{"type":"boolean"},"status":{"description":"Current availability status, including action expiry","type":"string"},"submitted":{"const":false},"unsigned_action":{"additionalProperties":true,"properties":{"action_id":{"type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"expires_at":{"format":"date-time","type":"string"},"expires_in_seconds":{"const":60},"fee_payer":{"type":"string"},"input_lamports":{"type":"integer"},"instructions":{"items":{"type":"object"},"type":"array"},"minimum_output_usdc_base_units":{"type":"integer"},"payload_sha256":{"pattern":"^[0-9a-f]{64}$","type":"string"},"payload_sha256_spec":{"description":"Exact SHA-256 preimage construction: UTF-8 ECMAScript JSON.stringify, ordered top-level and projected instruction/key fields.","type":"object"},"prepared_at":{"format":"date-time","type":"string"},"programs":{"items":{"type":"string"},"type":"array"},"required_signers":{"items":{"type":"string"},"type":"array"},"signed":{"const":false},"submitted":{"const":false}},"required":["action_id","prepared_at","expires_at","expires_in_seconds","fee_payer","required_signers","input_lamports","minimum_output_usdc_base_units","programs","instructions","payload_sha256","payload_sha256_spec","agent_must_verify","signed","submitted"],"type":"object"},"unsigned_action_endpoint":{"type":"string"},"workflow_state":{"description":"Last verified event-driven state","type":"string"}},"required":["session_id","workflow_state","status","next_action","signed","submitted"],"type":"object"}}},"description":"Session state"}},"security":[{"bearerAuth":[]}],"summary":"Read session state"}},"/v1/session/{session_id}/next-action":{"get":{"description":"After prepare-source-action, retrieve the complete unsigned action here. Verify every agent_must_verify item before signing. AssetFare never signs or submits it.","operationId":"getNextAction","parameters":[{"in":"path","name":"session_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"action_available":{"type":"boolean"},"action_expires_at":{"format":"date-time","type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"blocker":{"type":["string","null"]},"execution_mode":{"const":"agent_signed_unsigned_actions"},"idempotent_replay":{"type":"boolean"},"locked_source_terms":{"properties":{"input_lamports":{"type":"integer"},"minimum_output_usdc_base_units":{"type":"integer"}},"type":"object"},"next_action":{"type":["string","null"]},"prepared_action_id":{"type":"string"},"quote_id":{"format":"uuid","type":"string"},"recovery":{"type":"object"},"server_submission_enabled":{"const":false},"session_id":{"format":"uuid","type":"string"},"signed":{"const":false},"source_action_expired":{"type":"boolean"},"source_action_prepared":{"type":"boolean"},"source_action_ready":{"type":"boolean"},"status":{"description":"Current availability status, including action expiry","type":"string"},"submitted":{"const":false},"unsigned_action":{"additionalProperties":true,"properties":{"action_id":{"type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"expires_at":{"format":"date-time","type":"string"},"expires_in_seconds":{"const":60},"fee_payer":{"type":"string"},"input_lamports":{"type":"integer"},"instructions":{"items":{"type":"object"},"type":"array"},"minimum_output_usdc_base_units":{"type":"integer"},"payload_sha256":{"pattern":"^[0-9a-f]{64}$","type":"string"},"payload_sha256_spec":{"description":"Exact SHA-256 preimage construction: UTF-8 ECMAScript JSON.stringify, ordered top-level and projected instruction/key fields.","type":"object"},"prepared_at":{"format":"date-time","type":"string"},"programs":{"items":{"type":"string"},"type":"array"},"required_signers":{"items":{"type":"string"},"type":"array"},"signed":{"const":false},"submitted":{"const":false}},"required":["action_id","prepared_at","expires_at","expires_in_seconds","fee_payer","required_signers","input_lamports","minimum_output_usdc_base_units","programs","instructions","payload_sha256","payload_sha256_spec","agent_must_verify","signed","submitted"],"type":"object"},"unsigned_action_endpoint":{"type":"string"},"workflow_state":{"description":"Last verified event-driven state","type":"string"}},"required":["session_id","workflow_state","status","next_action","signed","submitted"],"type":"object"}}},"description":"Current unsigned action, or a machine-readable blocker if no action is available"}},"security":[{"bearerAuth":[]}],"summary":"Read the current unsigned action or blocker"}},"/v1/session/{session_id}/observe-cctp":{"post":{"operationId":"observeCctp","parameters":[{"in":"path","name":"session_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"request":{"value":{"burn_signature":"replace_with_verified_public_value","idempotency_key":"00000000-0000-4000-8000-000000000000"}}},"schema":{"additionalProperties":false,"properties":{"burn_signature":{"type":"string"},"idempotency_key":{"maxLength":128,"minLength":8,"type":"string"}},"required":["burn_signature","idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"action_available":{"type":"boolean"},"action_expires_at":{"format":"date-time","type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"blocker":{"type":["string","null"]},"execution_mode":{"const":"agent_signed_unsigned_actions"},"idempotent_replay":{"type":"boolean"},"locked_source_terms":{"properties":{"input_lamports":{"type":"integer"},"minimum_output_usdc_base_units":{"type":"integer"}},"type":"object"},"next_action":{"type":["string","null"]},"prepared_action_id":{"type":"string"},"quote_id":{"format":"uuid","type":"string"},"recovery":{"type":"object"},"server_submission_enabled":{"const":false},"session_id":{"format":"uuid","type":"string"},"signed":{"const":false},"source_action_expired":{"type":"boolean"},"source_action_prepared":{"type":"boolean"},"source_action_ready":{"type":"boolean"},"status":{"description":"Current availability status, including action expiry","type":"string"},"submitted":{"const":false},"unsigned_action":{"additionalProperties":true,"properties":{"action_id":{"type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"expires_at":{"format":"date-time","type":"string"},"expires_in_seconds":{"const":60},"fee_payer":{"type":"string"},"input_lamports":{"type":"integer"},"instructions":{"items":{"type":"object"},"type":"array"},"minimum_output_usdc_base_units":{"type":"integer"},"payload_sha256":{"pattern":"^[0-9a-f]{64}$","type":"string"},"payload_sha256_spec":{"description":"Exact SHA-256 preimage construction: UTF-8 ECMAScript JSON.stringify, ordered top-level and projected instruction/key fields.","type":"object"},"prepared_at":{"format":"date-time","type":"string"},"programs":{"items":{"type":"string"},"type":"array"},"required_signers":{"items":{"type":"string"},"type":"array"},"signed":{"const":false},"submitted":{"const":false}},"required":["action_id","prepared_at","expires_at","expires_in_seconds","fee_payer","required_signers","input_lamports","minimum_output_usdc_base_units","programs","instructions","payload_sha256","payload_sha256_spec","agent_must_verify","signed","submitted"],"type":"object"},"unsigned_action_endpoint":{"type":"string"},"workflow_state":{"description":"Last verified event-driven state","type":"string"}},"required":["session_id","workflow_state","status","next_action","signed","submitted"],"type":"object"}}},"description":"Verified CCTP destination funds"},"409":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"active_session_release_at":{"format":"date-time","type":["string","null"]},"error":{"type":"string"},"next_action":{"type":"string"},"recovery":{"type":"object"},"required_workflow_state":{"type":"string"},"retry_after_seconds":{"minimum":1,"type":"integer"},"retryable":{"type":"boolean"},"status":{"type":"string"},"workflow_state":{"type":"string"}},"required":["error"],"type":"object"}}},"description":"Workflow order conflict; inspect error, workflow_state, required_workflow_state, and next_action"}},"security":[{"bearerAuth":[]}],"summary":"Read Circle attestation and forwarded mint after an externally submitted burn"}},"/v1/session/{session_id}/observe-destination":{"post":{"operationId":"observeDestination","parameters":[{"in":"path","name":"session_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"examples":{"request":{"value":{"idempotency_key":"00000000-0000-4000-8000-000000000000","transaction_hash":"replace_with_verified_public_value"}}},"schema":{"additionalProperties":false,"properties":{"idempotency_key":{"maxLength":128,"minLength":8,"type":"string"},"transaction_hash":{"pattern":"^0x[0-9a-fA-F]{64}$","type":"string"}},"required":["transaction_hash","idempotency_key"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"action_available":{"type":"boolean"},"action_expires_at":{"format":"date-time","type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"blocker":{"type":["string","null"]},"execution_mode":{"const":"agent_signed_unsigned_actions"},"idempotent_replay":{"type":"boolean"},"locked_source_terms":{"properties":{"input_lamports":{"type":"integer"},"minimum_output_usdc_base_units":{"type":"integer"}},"type":"object"},"next_action":{"type":["string","null"]},"prepared_action_id":{"type":"string"},"quote_id":{"format":"uuid","type":"string"},"recovery":{"type":"object"},"server_submission_enabled":{"const":false},"session_id":{"format":"uuid","type":"string"},"signed":{"const":false},"source_action_expired":{"type":"boolean"},"source_action_prepared":{"type":"boolean"},"source_action_ready":{"type":"boolean"},"status":{"description":"Current availability status, including action expiry","type":"string"},"submitted":{"const":false},"unsigned_action":{"additionalProperties":true,"properties":{"action_id":{"type":"string"},"agent_must_verify":{"items":{"type":"string"},"type":"array"},"expires_at":{"format":"date-time","type":"string"},"expires_in_seconds":{"const":60},"fee_payer":{"type":"string"},"input_lamports":{"type":"integer"},"instructions":{"items":{"type":"object"},"type":"array"},"minimum_output_usdc_base_units":{"type":"integer"},"payload_sha256":{"pattern":"^[0-9a-f]{64}$","type":"string"},"payload_sha256_spec":{"description":"Exact SHA-256 preimage construction: UTF-8 ECMAScript JSON.stringify, ordered top-level and projected instruction/key fields.","type":"object"},"prepared_at":{"format":"date-time","type":"string"},"programs":{"items":{"type":"string"},"type":"array"},"required_signers":{"items":{"type":"string"},"type":"array"},"signed":{"const":false},"submitted":{"const":false}},"required":["action_id","prepared_at","expires_at","expires_in_seconds","fee_payer","required_signers","input_lamports","minimum_output_usdc_base_

# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/assetfare/refs/heads/main/openapi/assetfare-agent-native-route-api-openapi.json