MCP#
Hightop exposes the Agent API over the Model Context Protocol at:
https://api.hightop.com/mcpMCP wraps the same /v1/agent/* capability surface in JSON-RPC 2.0 tools and server-sent notifications.
Connect with Claude Desktop#
In Claude Desktop, add a connector and paste:
https://api.hightop.com/mcpClaude opens a browser. The user completes Hightop OAuth, selects a Hightop agent, approves scopes, and returns connected.
Other MCP-compatible clients can connect to the same URL when they support Streamable HTTP, OAuth, JSON-RPC 2.0, and SSE.
Transport#
POST /mcp JSON-RPC 2.0 requests
GET /mcp Server-Sent Events stream
DELETE /mcp Close the current sessionThe OAuth token must be bound to:
https://api.hightop.com/mcpHeaders#
Initialize uses POST /mcp without Mcp-Session-Id.
After initialize:
Authorization: Bearer <jwt>
Mcp-Session-Id: <session id>
Mcp-Protocol-Version: <server protocol version>Accept requirements:
POST Accept: application/json, text/event-stream
GET Accept: text/event-streamLast-Event-ID is optional and only applies to GET /mcp reconnects.
Tool Surface#
tools/list returns generated tools for public /v1/agent/* catalog routes, plus inline MCP tools.
Generated tools mirror Agent API auth, scopes, rate limits, idempotency, validation, and errors. The complete generated tool reference, including input schemas and required scopes, is included on this page.
Each generated tool carries the OAuth scope of the route it wraps. There is no separate mcp scope: an OAuth token must be issued for the /mcp resource (audience-bound) and carry the per-route agent:* scopes — read tools require agent:read, and each mutating tool requires its route's write scope (for example agent:payments:write). See OAuth scopes for the scope catalog. Header-key auth (native and server-to-server clients) is scoped to the agent's full permissions.
The inline session tools — mcp_subscribe, mcp_unsubscribe, and agent_operations_wait_for_status — are cataloged alongside the generated tools in the tool reference below. agent_operations_wait_for_status polls an operation until it reaches a terminal status or timeout; its input is:
{
"operation_id": "00000000-0000-0000-0000-000000000000",
"terminal_statuses": ["executed", "execution_failed", "policy_rejected", "cancelled"],
"timeout_seconds": 60
}Idempotency#
Mutating tools that require idempotency expose a required idempotency_key input. Generate a fresh UUID for each logical operation.
- Retrying with the same key and the same payload replays the original response.
- Reusing a key with a different payload returns
idempotency_key_reuse_mismatch. - Omitting the key, or sending it blank, returns
validation_failed. Hightop does not synthesize a key on your behalf.
Read-only tools, and mutating tools that do not require idempotency, do not expose the field.
Streaming#
GET /mcp streams JSON-RPC notifications over SSE. Webhook events use:
notifications/hightop/agent_webhookDelivery is at least once. Clients should dedupe by params.event.id.
Only one active SSE stream is allowed per session. A second GET /mcp displaces the prior stream.
The default active session cap is 2 sessions per agent. Cap saturation returns 429 with Retry-After.
Origin and CSRF#
Browser-origin requests must send an allowed Origin. Hightop validates origin and host before auth or database work.
Native and server-to-server clients without an Origin header are allowed when they present valid agent auth.
Troubleshooting#
| Symptom | Cause | Fix |
|---|---|---|
401 on initialize | Missing or wrong auth, or token not bound to the MCP resource | Bind the OAuth token to https://api.hightop.com/mcp, or send valid header-key auth |
insufficient_scope on a tool call | Token isn't bound to the /mcp resource, or lacks the tool's per-route agent:* scope | Re-consent for the /mcp resource with the needed scopes (OAuth scopes) |
validation_failed on a mutating tool | Missing or blank idempotency_key | Supply a fresh idempotency_key; Hightop does not synthesize one |
429 with Retry-After | Session cap saturated (default 2 per agent) or rate limit hit | Close idle sessions with DELETE /mcp, then retry after the delay |
| Missing webhook events | Not subscribed, or client ignores unknown notifications | Call mcp_subscribe, and poll with agent_operations_wait_for_status if the client drops unknown notifications |
| Browser request rejected before auth | Disallowed Origin | Use an allowed origin, or a native/server client without an Origin header and valid agent auth |
V1 Limitations#
- Webhook deliveries use the Hightop-namespaced notification method above.
- Strict generic MCP clients that ignore unknown notifications should use
agent_operations_wait_for_status. - Claude directory listing is not the target for v1; use custom connector install.
- MCP elicitation is not implemented.
- MCP resources are not advertised.
- Long-running tool progress and cancellation are not implemented.
MCP Tool Reference#
This page is generated from the Agent API endpoint catalog, MCP tool-name derivation, and inline MCP session tools. It documents 70 tools exposed by tools/list.
Mutating Agent API tools that require idempotency require a tool-level idempotency_key input. Hightop does not synthesize one from the JSON-RPC id.
Tool Catalog#
Endpoint paths are relative to /v1/agent
| Tool | Endpoint | Scope | Rate class | Idempotency input required | Read-only hint | Description |
|---|---|---|---|---|---|---|
agent_account_getGet Account | GET/account | agent:read | read | No | Yes | Return a scoped account summary for the authenticated agent wallet. |
agent_activity_listGet Activity | GET/activity | agent:read | read | No | Yes | List scoped Activity rows for the authenticated agent wallet without marking them read. |
agent_assets_listGet Assets | GET/assets | agent:read | read | No | Yes | List assets visible to the authenticated agent. |
agent_balances_cash_listGet Balances Cash | GET/balances/cash | agent:read | read | No | Yes | List cash balances for the authenticated agent wallet. |
agent_balances_listGet Balances | GET/balances | agent:read | read | No | Yes | List balances for the authenticated agent wallet. |
agent_borrow_collateral_add_createCreate Borrow Collateral Add | POST/borrow/collateral/add | agent:borrow:write | write | Yes | No | Create a collateral add operation. |
agent_borrow_collateral_listGet Borrow Collateral | GET/borrow/collateral | agent:read | read | No | Yes | List collateral for the authenticated agent wallet. |
agent_borrow_collateral_remove_createCreate Borrow Collateral Remove | POST/borrow/collateral/remove | agent:borrow:write | write | Yes | No | Create a collateral remove operation. |
agent_borrow_collateralOptions_listGet Borrow Collateral Options | GET/borrow/collateral-options | agent:read | read | No | Yes | List addable collateral options for the authenticated agent wallet. |
agent_borrow_createCreate Borrow | POST/borrow | agent:borrow:write | write | Yes | No | Create a borrow operation for USDC or GREEN. |
agent_borrow_deleverage_createCreate Borrow Deleverage | POST/borrow/deleverage | agent:borrow:write | write | Yes | No | Create a target-LTV deleverage operation. |
agent_borrow_getGet Borrow | GET/borrow | agent:read | read | No | Yes | Return borrow summary for the authenticated agent wallet. |
agent_borrow_repay_createCreate Borrow Repay | POST/borrow/repay | agent:borrow:write | write | Yes | No | Create a debt repayment operation. |
agent_capabilities_listGet Capabilities | GET/capabilities | agent:read | read | No | Yes | Return Agent API capabilities for the authenticated agent. |
agent_capabilitiesJson_listGet Capabilities JSON | GET/capabilities.json | agent:read | read | No | Yes | Return Agent API capabilities as JSON. |
agent_conversions_createCreate Conversions | POST/conversions | agent:conversions:write | write | Yes | No | Execute a conversion from a quote. |
agent_conversions_getGet Conversions | GET/conversions/{id} | agent:read | read | No | Yes | Get one conversion operation for the authenticated agent. |
agent_conversions_listGet Conversions | GET/conversions | agent:read | read | No | Yes | List conversion operations for the authenticated agent. |
agent_conversions_quoteQuote Conversion | POST/conversions/quote | agent:simulate | simulate | Yes | No | Create a stateful conversion quote. |
agent_depositAddress_listGet Deposit Address | GET/deposit-address | agent:read | read | No | Yes | Return a Base deposit address for an asset. |
agent_depositMethods_listGet Deposit Methods | GET/deposit-methods | agent:read | read | No | Yes | List deposit methods for the authenticated agent wallet. |
agent_earn_deposit_createCreate Earn Deposit | POST/earn/deposit | agent:earn:write | write | Yes | No | Create an earn deposit operation. |
agent_earn_getGet Earn | GET/earn/{id} | agent:read | read | No | Yes | Get one earn position for the authenticated agent wallet. |
agent_earn_listGet Earn | GET/earn | agent:read | read | No | Yes | List earn positions for the authenticated agent wallet. |
agent_earn_move_createCreate Earn Move | POST/earn/move | agent:earn:write | write | Yes | No | Create an earn move operation. |
agent_earn_opportunities_listGet Earn Opportunities | GET/earn/opportunities | agent:read | read | No | Yes | List earn opportunities available to the authenticated agent. |
agent_earn_rewards_claim_createCreate Earn Rewards Claim | POST/earn/rewards/claim | agent:earn:write | write | Yes | No | Create a rewards claim operation. |
agent_earn_withdraw_createCreate Earn Withdraw | POST/earn/withdraw | agent:earn:write | write | Yes | No | Create an earn withdrawal operation. |
agent_oneOffPayments_createCreate One Off Payments | POST/one-off-payments | agent:payments:write | write | Yes | No | Create a one-off payment operation. |
agent_oneOffPayments_getGet One Off Payments | GET/one-off-payments/{id} | agent:read | read | No | Yes | Get a one-off payment operation for the authenticated agent. |
agent_oneOffPayments_listGet One Off Payments | GET/one-off-payments | agent:read | read | No | Yes | List one-off payment operations for the authenticated agent. |
agent_operations_getGet Operations | GET/operations/{id} | agent:read | read | No | Yes | Get one AgentOperation for the authenticated agent. |
agent_operations_listGet Operations | GET/operations | agent:read | read | No | Yes | List AgentOperation rows for the authenticated agent. |
agent_operations_wait_for_statusWait for Operation Status | inline | agent:read | read guard | No | Yes | Block until an AgentOperation reaches a terminal status (or the deadline elapses), then return its latest snapshot. Use this tool right after submitting a write call (payments, conversions, withdrawals, earn moves, etc.) when your MCP client does not consume notifications/hightop/agent_webhook notifications on the SSE stream — it is the polling fallback for finalization. Returns the latest operation snapshot regardless of whether the wait terminated naturally or timed out; check _meta.hightop.terminal to disambiguate. |
agent_payments_createCreate Payments | POST/payments | agent:payments:write | write | Yes | No | Create a payment operation. |
agent_payments_getGet Payments | GET/payments/{id} | agent:read | read | No | Yes | Get one payment operation for the authenticated agent. |
agent_payments_listGet Payments | GET/payments | agent:read | read | No | Yes | List payment operations for the authenticated agent. |
agent_protocols_listGet Protocols | GET/protocols | agent:read | read | No | Yes | List protocols visible to the authenticated agent. |
agent_recipients_getGet Recipients | GET/recipients/{id} | agent:read | read | No | Yes | Get one recipient visible to the authenticated agent wallet. |
agent_recipients_listGet Recipients | GET/recipients | agent:read | read | No | Yes | List payment recipients visible to the authenticated agent wallet. |
agent_recipients_resolveResolve Recipient | POST/recipients/resolve | agent:read | read | No | Yes | Resolve an agent-facing recipient identifier. |
agent_recurringPayments_getGet Recurring Payments | GET/recurring-payments/{id} | agent:read | read | No | Yes | Get one recurring payment recipient visible to the authenticated agent wallet. |
agent_recurringPayments_listGet Recurring Payments | GET/recurring-payments | agent:read | read | No | Yes | List recurring payment recipients visible to the authenticated agent wallet. |
agent_self_getGet Self | GET/self | agent:read | read | No | Yes | Return the authenticated agent and scoped wallet context. |
agent_self_limits_listGet Self Limits | GET/self/limits | agent:read | read | No | Yes | Return effective operation permissions, spend/swap limits, and current-period usage for the authenticated agent. |
agent_self_usage_listGet Self Usage | GET/self/usage | agent:read | read | No | Yes | Return current Agent API rate-limit and usage state. |
agent_simulateSimulate Operation | POST/simulate | agent:simulate | simulate | No | No | Simulate a write request without broadcasting. |
agent_trustedDestinations_cancel_createCreate Trusted Destinations Cancel | POST/trusted-destinations/{id}/cancel | agent:trusted_destinations:write | write | Yes | No | Cancel a pending trusted destination for the authenticated agent wallet. |
agent_trustedDestinations_confirm_createCreate Trusted Destinations Confirm | POST/trusted-destinations/{id}/confirm | agent:trusted_destinations:write | write | Yes | No | Confirm a pending trusted destination for the authenticated agent wallet. |
agent_trustedDestinations_deleteDelete Trusted Destinations | DELETE/trusted-destinations/{id} | agent:trusted_destinations:write | write | Yes | No | Remove a trusted destination from the authenticated agent wallet. |
agent_trustedDestinations_getGet Trusted Destinations | GET/trusted-destinations/{id} | agent:read | read | No | Yes | Get one trusted destination visible to the authenticated agent wallet. |
agent_trustedDestinations_listGet Trusted Destinations | GET/trusted-destinations | agent:read | read | No | Yes | List trusted destinations visible to the authenticated agent wallet. |
agent_webhooks_createCreate Webhooks | POST/webhooks | agent:webhooks:manage | webhook_management | Yes | No | Create an outbound webhook endpoint. |
agent_webhooks_deleteDelete Webhooks | DELETE/webhooks/{id} | agent:webhooks:manage | webhook_management | Yes | No | Delete or disable an outbound webhook endpoint. |
agent_webhooks_deliveries_getGet Webhooks Deliveries | GET/webhooks/{id}/deliveries | agent:read | read | No | Yes | List webhook delivery attempts for one outbound webhook endpoint. |
agent_webhooks_getGet Webhooks | GET/webhooks/{id} | agent:read | webhook_management | No | Yes | Get one outbound webhook endpoint for the authenticated agent. |
agent_webhooks_listGet Webhooks | GET/webhooks | agent:read | webhook_management | No | Yes | List outbound webhook endpoints for the authenticated agent. |
agent_webhooks_rotateSecret_createCreate Webhooks Rotate Secret | POST/webhooks/{id}/rotate-secret | agent:webhooks:manage | webhook_management | Yes | No | Rotate an outbound webhook signing secret. |
agent_webhooks_test_createCreate Webhooks Test | POST/webhooks/{id}/test | agent:webhooks:manage | webhook_management | Yes | No | Send a webhook.test delivery to an outbound webhook endpoint. |
agent_webhooks_updateUpdate Webhooks | PATCH/webhooks/{id} | agent:webhooks:manage | webhook_management | Yes | No | Update an outbound webhook endpoint. |
agent_withdrawalMethods_listGet Withdrawal Methods | GET/withdrawal-methods | agent:read | read | No | Yes | List withdrawal methods visible to the authenticated agent wallet. |
agent_withdrawals_getGet Withdrawals | GET/withdrawals/{id} | agent:read | read | No | Yes | Get one withdrawal operation for the authenticated agent. |
agent_withdrawals_listGet Withdrawals | GET/withdrawals | agent:read | read | No | Yes | List withdrawal operations for the authenticated agent. |
agent_withdrawals_toBank_createCreate Withdrawals To Bank | POST/withdrawals/to-bank | agent:withdrawals:write | write | Yes | No | Create a bank withdrawal operation. |
agent_withdrawals_toCrypto_createCreate Withdrawals To Crypto | POST/withdrawals/to-crypto | agent:withdrawals:write | write | Yes | No | Create a crypto withdrawal operation. |
agent_x402_purchasePurchase x402 Resource | POST/x402/purchase | agent:payments:write | write | Yes | No | Fetch a URL, satisfy an x402 challenge when required, and return the upstream response. |
agent_x402_quoteQuote x402 Resource | POST/x402/quote | agent:simulate | simulate | No | Yes | Fetch a URL and return its supported x402 price without paying. |
agent_x402_signSign x402 Payment | POST/x402/sign | agent:payments:write | write | Yes | No | Sign a Base USDC x402 payment authorization from an x402 payment requirement. |
mcp_subscribeSubscribe to Agent Events | inline | agent:read | read guard | No | No | Set the event types delivered on this MCP session stream. |
mcp_unsubscribeUnsubscribe from Agent Events | inline | authenticated session | session update | No | No | Stop delivering agent webhook events on this MCP session stream. |
Input and Output Fields#
| Tool | Required inputs | Input fields | Top-level output fields |
|---|---|---|---|
agent_account_get | none | none | account (required): objectok (required): boolean |
agent_activity_list | none | cursor: stringlimit: integersince: stringtype: string | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_assets_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_balances_cash_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_balances_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_borrow_collateral_add_create | asset, idempotency_key | allow_conversion: booleanamount: stringamount_usd: stringasset (required): string - Collateral asset identifier. For vault-backed collateral, send the id returned by /v1/agent/borrow/collateral-options. Token symbols and token contract addresses are accepted only where direct collateral add is supported.idempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.source_asset: string | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_borrow_collateral_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_borrow_collateral_remove_create | asset, idempotency_key | amount: stringamount_usd: stringasset (required): stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.max_ltv_after: stringremove_all: boolean | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_borrow_collateralOptions_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_borrow_create | asset, idempotency_key | amount: stringamount_usd: stringasset (required): string - Agent API v1 borrow asset. Only USDC and GREEN are supported. Accepts either the symbol ("USDC" / "GREEN") or the canonical Base contract address. Generated SDK clients should send one of the enum values; the HTTP runtime additionally tolerates case and surrounding whitespace as a convenience for hand-rolled callers.idempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.max_ltv_after: string | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_borrow_deleverage_create | idempotency_key, target_ltv | allow_conversion: booleanallow_partial: booleanidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.max_repay_amount_usd: stringsource_asset: stringtarget_ltv (required): stringuse_available_cash_first: boolean | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_borrow_get | none | none | ok (required): booleansummary (required): object |
agent_borrow_repay_create | asset, idempotency_key | allow_conversion: booleanamount: stringamount_usd: stringasset (required): string - Agent API v1 repay asset. Only GREEN is supported. Accepts either the symbol ("GREEN") or the canonical Base GREEN contract address. Generated SDK clients should send one of the enum values; the HTTP runtime additionally tolerates case and surrounding whitespace as a convenience for hand-rolled callers.idempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.repay_all: booleansource_asset: string | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_capabilities_list | none | none | agent_api_contract_version (required): stringapi_version (required): stringbase_path (required): stringcan_claim_loot (required): objectemitted_webhook_event_types (required): arrayendpoints (required): arrayok (required): booleanoperation_statuses (required): arrayoperation_types (required): arraysubscribable_webhook_event_types (required): arraysupported_actions (required): arraytarget_wrapper_version (required): stringwebhook_event_types (required): array |
agent_capabilitiesJson_list | none | none | agent_api_contract_version (required): stringapi_version (required): stringbase_path (required): stringcan_claim_loot (required): objectemitted_webhook_event_types (required): arrayendpoints (required): arrayok (required): booleanoperation_statuses (required): arrayoperation_types (required): arraysubscribable_webhook_event_types (required): arraysupported_actions (required): arraytarget_wrapper_version (required): stringwebhook_event_types (required): array |
agent_conversions_create | idempotency_key, quote_id | idempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.quote_id (required): string | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_conversions_get | id | id (required): stringinclude: string | ok (required): booleanoperation (required): object |
agent_conversions_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_conversions_quote | from_asset, idempotency_key, to_asset | amount: stringamount_usd: stringfrom_asset (required): stringfrom_vault_address: stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.slippage_percent: numberto_asset (required): stringto_vault_address: string | ok (required): booleanquote (required): object |
agent_depositAddress_list | asset | asset (required): stringchain: string | address (required): stringasset (required): stringchain (required): stringok (required): boolean |
agent_depositMethods_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_earn_deposit_create | asset, idempotency_key | amount: stringamount_usd: stringasset (required): stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.use_best_available: booleanvault_id: string - Earn vault identifier. Always a Base ERC4626 vault contract address (case-insensitive). Returned in /v1/agent/earn and /v1/agent/earn/opportunities as vault_id. | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_earn_get | id | id (required): string | ok (required): booleanposition (required): object |
agent_earn_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_earn_move_create | from_position_id, idempotency_key | amount: stringamount_usd: stringfrom_position_id (required): string - Existing earn-position identifier. Always a Base ERC4626 vault contract address (case-insensitive) identifying a vault the wallet holds shares in. Read these from /v1/agent/earn.idempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.move_all: booleanto_best_available: booleanto_vault_id: string - Earn vault identifier. Always a Base ERC4626 vault contract address (case-insensitive). Returned in /v1/agent/earn and /v1/agent/earn/opportunities as vault_id. | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_earn_opportunities_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_earn_rewards_claim_create | idempotency_key | idempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.protocols: array - Rewards-claim protocol identifier. Only underscore-earn and ripe-rewards are supported in Agent API v1. Omit protocols to claim from both. The HTTP runtime additionally tolerates the legacy short forms underscore and ripe for hand-rolled callers — generated SDK clients should send a canonical value. | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_earn_withdraw_create | idempotency_key, position_id | allow_conversion: booleanamount: stringamount_usd: stringdestination_asset: stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.position_id (required): string - Existing earn-position identifier. Always a Base ERC4626 vault contract address (case-insensitive) identifying a vault the wallet holds shares in. Read these from /v1/agent/earn.withdraw_all: boolean | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_oneOffPayments_create | asset, idempotency_key, to | amount: stringamount_usd: stringasset (required): stringexpires_in_seconds: integeridempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.note: anyOfto (required): stringunlock_delay_seconds: integer | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_oneOffPayments_get | id | id (required): stringinclude: string | ok (required): booleanoperation (required): object |
agent_oneOffPayments_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_operations_get | id | id (required): stringinclude: string | ok (required): booleanoperation (required): object |
agent_operations_list | none | cursor: stringlimit: integersince: stringstatus: stringtype: string | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_operations_wait_for_status | operation_id | operation_id (required): string - The AgentOperation id returned by the submitting tool call (e.g. agent_payments_create).terminal_statuses: array - Statuses that count as terminal for this wait. Defaults to ["executed", "execution_failed", "policy_rejected", "cancelled"].timeout_seconds: integer - Maximum seconds to wait before returning the latest non-terminal snapshot. Default 60, capped at 240. | operation (required): object - Latest snapshot of the AgentOperation row scoped to the authenticated agent. |
agent_payments_create | asset, idempotency_key, to | amount: stringamount_usd: stringasset (required): stringdeliver_as: stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.note: anyOfprefer: stringslippage_percent: numberto (required): string | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_payments_get | id | id (required): stringinclude: string | ok (required): booleanoperation (required): object |
agent_payments_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_protocols_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_recipients_get | id | id (required): string | ok (required): booleanrecipient (required): object |
agent_recipients_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_recipients_resolve | to | action: stringasset: stringto (required): string | ok (required): booleanrecipient (required): object |
agent_recurringPayments_get | id | id (required): string | ok (required): booleanrecipient (required): object |
agent_recurringPayments_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_self_get | none | none | agent (required): objectcannot (required): arraycurrent_usage (required): objectlimits (required): objectok (required): booleanpermissions (required): object |
agent_self_limits_list | none | none | current_usage (required): objectok (required): booleanpermissions (required): objectspend_limits (required): objectswap_limits (required): object |
agent_self_usage_list | none | none | current_usage (required): objectok (required): booleanrate_limits (required): arraythrottled (required): boolean |
agent_simulate | method, path | body: unknowndepth: stringmethod (required): stringpath (required): string | blocks: arrayexecution_path (required): arrayok (required): booleanwould_succeed (required): boolean |
agent_trustedDestinations_cancel_create | id, idempotency_key | id (required): stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch. | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_trustedDestinations_confirm_create | id, idempotency_key | id (required): stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch. | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_trustedDestinations_delete | id, idempotency_key | id (required): stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch. | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_trustedDestinations_get | id | id (required): string | ok (required): booleanrecipient (required): object |
agent_trustedDestinations_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_webhooks_create | event_types, idempotency_key, url | description: stringevent_types (required): arrayidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.url (required): string | ok (required): booleansigning_secret (required): stringwebhook (required): object |
agent_webhooks_delete | id, idempotency_key | id (required): stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch. | ok (required): booleanwebhook (required): object |
agent_webhooks_deliveries_get | id | cursor: stringevent_id: stringid (required): stringlimit: integerstatus: string | has_more (required): booleanitems (required): arraynext_cursor (required): anyOfok (required): boolean |
agent_webhooks_get | id | id (required): stringinclude: string | ok (required): booleanwebhook (required): object |
agent_webhooks_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_webhooks_rotateSecret_create | id, idempotency_key | id (required): stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch. | ok (required): booleanprevious_secret_valid_until (required): stringsigning_secret (required): stringwebhook (required): object |
agent_webhooks_test_create | id, idempotency_key | id (required): stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch. | delivery (required): objectevent (required): objectok (required): boolean |
agent_webhooks_update | id, idempotency_key | description: anyOfenabled: booleanevent_types: arrayid (required): stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.url: string | ok (required): booleanwebhook (required): object |
agent_withdrawalMethods_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_withdrawals_get | id | id (required): stringinclude: string | ok (required): booleanoperation (required): object |
agent_withdrawals_list | none | cursor: stringlimit: integer | has_more (required): booleanitems (required): arraynext_cursor (required): string|nullok (required): boolean |
agent_withdrawals_toBank_create | asset, idempotency_key, method_id | amount: stringamount_usd: stringasset (required): stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.method_id (required): stringnote: anyOf | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_withdrawals_toCrypto_create | asset, destination_id, idempotency_key | amount: stringamount_usd: stringasset (required): stringdestination_id (required): stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.note: anyOf | estimated_ltv_after: stringfee_usd (required): stringhuman_message: stringok (required): booleanonchain: objectoperation_id (required): stringpolicy_evaluation: objectrepay_amount_usd: stringresource (required): objectstatus (required): string |
agent_x402_purchase | idempotency_key, max_amount, url | body: unknownidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.max_amount (required): stringmethod: stringurl (required): string | ok (required): booleanoperation_id (required): anyOfpaid (required): booleanpayment (required): anyOfpayment_authorized (required): booleanrecoverable: booleanrecovery_error: objectresponse (required): anyOfseller_accepted (required): booleanseller_error: objectsettled (required): booleansettlement (required): anyOf |
agent_x402_quote | url | body: unknownmethod: stringtimeout_ms: integerurl (required): string | ok (required): booleanprice (required): anyOfresponse (required): objectsupported (required): booleanunsupported_details: objectunsupported_reason: stringx402_required (required): boolean |
agent_x402_sign | idempotency_key | amount: stringidempotency_key (required): string - Stable idempotency key for this logical operation. Generate a fresh UUID for each new request; reuse the same value only when retrying the same logical request. Retries with the same key replay the original response; reusing a key with a different payload returns idempotency_key_reuse_mismatch.max_timeout_seconds: integerpay_to: stringpayment_requirements: objecttarget_url: string | amount (required): stringnonce (required): stringok (required): booleanoperation_id (required): stringpay_to (required): stringpayment_header (required): stringpayment_header_name (required): stringpayment_headers (required): objectpayment_id (required): stringpayment_version (required): numbervalid_before (required): string |
mcp_subscribe | event_types | event_types (required): array | ok (required): booleansubscriptions (required): array |
mcp_unsubscribe | none | none | ok (required): booleansubscriptions (required): array |
