assetfare_v2_prepare
Get a validated, versioned Core bundle for an unsigned cross-chain action after caller approval and a fresh re-quote, ready for client-side signing.
Instructions
Return the exact validated versioned Core bundle for the first caller-approved unsigned action after a fresh re-quote. Its payload_sha256 covers the Core bundle with only payload_sha256 omitted; the MCP adapter does not append fields to that hash scope. Example: pass caller_approved=true, the exact route, public wallets, and a caller-owned Solana event signer public key when required. Use instead of session mode for one-shot preview; never call both modes, and AssetFare never signs or submits.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wallets | Yes | Map each chain needed by this route to the caller's public wallet address. Include public addresses only; one to six entries, never private keys or seed phrases. | |
| to_chain | Yes | Destination chain for the v2 route: Solana, Base, Arbitrum, or Robinhood Chain. Polygon and Optimism are not destinations. | |
| to_token | Yes | Output token symbol on to_chain. The chain-token pair must appear in current v2 capabilities. | |
| amount_usd | Yes | Requested input value in USD, minimum 1. USD 1 is reachability/schema smoke only; USD 50 is the native-USDC economic-comparison start based on dated 2026-09-23 evidence, not a cheapest guarantee; USD 1,000 is the primary representative amount. SOL input includes a swap. Always quote the actual intended amount. | |
| from_chain | Yes | Source chain for the v2 route. Polygon and Optimism are source-only and cannot be used as to_chain. | |
| from_token | Yes | Input token symbol on from_chain. The chain-token pair must appear in current v2 capabilities. | |
| caller_approved | Yes | Explicit confirmation that the caller approved this state-changing preparation or session creation. A quote alone is not approval. | |
| event_signer_public | No | Solana CCTP only: caller-generated ephemeral public key. Keep the matching private key client-side and use it to co-sign the returned unsigned event-account transaction; never send the private key. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| signed | Yes | ||
| version | Yes | ||
| action_id | Yes | ||
| submitted | Yes | ||
| expires_at | Yes | ||
| step_index | Yes | ||
| workflow_id | Yes | ||
| payload_sha256 | Yes | sha256(UTF-8 JSON with sorted keys and compact separators, excluding payload_sha256 itself) | |
| server_signing | Yes | ||
| unsigned_action | Yes | ||
| server_submission | Yes | ||
| payload_sha256_spec | Yes |