Skip to content
Hightop docs header art
Hightop
Developer Tools

MCP#

Hightop exposes the Agent API over the Model Context Protocol at:

text
example
https://api.hightop.com/mcp

MCP 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:

text
example
https://api.hightop.com/mcp

Claude 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#

text
example
POST   /mcp   JSON-RPC 2.0 requests
GET    /mcp   Server-Sent Events stream
DELETE /mcp   Close the current session

The OAuth token must be bound to:

text
example
https://api.hightop.com/mcp

Headers#

Initialize uses POST /mcp without Mcp-Session-Id.

After initialize:

text
example
Authorization: Bearer <jwt>
Mcp-Session-Id: <session id>
Mcp-Protocol-Version: <server protocol version>

Accept requirements:

text
example
POST Accept: application/json, text/event-stream
GET  Accept: text/event-stream

Last-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:

json
example
{
  "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:

text
example
notifications/hightop/agent_webhook

Delivery 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#

SymptomCauseFix
401 on initializeMissing or wrong auth, or token not bound to the MCP resourceBind the OAuth token to https://api.hightop.com/mcp, or send valid header-key auth
insufficient_scope on a tool callToken isn't bound to the /mcp resource, or lacks the tool's per-route agent:* scopeRe-consent for the /mcp resource with the needed scopes (OAuth scopes)
validation_failed on a mutating toolMissing or blank idempotency_keySupply a fresh idempotency_key; Hightop does not synthesize one
429 with Retry-AfterSession cap saturated (default 2 per agent) or rate limit hitClose idle sessions with DELETE /mcp, then retry after the delay
Missing webhook eventsNot subscribed, or client ignores unknown notificationsCall mcp_subscribe, and poll with agent_operations_wait_for_status if the client drops unknown notifications
Browser request rejected before authDisallowed OriginUse 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

ToolEndpointScopeRate classIdempotency input requiredRead-only hintDescription
agent_account_get
Get Account
GET/accountagent:readreadNoYesReturn a scoped account summary for the authenticated agent wallet.
agent_activity_list
Get Activity
GET/activityagent:readreadNoYesList scoped Activity rows for the authenticated agent wallet without marking them read.
agent_assets_list
Get Assets
GET/assetsagent:readreadNoYesList assets visible to the authenticated agent.
agent_balances_cash_list
Get Balances Cash
GET/balances/cashagent:readreadNoYesList cash balances for the authenticated agent wallet.
agent_balances_list
Get Balances
GET/balancesagent:readreadNoYesList balances for the authenticated agent wallet.
agent_borrow_collateral_add_create
Create Borrow Collateral Add
POST/borrow/collateral/addagent:borrow:writewriteYesNoCreate a collateral add operation.
agent_borrow_collateral_list
Get Borrow Collateral
GET/borrow/collateralagent:readreadNoYesList collateral for the authenticated agent wallet.
agent_borrow_collateral_remove_create
Create Borrow Collateral Remove
POST/borrow/collateral/removeagent:borrow:writewriteYesNoCreate a collateral remove operation.
agent_borrow_collateralOptions_list
Get Borrow Collateral Options
GET/borrow/collateral-optionsagent:readreadNoYesList addable collateral options for the authenticated agent wallet.
agent_borrow_create
Create Borrow
POST/borrowagent:borrow:writewriteYesNoCreate a borrow operation for USDC or GREEN.
agent_borrow_deleverage_create
Create Borrow Deleverage
POST/borrow/deleverageagent:borrow:writewriteYesNoCreate a target-LTV deleverage operation.
agent_borrow_get
Get Borrow
GET/borrowagent:readreadNoYesReturn borrow summary for the authenticated agent wallet.
agent_borrow_repay_create
Create Borrow Repay
POST/borrow/repayagent:borrow:writewriteYesNoCreate a debt repayment operation.
agent_capabilities_list
Get Capabilities
GET/capabilitiesagent:readreadNoYesReturn Agent API capabilities for the authenticated agent.
agent_capabilitiesJson_list
Get Capabilities JSON
GET/capabilities.jsonagent:readreadNoYesReturn Agent API capabilities as JSON.
agent_conversions_create
Create Conversions
POST/conversionsagent:conversions:writewriteYesNoExecute a conversion from a quote.
agent_conversions_get
Get Conversions
GET/conversions/{id}agent:readreadNoYesGet one conversion operation for the authenticated agent.
agent_conversions_list
Get Conversions
GET/conversionsagent:readreadNoYesList conversion operations for the authenticated agent.
agent_conversions_quote
Quote Conversion
POST/conversions/quoteagent:simulatesimulateYesNoCreate a stateful conversion quote.
agent_depositAddress_list
Get Deposit Address
GET/deposit-addressagent:readreadNoYesReturn a Base deposit address for an asset.
agent_depositMethods_list
Get Deposit Methods
GET/deposit-methodsagent:readreadNoYesList deposit methods for the authenticated agent wallet.
agent_earn_deposit_create
Create Earn Deposit
POST/earn/depositagent:earn:writewriteYesNoCreate an earn deposit operation.
agent_earn_get
Get Earn
GET/earn/{id}agent:readreadNoYesGet one earn position for the authenticated agent wallet.
agent_earn_list
Get Earn
GET/earnagent:readreadNoYesList earn positions for the authenticated agent wallet.
agent_earn_move_create
Create Earn Move
POST/earn/moveagent:earn:writewriteYesNoCreate an earn move operation.
agent_earn_opportunities_list
Get Earn Opportunities
GET/earn/opportunitiesagent:readreadNoYesList earn opportunities available to the authenticated agent.
agent_earn_rewards_claim_create
Create Earn Rewards Claim
POST/earn/rewards/claimagent:earn:writewriteYesNoCreate a rewards claim operation.
agent_earn_withdraw_create
Create Earn Withdraw
POST/earn/withdrawagent:earn:writewriteYesNoCreate an earn withdrawal operation.
agent_oneOffPayments_create
Create One Off Payments
POST/one-off-paymentsagent:payments:writewriteYesNoCreate a one-off payment operation.
agent_oneOffPayments_get
Get One Off Payments
GET/one-off-payments/{id}agent:readreadNoYesGet a one-off payment operation for the authenticated agent.
agent_oneOffPayments_list
Get One Off Payments
GET/one-off-paymentsagent:readreadNoYesList one-off payment operations for the authenticated agent.
agent_operations_get
Get Operations
GET/operations/{id}agent:readreadNoYesGet one AgentOperation for the authenticated agent.
agent_operations_list
Get Operations
GET/operationsagent:readreadNoYesList AgentOperation rows for the authenticated agent.
agent_operations_wait_for_status
Wait for Operation Status
inlineagent:readread guardNoYesBlock 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_create
Create Payments
POST/paymentsagent:payments:writewriteYesNoCreate a payment operation.
agent_payments_get
Get Payments
GET/payments/{id}agent:readreadNoYesGet one payment operation for the authenticated agent.
agent_payments_list
Get Payments
GET/paymentsagent:readreadNoYesList payment operations for the authenticated agent.
agent_protocols_list
Get Protocols
GET/protocolsagent:readreadNoYesList protocols visible to the authenticated agent.
agent_recipients_get
Get Recipients
GET/recipients/{id}agent:readreadNoYesGet one recipient visible to the authenticated agent wallet.
agent_recipients_list
Get Recipients
GET/recipientsagent:readreadNoYesList payment recipients visible to the authenticated agent wallet.
agent_recipients_resolve
Resolve Recipient
POST/recipients/resolveagent:readreadNoYesResolve an agent-facing recipient identifier.
agent_recurringPayments_get
Get Recurring Payments
GET/recurring-payments/{id}agent:readreadNoYesGet one recurring payment recipient visible to the authenticated agent wallet.
agent_recurringPayments_list
Get Recurring Payments
GET/recurring-paymentsagent:readreadNoYesList recurring payment recipients visible to the authenticated agent wallet.
agent_self_get
Get Self
GET/selfagent:readreadNoYesReturn the authenticated agent and scoped wallet context.
agent_self_limits_list
Get Self Limits
GET/self/limitsagent:readreadNoYesReturn effective operation permissions, spend/swap limits, and current-period usage for the authenticated agent.
agent_self_usage_list
Get Self Usage
GET/self/usageagent:readreadNoYesReturn current Agent API rate-limit and usage state.
agent_simulate
Simulate Operation
POST/simulateagent:simulatesimulateNoNoSimulate a write request without broadcasting.
agent_trustedDestinations_cancel_create
Create Trusted Destinations Cancel
POST/trusted-destinations/{id}/cancelagent:trusted_destinations:writewriteYesNoCancel a pending trusted destination for the authenticated agent wallet.
agent_trustedDestinations_confirm_create
Create Trusted Destinations Confirm
POST/trusted-destinations/{id}/confirmagent:trusted_destinations:writewriteYesNoConfirm a pending trusted destination for the authenticated agent wallet.
agent_trustedDestinations_delete
Delete Trusted Destinations
DELETE/trusted-destinations/{id}agent:trusted_destinations:writewriteYesNoRemove a trusted destination from the authenticated agent wallet.
agent_trustedDestinations_get
Get Trusted Destinations
GET/trusted-destinations/{id}agent:readreadNoYesGet one trusted destination visible to the authenticated agent wallet.
agent_trustedDestinations_list
Get Trusted Destinations
GET/trusted-destinationsagent:readreadNoYesList trusted destinations visible to the authenticated agent wallet.
agent_webhooks_create
Create Webhooks
POST/webhooksagent:webhooks:managewebhook_managementYesNoCreate an outbound webhook endpoint.
agent_webhooks_delete
Delete Webhooks
DELETE/webhooks/{id}agent:webhooks:managewebhook_managementYesNoDelete or disable an outbound webhook endpoint.
agent_webhooks_deliveries_get
Get Webhooks Deliveries
GET/webhooks/{id}/deliveriesagent:readreadNoYesList webhook delivery attempts for one outbound webhook endpoint.
agent_webhooks_get
Get Webhooks
GET/webhooks/{id}agent:readwebhook_managementNoYesGet one outbound webhook endpoint for the authenticated agent.
agent_webhooks_list
Get Webhooks
GET/webhooksagent:readwebhook_managementNoYesList outbound webhook endpoints for the authenticated agent.
agent_webhooks_rotateSecret_create
Create Webhooks Rotate Secret
POST/webhooks/{id}/rotate-secretagent:webhooks:managewebhook_managementYesNoRotate an outbound webhook signing secret.
agent_webhooks_test_create
Create Webhooks Test
POST/webhooks/{id}/testagent:webhooks:managewebhook_managementYesNoSend a webhook.test delivery to an outbound webhook endpoint.
agent_webhooks_update
Update Webhooks
PATCH/webhooks/{id}agent:webhooks:managewebhook_managementYesNoUpdate an outbound webhook endpoint.
agent_withdrawalMethods_list
Get Withdrawal Methods
GET/withdrawal-methodsagent:readreadNoYesList withdrawal methods visible to the authenticated agent wallet.
agent_withdrawals_get
Get Withdrawals
GET/withdrawals/{id}agent:readreadNoYesGet one withdrawal operation for the authenticated agent.
agent_withdrawals_list
Get Withdrawals
GET/withdrawalsagent:readreadNoYesList withdrawal operations for the authenticated agent.
agent_withdrawals_toBank_create
Create Withdrawals To Bank
POST/withdrawals/to-bankagent:withdrawals:writewriteYesNoCreate a bank withdrawal operation.
agent_withdrawals_toCrypto_create
Create Withdrawals To Crypto
POST/withdrawals/to-cryptoagent:withdrawals:writewriteYesNoCreate a crypto withdrawal operation.
agent_x402_purchase
Purchase x402 Resource
POST/x402/purchaseagent:payments:writewriteYesNoFetch a URL, satisfy an x402 challenge when required, and return the upstream response.
agent_x402_quote
Quote x402 Resource
POST/x402/quoteagent:simulatesimulateNoYesFetch a URL and return its supported x402 price without paying.
agent_x402_sign
Sign x402 Payment
POST/x402/signagent:payments:writewriteYesNoSign a Base USDC x402 payment authorization from an x402 payment requirement.
mcp_subscribe
Subscribe to Agent Events
inlineagent:readread guardNoNoSet the event types delivered on this MCP session stream.
mcp_unsubscribe
Unsubscribe from Agent Events
inlineauthenticated sessionsession updateNoNoStop delivering agent webhook events on this MCP session stream.

Input and Output Fields#

ToolRequired inputsInput fieldsTop-level output fields
agent_account_getnonenoneaccount (required): object
ok (required): boolean
agent_activity_listnonecursor: string
limit: integer
since: string
type: string
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_assets_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_balances_cash_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_balances_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_borrow_collateral_add_createasset, idempotency_keyallow_conversion: boolean
amount: string
amount_usd: string
asset (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: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_borrow_collateral_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_borrow_collateral_remove_createasset, idempotency_keyamount: string
amount_usd: string
asset (required): string
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
remove_all: boolean
estimated_ltv_after: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_borrow_collateralOptions_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_borrow_createasset, idempotency_keyamount: string
amount_usd: string
asset (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: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_borrow_deleverage_createidempotency_key, target_ltvallow_conversion: boolean
allow_partial: boolean
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_repay_amount_usd: string
source_asset: string
target_ltv (required): string
use_available_cash_first: boolean
estimated_ltv_after: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_borrow_getnonenoneok (required): boolean
summary (required): object
agent_borrow_repay_createasset, idempotency_keyallow_conversion: boolean
amount: string
amount_usd: string
asset (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: boolean
source_asset: string
estimated_ltv_after: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_capabilities_listnonenoneagent_api_contract_version (required): string
api_version (required): string
base_path (required): string
can_claim_loot (required): object
emitted_webhook_event_types (required): array
endpoints (required): array
ok (required): boolean
operation_statuses (required): array
operation_types (required): array
subscribable_webhook_event_types (required): array
supported_actions (required): array
target_wrapper_version (required): string
webhook_event_types (required): array
agent_capabilitiesJson_listnonenoneagent_api_contract_version (required): string
api_version (required): string
base_path (required): string
can_claim_loot (required): object
emitted_webhook_event_types (required): array
endpoints (required): array
ok (required): boolean
operation_statuses (required): array
operation_types (required): array
subscribable_webhook_event_types (required): array
supported_actions (required): array
target_wrapper_version (required): string
webhook_event_types (required): array
agent_conversions_createidempotency_key, quote_ididempotency_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: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_conversions_getidid (required): string
include: string
ok (required): boolean
operation (required): object
agent_conversions_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_conversions_quotefrom_asset, idempotency_key, to_assetamount: string
amount_usd: string
from_asset (required): string
from_vault_address: string
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.
slippage_percent: number
to_asset (required): string
to_vault_address: string
ok (required): boolean
quote (required): object
agent_depositAddress_listassetasset (required): string
chain: string
address (required): string
asset (required): string
chain (required): string
ok (required): boolean
agent_depositMethods_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_earn_deposit_createasset, idempotency_keyamount: string
amount_usd: string
asset (required): string
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.
use_best_available: boolean
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: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_earn_getidid (required): stringok (required): boolean
position (required): object
agent_earn_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_earn_move_createfrom_position_id, idempotency_keyamount: string
amount_usd: string
from_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: boolean
to_best_available: boolean
to_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: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_earn_opportunities_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_earn_rewards_claim_createidempotency_keyidempotency_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: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_earn_withdraw_createidempotency_key, position_idallow_conversion: boolean
amount: string
amount_usd: string
destination_asset: string
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.
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: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_oneOffPayments_createasset, idempotency_key, toamount: string
amount_usd: string
asset (required): string
expires_in_seconds: integer
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.
note: anyOf
to (required): string
unlock_delay_seconds: integer
estimated_ltv_after: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_oneOffPayments_getidid (required): string
include: string
ok (required): boolean
operation (required): object
agent_oneOffPayments_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_operations_getidid (required): string
include: string
ok (required): boolean
operation (required): object
agent_operations_listnonecursor: string
limit: integer
since: string
status: string
type: string
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_operations_wait_for_statusoperation_idoperation_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_createasset, idempotency_key, toamount: string
amount_usd: string
asset (required): string
deliver_as: string
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.
note: anyOf
prefer: string
slippage_percent: number
to (required): string
estimated_ltv_after: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_payments_getidid (required): string
include: string
ok (required): boolean
operation (required): object
agent_payments_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_protocols_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_recipients_getidid (required): stringok (required): boolean
recipient (required): object
agent_recipients_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_recipients_resolvetoaction: string
asset: string
to (required): string
ok (required): boolean
recipient (required): object
agent_recurringPayments_getidid (required): stringok (required): boolean
recipient (required): object
agent_recurringPayments_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_self_getnonenoneagent (required): object
cannot (required): array
current_usage (required): object
limits (required): object
ok (required): boolean
permissions (required): object
agent_self_limits_listnonenonecurrent_usage (required): object
ok (required): boolean
permissions (required): object
spend_limits (required): object
swap_limits (required): object
agent_self_usage_listnonenonecurrent_usage (required): object
ok (required): boolean
rate_limits (required): array
throttled (required): boolean
agent_simulatemethod, pathbody: unknown
depth: string
method (required): string
path (required): string
blocks: array
execution_path (required): array
ok (required): boolean
would_succeed (required): boolean
agent_trustedDestinations_cancel_createid, idempotency_keyid (required): string
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.
estimated_ltv_after: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_trustedDestinations_confirm_createid, idempotency_keyid (required): string
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.
estimated_ltv_after: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_trustedDestinations_deleteid, idempotency_keyid (required): string
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.
estimated_ltv_after: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_trustedDestinations_getidid (required): stringok (required): boolean
recipient (required): object
agent_trustedDestinations_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_webhooks_createevent_types, idempotency_key, urldescription: string
event_types (required): array
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.
url (required): string
ok (required): boolean
signing_secret (required): string
webhook (required): object
agent_webhooks_deleteid, idempotency_keyid (required): string
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.
ok (required): boolean
webhook (required): object
agent_webhooks_deliveries_getidcursor: string
event_id: string
id (required): string
limit: integer
status: string
has_more (required): boolean
items (required): array
next_cursor (required): anyOf
ok (required): boolean
agent_webhooks_getidid (required): string
include: string
ok (required): boolean
webhook (required): object
agent_webhooks_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_webhooks_rotateSecret_createid, idempotency_keyid (required): string
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.
ok (required): boolean
previous_secret_valid_until (required): string
signing_secret (required): string
webhook (required): object
agent_webhooks_test_createid, idempotency_keyid (required): string
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.
delivery (required): object
event (required): object
ok (required): boolean
agent_webhooks_updateid, idempotency_keydescription: anyOf
enabled: boolean
event_types: array
id (required): string
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.
url: string
ok (required): boolean
webhook (required): object
agent_withdrawalMethods_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_withdrawals_getidid (required): string
include: string
ok (required): boolean
operation (required): object
agent_withdrawals_listnonecursor: string
limit: integer
has_more (required): boolean
items (required): array
next_cursor (required): string|null
ok (required): boolean
agent_withdrawals_toBank_createasset, idempotency_key, method_idamount: string
amount_usd: string
asset (required): string
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.
method_id (required): string
note: anyOf
estimated_ltv_after: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_withdrawals_toCrypto_createasset, destination_id, idempotency_keyamount: string
amount_usd: string
asset (required): string
destination_id (required): string
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.
note: anyOf
estimated_ltv_after: string
fee_usd (required): string
human_message: string
ok (required): boolean
onchain: object
operation_id (required): string
policy_evaluation: object
repay_amount_usd: string
resource (required): object
status (required): string
agent_x402_purchaseidempotency_key, max_amount, urlbody: unknown
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_amount (required): string
method: string
url (required): string
ok (required): boolean
operation_id (required): anyOf
paid (required): boolean
payment (required): anyOf
payment_authorized (required): boolean
recoverable: boolean
recovery_error: object
response (required): anyOf
seller_accepted (required): boolean
seller_error: object
settled (required): boolean
settlement (required): anyOf
agent_x402_quoteurlbody: unknown
method: string
timeout_ms: integer
url (required): string
ok (required): boolean
price (required): anyOf
response (required): object
supported (required): boolean
unsupported_details: object
unsupported_reason: string
x402_required (required): boolean
agent_x402_signidempotency_keyamount: string
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_timeout_seconds: integer
pay_to: string
payment_requirements: object
target_url: string
amount (required): string
nonce (required): string
ok (required): boolean
operation_id (required): string
pay_to (required): string
payment_header (required): string
payment_header_name (required): string
payment_headers (required): object
payment_id (required): string
payment_version (required): number
valid_before (required): string
mcp_subscribeevent_typesevent_types (required): arrayok (required): boolean
subscriptions (required): array
mcp_unsubscribenonenoneok (required): boolean
subscriptions (required): array

Previous

CLI

Next

Architecture