{"name":"ai.oobeprotocol.sap.mcp/sap-mcp","slug":"sap-mcp","title":"SAP MCP Server","description":"Solana-native MCP gateway for SAP, DeFi tools, SNS identity, and x402 payments.","url":"https://mcp.market/server/sap-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":41,"stars":3,"forks":0,"downloads_week":254,"last_push_at":"2026-09-24T16:24:53.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T02:55:27.094Z","last_ok_at":"2026-11-04T02:55:27.094Z","latency_ms":917},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/OOBE-PROTOCOL/sap-mcp","website":"https://mcp.sap.oobeprotocol.ai/","version":"0.7.1","remotes":[{"type":"streamable-http","url":"https://mcp.sap.oobeprotocol.ai/mcp"}],"packages":[{"registryType":"npm","identifier":"@oobe-protocol-labs/sap-mcp-server","version":"0.7.1","runtimeHint":"npx","transport":{"type":"stdio"},"runtimeArguments":[{"value":"--yes","type":"positional"},{"value":"--package","type":"positional"},{"value":"@oobe-protocol-labs/sap-mcp-server@0.7.1","type":"positional"},{"value":"sap-mcp-server","type":"positional"}],"environmentVariables":[{"description":"Keep SAP MCP pointed at the active profile manager instead of stale client env overrides.","format":"boolean","value":"false","name":"SAP_MCP_ALLOW_ENV_CONFIG_OVERRIDE"},{"description":"Runtime log level for local SAP MCP stdio sessions.","format":"string","default":"info","name":"SAP_LOG_LEVEL"}]}],"tools":[{"name":"3land_buyNFT","description":"Purchase an NFT from a 3.Land listing. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"buyer":{"type":"string","description":"Solana public key (base58)"},"listingId":{"type":"string","description":"3.Land listing ID"}},"required":["buyer","listingId"],"additionalProperties":false,"description":"3land Buy N F T input schema. Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"3land_cancelListing","description":"Cancel an active NFT listing on 3.Land. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"seller":{"type":"string","description":"Solana public key (base58)"},"listingId":{"type":"string","description":"3.Land listing ID to cancel"}},"required":["seller","listingId"],"additionalProperties":false,"description":"3land Cancel Listing input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"3land_createCollection","description":"Create a new NFT collection on 3.Land marketplace. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Collection owner wallet"},"name":{"type":"string","description":"Collection name"},"symbol":{"type":"string","description":"Collection symbol"},"description":{"type":"string","description":"Collection description"},"image":{"type":"string","description":"Collection cover image URL"},"royaltyBps":{"type":"number","description":"Royalty Bps parameter for 3land Create Collection."},"creators":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"Solana public key (base58)"},"share":{"type":"number","description":"Share parameter for 3land Create Collection."}},"required":["address","share"],"additionalProperties":false,"description":"Creators parameter for 3land Create Collection."},"description":"Creators parameter for 3land Create Collection."}},"required":["owner","name","symbol","image"],"additionalProperties":false,"description":"3land Create Collection input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"3land_listForSale","description":"List an NFT for sale on 3.Land in any SPL token. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"seller":{"type":"string","description":"Solana public key (base58)"},"mint":{"type":"string","description":"NFT mint to list"},"price":{"type":"string","description":"Listing price (in specified token)"},"priceMint":{"type":"string","description":"NFT mint address (base58)"},"expiry":{"type":"string","description":"ISO 8601 listing expiry timestamp"}},"required":["seller","mint","price"],"additionalProperties":false,"description":"3land List For Sale input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"3land_mintAndList","description":"Mint an NFT on 3.Land and automatically list it for sale. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Solana public key (base58)"},"collection":{"type":"string","description":"3.Land collection ID"},"name":{"type":"string","description":"Name name or domain value used by 3land Mint And List."},"description":{"type":"string","description":"Description parameter for 3land Mint And List."},"image":{"type":"string","description":"NFT image URL"},"attributes":{"type":"array","items":{"type":"object","properties":{"trait_type":{"type":"string","description":"Trait Type parameter for 3land Mint And List."},"value":{"anyOf":[{"type":"string","description":"Value parameter for 3land Mint And List."},{"type":"number","description":"Value parameter for 3land Mint And List."}],"description":"Value parameter for 3land Mint And List."}},"required":["trait_type","value"],"additionalProperties":false,"description":"Attributes parameter for 3land Mint And List."},"description":"Attributes parameter for 3land Mint And List."},"price":{"type":"string","description":"Listing price in token amount"},"priceMint":{"type":"string","description":"NFT mint address (base58)"},"supply":{"type":"number","description":"Edition supply"}},"required":["owner","collection","name","image","price"],"additionalProperties":false,"description":"3land Mint And List input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"adrena_addCollateral","description":"Add collateral to an existing Adrena position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionKey":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","positionKey","amount"],"additionalProperties":false,"description":"Adrena Add Collateral input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"adrena_closePosition","description":"Close a perpetual position on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionKey":{"type":"string","description":"Solana public key (base58)"}},"required":["wallet","positionKey"],"additionalProperties":false,"description":"Adrena Close Position input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"adrena_getPositions","description":"Get all open positions on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"}},"required":["wallet"],"additionalProperties":false,"description":"Adrena Get Positions input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"adrena_openPosition","description":"Open a leveraged perpetual position on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"market":{"type":"string","description":"Market symbol (e.g. \"SOL\", \"BTC\", \"ETH\")"},"collateralMint":{"type":"string","description":"Collateral token mint (e.g. USDC, SOL)"},"collateralAmount":{"type":"string","description":"Raw token amount (smallest unit)"},"side":{"type":"string","enum":["long","short"],"description":"Side parameter for Adrena Open Position."},"leverage":{"type":"number","description":"Leverage multiplier"},"stopLoss":{"type":"number","description":"Stop loss price"},"takeProfit":{"type":"number","description":"Take profit price"}},"required":["wallet","market","collateralMint","collateralAmount","side","leverage"],"additionalProperties":false,"description":"Adrena Open Position input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"adrena_removeCollateral","description":"Remove collateral from an Adrena position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionKey":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","positionKey","amount"],"additionalProperties":false,"description":"Adrena Remove Collateral input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"alldomains_getOwnedDomains","description":"Get all domains owned by a wallet across all TLDs. SAP MCP context: Protocol alldomains; operation class read. Use to list domains owned by a wallet through AllDomains. Use as discovery context before choosing a name to associate with an agent.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"tld":{"type":"string","description":"Filter by TLD"}},"required":["wallet"],"additionalProperties":false,"description":"Alldomains Get Owned Domains input schema. Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"alldomains_registerDomain","description":"Register a domain on AllDomains (supports multiple TLDs: .abc, .bonk, .poor, etc.). SAP MCP context: Protocol alldomains; operation class write. Use for AllDomains name registration and resolution workflows. Confirm domain, TLD, owner, and renewal or purchase terms before writes. Use only when the requested name service is not SNS-specific.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"domain":{"type":"string","description":"Full domain (e.g. \"myname.abc\", \"trader.bonk\")"},"tld":{"type":"string","description":"TLD if not included in domain string"}},"required":["wallet","domain"],"additionalProperties":false,"description":"Alldomains Register Domain input schema. Intent: local-signer write workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"alldomains_resolveDomain","description":"Resolve a multi-TLD domain to its owner wallet. SAP MCP context: Protocol alldomains; operation class read. Use to resolve an AllDomains name without changing ownership or records. Use only when the requested name service is not SNS-specific.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Full domain to resolve"}},"required":["domain"],"additionalProperties":false,"description":"Alldomains Resolve Domain input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"blinks_buildActionUrl","description":"Build and optionally wrap a Solana Action URL for sharing as a Blink. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"baseUrl":{"type":"string","description":"Action API endpoint"},"params":{"type":"object","additionalProperties":{"type":"string"},"description":"Template parameters to encode"},"blinkProvider":{"type":"string","enum":["dial.to","phantom","backpack","none"],"description":"Optionally wrap in a Blink provider URL"}},"required":["baseUrl"],"additionalProperties":false,"description":"Blinks Build Action Url input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"blinks_confirmAction","description":"Confirm a completed Solana Action by sending the tx signature back to the Action provider. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"actionUrl":{"type":"string","description":"Action URL parameter for Blinks Confirm Action."},"signature":{"type":"string","description":"Transaction signature after signing and submitting"}},"required":["actionUrl","signature"],"additionalProperties":false,"description":"Blinks Confirm Action input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"blinks_executeAction","description":"Execute a Solana Action — sends wallet to the Action endpoint and receives a transaction to sign. SAP MCP context: Protocol blinks; operation class write. Use to execute a Solana Action POST flow. Confirm the action metadata, parameters, expected transaction, and user intent before invoking. Preview and validate action output before signing or submitting any returned transaction through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"actionUrl":{"type":"string","description":"Action endpoint URL (from getAction links)"},"wallet":{"type":"string","description":"User wallet to sign the transaction"},"params":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value parameters to fill Action template variables"}},"required":["actionUrl","wallet"],"additionalProperties":false,"description":"Blinks Execute Action input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"blinks_getAction","description":"Fetch metadata for a Solana Action (Blink) — returns title, description, available actions, and parameters. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"actionUrl":{"type":"string","description":"Solana Action URL (https endpoint implementing the Actions spec)"}},"required":["actionUrl"],"additionalProperties":false,"description":"Blinks Get Action input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"blinks_resolveBlinkUrl","description":"Resolve a Blink URL (e.g. dial.to link) to its underlying Solana Action URL. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"blinkUrl":{"type":"string","description":"Blink URL (e.g. https://dial.to/?action=solana-action:...)"}},"required":["blinkUrl"],"additionalProperties":false,"description":"Blinks Resolve Blink Url input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"blinks_validateActionsJson","description":"Validate a domain's actions.json file — checks if a website correctly implements the Solana Actions spec. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain to check for actions.json (e.g. \"jupiter.exchange\")"}},"required":["domain"],"additionalProperties":false,"description":"Blinks Validate Actions Json input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"bridging_bridgeDeBridge","description":"Bridge tokens across chains via deBridge DLN. Fast cross-chain transfers with deterministic pricing. SAP MCP context: Protocol bridging; operation class write. Use for cross-chain asset movement through Wormhole or deBridge. Confirm source chain, destination chain, token mint, amount, recipient, route fees, and finality expectations before invoking a bridge write. For bridge flows call the matching status tool after submission. If the bridge capability belongs to a registered SAP agent, plan the profile with sap_agent_identity_plan, register through sap_payments_register_agent, then advertise bridge capability IDs with sap_payments_update_agent or sap_publish_tool_by_name.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sourceChain":{"type":"number","description":"Source chain ID (e.g. 7565164 for Solana)"},"destinationChain":{"type":"number","description":"Destination chain ID"},"tokenIn":{"type":"string","description":"Token address on source chain"},"tokenOut":{"type":"string","description":"Token address on destination chain (use \"0x0\" for native)"},"amount":{"type":"string","description":"Amount to bridge (raw)"},"sender":{"type":"string","description":"Sender address"},"recipient":{"type":"string","description":"Recipient address on destination chain"},"slippageBps":{"type":"number","description":"Slippage tolerance in bps"}},"required":["sourceChain","destinationChain","tokenIn","tokenOut","amount","sender","recipient"],"additionalProperties":false,"description":"Bridging Bridge De Bridge input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"bridging_bridgeDeBridgeStatus","description":"Check the status of a deBridge DLN cross-chain transfer. SAP MCP context: Protocol bridging; operation class read. Use to check deBridge transfer status after a bridge submission. Call this after bridging_bridgeDeBridge and keep the resulting status with the user-facing bridge audit trail.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"orderId":{"type":"string","description":"deBridge DLN order ID"}},"required":["orderId"],"additionalProperties":false,"description":"Bridging Bridge De Bridge Status input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"bridging_bridgeWormhole","description":"Bridge tokens across chains via Wormhole. Supports Solana ↔ EVM chains. SAP MCP context: Protocol bridging; operation class write. Use for cross-chain asset movement through Wormhole or deBridge. Confirm source chain, destination chain, token mint, amount, recipient, route fees, and finality expectations before invoking a bridge write. For bridge flows call the matching status tool after submission. If the bridge capability belongs to a registered SAP agent, plan the profile with sap_agent_identity_plan, register through sap_payments_register_agent, then advertise bridge capability IDs with sap_payments_update_agent or sap_publish_tool_by_name.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sourceChain":{"type":"string","description":"Source chain identifier (e.g. \"solana\", \"ethereum\", \"base\", \"polygon\")"},"destinationChain":{"type":"string","description":"Destination chain identifier"},"token":{"type":"string","description":"Token address on source chain"},"amount":{"type":"string","description":"Amount to bridge (raw, smallest unit)"},"sender":{"type":"string","description":"Sender wallet on source chain"},"recipient":{"type":"string","description":"Recipient address on destination chain"},"relayerFee":{"type":"string","description":"Raw token amount (smallest unit, no decimals)"}},"required":["sourceChain","destinationChain","token","amount","sender","recipient"],"additionalProperties":false,"description":"Bridging Bridge Wormhole input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"bridging_bridgeWormholeStatus","description":"Check the status of a Wormhole bridge transfer. SAP MCP context: Protocol bridging; operation class read. Use to check Wormhole bridge transfer status after a bridge submission. Call this after bridging_bridgeWormhole and keep the resulting status with the user-facing bridge audit trail.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sequence":{"type":"string","description":"Wormhole sequence number from bridgeWormhole response"},"sourceChain":{"type":"string","description":"Source Chain parameter for Bridging Bridge Wormhole Status."}},"required":["sequence","sourceChain"],"additionalProperties":false,"description":"Bridging Bridge Wormhole Status input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"coingecko_getOHLCV","description":"Get OHLCV (price chart) data from CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tokenId":{"type":"string","description":"Token ID mint, symbol, or token identifier used by Coingecko Get O H L C V."},"vsCurrency":{"type":"string","description":"Vs Currency parameter for Coingecko Get O H L C V."},"days":{"type":"string","enum":["1","7","14","30","90","180","365","max"],"description":"Days parameter for Coingecko Get O H L C V."}},"required":["tokenId"],"additionalProperties":false,"description":"Coingecko Get O H L C V input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"coingecko_getPoolsByToken","description":"Get all liquidity pools for a token from CoinGecko on-chain DEX tracker. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"network":{"type":"string","description":"Network Solana network or cluster selector for Coingecko Get Pools By Token."},"tokenAddress":{"type":"string","description":"Token contract/mint address"},"page":{"type":"number","description":"Page pagination control for Coingecko Get Pools By Token."}},"required":["tokenAddress"],"additionalProperties":false,"description":"Coingecko Get Pools By Token input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"coingecko_getTokenInfo","description":"Get detailed token information from CoinGecko (description, links, market data). SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tokenId":{"type":"string","description":"CoinGecko token ID"}},"required":["tokenId"],"additionalProperties":false,"description":"Coingecko Get Token Info input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"coingecko_getTokenPrice","description":"Get token price and market data from CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tokenId":{"type":"string","description":"CoinGecko token ID or contract address"},"vsCurrency":{"type":"string","description":"Vs Currency parameter for Coingecko Get Token Price."},"includeMarketCap":{"type":"boolean","description":"Include Market Cap parameter for Coingecko Get Token Price."},"include24hChange":{"type":"boolean","description":"Include24h Change parameter for Coingecko Get Token Price."},"include24hVolume":{"type":"boolean","description":"Include24h Volume parameter for Coingecko Get Token Price."}},"required":["tokenId"],"additionalProperties":false,"description":"Coingecko Get Token Price input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"coingecko_getTopGainersLosers","description":"Get top gainers and losers from CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"vsCurrency":{"type":"string","description":"Vs Currency parameter for Coingecko Get Top Gainers Losers."},"duration":{"type":"string","enum":["1h","24h","7d","14d","30d","1y"],"description":"Duration parameter for Coingecko Get Top Gainers Losers."}},"additionalProperties":false,"description":"Coingecko Get Top Gainers Losers input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"coingecko_getTrending","description":"Get trending tokens and NFTs on CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false,"description":"Coingecko Get Trending input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"das_getAsset","description":"Get detailed information about a single NFT/asset via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Asset mint address"}},"required":["id"],"additionalProperties":false,"description":"Das Get Asset input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"das_getAssetsByCollection","description":"Get all NFTs in a collection via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"collectionAddress":{"type":"string","description":"NFT mint address (base58)"},"page":{"type":"number","description":"Page pagination control for Das Get Assets By Collection."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Das Get Assets By Collection."}},"required":["collectionAddress"],"additionalProperties":false,"description":"Das Get Assets By Collection input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"das_getAssetsByCreator","description":"Get all NFTs/assets created by a specific creator via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"creatorAddress":{"type":"string","description":"Solana public key (base58)"},"onlyVerified":{"type":"boolean","description":"Only Verified parameter for Das Get Assets By Creator."},"page":{"type":"number","description":"Page pagination control for Das Get Assets By Creator."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Das Get Assets By Creator."}},"required":["creatorAddress"],"additionalProperties":false,"description":"Das Get Assets By Creator input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"das_getAssetsByOwner","description":"Get all NFTs/assets owned by a wallet via DAS (supports pagination). SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ownerAddress":{"type":"string","description":"Solana public key (base58)"},"page":{"type":"number","description":"Page pagination control for Das Get Assets By Owner."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Das Get Assets By Owner."},"sortBy":{"type":"string","enum":["created","updated","recent_action"],"description":"Sort By parameter for Das Get Assets By Owner."},"before":{"type":"string","description":"Before parameter for Das Get Assets By Owner."},"after":{"type":"string","description":"After parameter for Das Get Assets By Owner."}},"required":["ownerAddress"],"additionalProperties":false,"description":"Das Get Assets By Owner input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"das_searchAssets","description":"Search NFTs/assets with flexible filters via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ownerAddress":{"type":"string","description":"Solana public key (base58)"},"creatorAddress":{"type":"string","description":"Solana public key (base58)"},"grouping":{"description":"Grouping key-value pair (e.g. [\"collection\", \"mint_address\"])"},"compressed":{"type":"boolean","description":"Compressed parameter for Das Search Assets."},"frozen":{"type":"boolean","description":"Frozen parameter for Das Search Assets."},"burnt":{"type":"boolean","description":"Burnt parameter for Das Search Assets."},"jsonUri":{"type":"string","description":"Json URI parameter for Das Search Assets."},"page":{"type":"number","description":"Page pagination control for Das Search Assets."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Das Search Assets."}},"additionalProperties":false,"description":"Das Search Assets input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"gibwork_createBounty","description":"Create a new bounty on Gib Work with on-chain escrow. SAP MCP context: Protocol gibwork; operation class write. Use for bounty creation, listing, and work submission. Confirm scope, payout, recipient, and deliverable evidence before writes. Use SAP attestation or feedback tools after work completion when reputation should be recorded on SAP.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"title":{"type":"string","description":"Bounty title"},"description":{"type":"string","description":"Detailed bounty description"},"rewardMint":{"type":"string","description":"Token mint address (base58)"},"rewardAmount":{"type":"string","description":"Reward amount"},"tags":{"type":"array","items":{"type":"string","description":"Tags parameter for Gibwork Create Bounty."},"description":"Tags parameter for Gibwork Create Bounty."},"deadline":{"type":"number","description":"Deadline (Unix timestamp)"}},"required":["creator","title","description","rewardAmount"],"additionalProperties":false,"description":"Gibwork Create Bounty input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"gibwork_listBounties","description":"List available bounties on Gib Work. SAP MCP context: Protocol gibwork; operation class write. Use for bounty creation, listing, and work submission. Confirm scope, payout, recipient, and deliverable evidence before writes. Use SAP attestation or feedback tools after work completion when reputation should be recorded on SAP.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"status":{"type":"string","enum":["open","in_progress","completed","cancelled"],"description":"Status parameter for Gibwork List Bounties."},"tags":{"type":"array","items":{"type":"string","description":"Tags parameter for Gibwork List Bounties."},"description":"Tags parameter for Gibwork List Bounties."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Gibwork List Bounties."}},"additionalProperties":false,"description":"Gibwork List Bounties input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"gibwork_submitWork","description":"Submit completed work for a Gib Work bounty. SAP MCP context: Protocol gibwork; operation class write. Use for bounty creation, listing, and work submission. Confirm scope, payout, recipient, and deliverable evidence before writes. Use SAP attestation or feedback tools after work completion when reputation should be recorded on SAP.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"bountyId":{"type":"string","description":"Bounty ID parameter for Gibwork Submit Work."},"submissionUrl":{"type":"string","description":"URL to the completed work (PR, doc, etc.)"},"notes":{"type":"string","description":"Notes parameter for Gibwork Submit Work."}},"required":["wallet","bountyId","submissionUrl"],"additionalProperties":false,"description":"Gibwork Submit Work input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jito_getBundleStatus","description":"Check the status of a submitted Jito bundle. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"bundleId":{"type":"string","description":"Bundle ID parameter for Jito Get Bundle Status."}},"required":["bundleId"],"additionalProperties":false,"description":"Jito Get Bundle Status input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jito_getTipEstimate","description":"Get current Jito tip percentile estimates for bundle inclusion priority. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false,"description":"Jito Get Tip Estimate input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jito_sendBundle","description":"Send a Jito bundle for MEV-protected, atomic transaction execution. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"transactions":{"type":"array","items":{"type":"string","description":"Base64-encoded serialized transaction"},"description":"Array of base64-encoded signed transactions (max 5)"},"tipLamports":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["transactions"],"additionalProperties":false,"description":"Jito Send Bundle input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_cancelDCA","description":"Create an unsigned transaction to cancel a DCA recurring order. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"user":{"type":"string","description":"Wallet that owns the DCA order"},"order":{"type":"string","description":"DCA order public key to cancel"},"recurringType":{"type":"string","enum":["time","price"],"description":"Recurring order type — \"time\" for time-based DCA, \"price\" for price-triggered"},"computeUnitPrice":{"type":"string","description":"Compute Unit Price parameter for Jupiter Cancel D C A."}},"required":["user","order","recurringType"],"additionalProperties":false,"description":"Jupiter Cancel D C A input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_cancelLimitOrder","description":"Create an unsigned transaction to cancel a specific limit order. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"maker":{"type":"string","description":"Solana wallet public key (base58)"},"order":{"type":"string","description":"Order public key to cancel"},"computeUnitPrice":{"type":"string","description":"Compute Unit Price parameter for Jupiter Cancel Limit Order."}},"required":["maker","order"],"additionalProperties":false,"description":"Jupiter Cancel Limit Order input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_cancelLimitOrders","description":"Create unsigned transactions to cancel multiple limit orders in batch. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"maker":{"type":"string","description":"Solana wallet public key (base58)"},"orders":{"type":"array","items":{"type":"string","description":"Orders parameter for Jupiter Cancel Limit Orders."},"description":"Array of order public keys to cancel"},"computeUnitPrice":{"type":"string","description":"Compute Unit Price parameter for Jupiter Cancel Limit Orders."}},"required":["maker","orders"],"additionalProperties":false,"description":"Jupiter Cancel Limit Orders input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_createDCA","description":"Create a Dollar-Cost Averaging (DCA) recurring order. Returns an unsigned transaction. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"payer":{"type":"string","description":"Wallet paying for the DCA setup"},"user":{"type":"string","description":"Wallet executing the DCA"},"inputMint":{"type":"string","description":"Token mint address (base58)"},"outputMint":{"type":"string","description":"Token mint address (base58)"},"totalInAmount":{"type":"string","description":"Total amount of input token to DCA"},"frequency":{"type":"string","enum":["hourly","daily","weekly","monthly","yearly"],"description":"DCA interval"},"numberOfOrders":{"type":"number","description":"Total number of orders to split into"},"minOutAmountPerOrder":{"type":"string","description":"Raw token amount as string (no decimals)"},"maxOutAmountPerOrder":{"type":"string","description":"Raw token amount as string (no decimals)"},"startAt":{"type":"string","description":"ISO 8601 start timestamp (default: now)"}},"required":["payer","user","inputMint","outputMint","totalInAmount","frequency","numberOfOrders"],"additionalProperties":false,"description":"Jupiter Create D C A input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_createLimitOrder","description":"Create a limit order. Returns an unsigned transaction — sign and submit via executeTrigger. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"maker":{"type":"string","description":"Wallet address of the order creator"},"payer":{"type":"string","description":"Wallet paying for transaction fees"},"inputMint":{"type":"string","description":"Input token mint"},"outputMint":{"type":"string","description":"Output token mint"},"makingAmount":{"type":"string","description":"Amount of input token to sell"},"takingAmount":{"type":"string","description":"Amount of output token to receive"},"expiredAt":{"type":"string","description":"ISO 8601 expiry timestamp"},"feeBps":{"type":"number","description":"Referral fee in bps"},"computeUnitPrice":{"type":"string","description":"Priority fee (µ-lamports/CU)"}},"required":["maker","payer","inputMint","outputMint","makingAmount","takingAmount"],"additionalProperties":false,"description":"Jupiter Create Limit Order input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_executeDCA","description":"Submit a signed DCA order creation/cancellation transaction. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"signedTransaction":{"type":"string","description":"Base64-encoded signed transaction"},"requestId":{"type":"string","description":"Request ID from createDCA response"}},"required":["signedTransaction","requestId"],"additionalProperties":false,"description":"Jupiter Execute D C A input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_executeOrder","description":"Execute a signed swap transaction obtained from getOrder and receive execution status. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"signedTransaction":{"type":"string","description":"Base64-encoded signed transaction"},"requestId":{"type":"string","description":"requestId from getOrder response"}},"required":["signedTransaction","requestId"],"additionalProperties":false,"description":"Jupiter Execute Order input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_executeTrigger","description":"Submit a signed limit-order transaction for on-chain execution. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"signedTransaction":{"type":"string","description":"Base64-encoded signed transaction"},"requestId":{"type":"string","description":"Request ID from createLimitOrder response"}},"required":["signedTransaction","requestId"],"additionalProperties":false,"description":"Jupiter Execute Trigger input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_getDCAOrders","description":"Get all DCA orders (active and optionally historical) for a wallet. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"user":{"type":"string","description":"Wallet address to query (sent as \"user\" query param to Jupiter)"},"recurringType":{"type":"string","enum":["time","price","all"],"description":"Recurring order type — \"time\" for time-based DCA, \"price\" for price-triggered, \"all\" for both"},"orderStatus":{"type":"string","enum":["active","history"],"description":"Filter by order status: \"active\" for running orders, \"history\" for completed/cancelled"},"includeFailedTx":{"type":"boolean","description":"Include failed transactions in results (default: false)"},"inputMint":{"type":"string","description":"Token mint address (base58)"},"outputMint":{"type":"string","description":"Token mint address (base58)"},"page":{"type":"number","description":"Page pagination control for Jupiter Get D C A Orders."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Jupiter Get D C A Orders."}},"required":["user","recurringType","orderStatus"],"additionalProperties":false,"description":"Jupiter Get D C A Orders input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_getHoldings","description":"Fetch token balances and holdings for specific token accounts, including USD valuations. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tokenAccountAddresses":{"type":"array","items":{"type":"string","description":"Solana wallet public key (base58)"},"description":"Array of token account addresses to query balances for"}},"required":["tokenAccountAddresses"],"additionalProperties":false,"description":"Jupiter Get Holdings input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_getLimitOrders","description":"Get all limit orders (active and optionally historical) for a wallet. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet address to query"},"orderStatus":{"type":"string","enum":["active","history"],"description":"Filter by order status: \"active\" for open orders, \"history\" for filled/cancelled"},"inputMint":{"type":"string","description":"Token mint address (base58)"},"outputMint":{"type":"string","description":"Token mint address (base58)"},"page":{"type":"number","description":"Page pagination control for Jupiter Get Limit Orders."},"limit":{"type":"number","description":"Limit controlling the maximum number of results returned by Jupiter Get Limit Orders."}},"required":["wallet","orderStatus"],"additionalProperties":false,"description":"Jupiter Get Limit Orders input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_getOrder","description":"Get a quote + unsigned swap transaction in a single call (Ultra API). The recommended entry-point for swaps. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"inputMint":{"type":"string","description":"Token mint address (base58)"},"outputMint":{"type":"string","description":"Token mint address (base58)"},"amount":{"type":"string","description":"Raw token amount as string (no decimals)"},"taker":{"type":"string","description":"Taker (sender) wallet address"},"slippageBps":{"type":"number","description":"Slippage tolerance in bps (e.g. 50 = 0.5%)"},"referralAccount":{"type":"string","description":"Solana wallet public key (base58)"},"referralFeeBps":{"type":"number","description":"Referral fee in bps"}},"required":["inputMint","outputMint","amount","taker"],"additionalProperties":false,"description":"Jupiter Get Order input schema. Intent: read/discovery workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_getPrice","description":"Get real-time heuristic prices for tokens. Supports buy/sell price, confidence, and depth info. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy. Parameter aliases accepted by SAP MCP: mint/id/token/address -> ids[0]. Prefer canonical ids: string[] in new calls.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","description":"Token mint address (base58)"},"description":"Token mints to price"},"vsToken":{"type":"string","description":"Token mint address (base58)"},"showExtraInfo":{"type":"boolean","description":"Include confidence, depth, timestamps"}},"required":["ids"],"additionalProperties":false,"description":"Jupiter Get Price input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_getQuote","description":"Get an optimally-routed swap quote with full route plan details (Metis engine). SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"inputMint":{"type":"string","description":"Token mint address (base58)"},"outputMint":{"type":"string","description":"Token mint address (base58)"},"amount":{"type":"string","description":"Raw token amount as string (no decimals)"},"slippageBps":{"type":"number","description":"Slippage tolerance in bps (e.g. 50 = 0.5%)"},"swapMode":{"type":"string","enum":["ExactIn","ExactOut"],"description":"Swap Mode parameter for Jupiter Get Quote."},"onlyDirectRoutes":{"type":"boolean","description":"Restrict to single-hop routes"},"asLegacyTransaction":{"type":"boolean","description":"Return a legacy transaction"},"maxAccounts":{"type":"number","description":"Max accounts in transaction (default 64)"},"platformFeeBps":{"type":"number","description":"Platform fee in bps"},"restrictIntermediateTokens":{"type":"boolean","description":"Restrict Intermediate Tokens mint, symbol, or token identifier used by Jupiter Get Quote."},"dynamicSlippage":{"type":"boolean","description":"Dynamic Slippage pagination control for Jupiter Get Quote."}},"required":["inputMint","outputMint","amount"],"additionalProperties":false,"description":"Jupiter Get Quote input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_getTokenInfo","description":"Search for token information by mint address, symbol, or name. Returns detailed metadata, price, organic score, and audit info. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Search by mint address, symbol, or name. Comma-separate for multiple (max 100)"}},"required":["query"],"additionalProperties":false,"description":"Jupiter Get Token Info input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_getTokenList","description":"Get Jupiter tokens by tag (\"verified\" or \"lst\"). Returns token metadata, organic score, price, and audit info. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","enum":["verified","lst"],"description":"Tag to filter by — \"verified\" or \"lst\""}},"additionalProperties":false,"description":"Jupiter Get Token List input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_programLabels","description":"Get a mapping from program ID to human-readable label for all DEX programs in the routing engine. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false,"description":"Jupiter Program Labels input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_searchTokens","description":"Search for tokens by symbol, name, or mint address. Returns matching tokens with metadata. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Search by token symbol, name, or mint address"}},"required":["query"],"additionalProperties":false,"description":"Jupiter Search Tokens input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_shield","description":"Check token mints for potential security risks (honeypot, freeze authority, low liquidity, etc.). SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mints":{"type":"array","items":{"type":"string","description":"Token mint address (base58)"},"description":"Token mints to check"}},"required":["mints"],"additionalProperties":false,"description":"Jupiter Shield input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_smartSwap","description":"Smart Swap — all-in-one compound tool that fetches a quote and builds swap instructions in a single call. Provide input/output mints, amount, and wallet address to get back a quote, individual swap instructions, and a human-readable summary. The returned instructions can be assembled into a transaction and signed. This is the recommended entry-point for AI agents preparing a swap. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"inputMint":{"type":"string","description":"Source token mint address"},"outputMint":{"type":"string","description":"Destination token mint address"},"amount":{"type":"string","description":"Raw token amount to swap (in smallest unit, no decimals)"},"userPublicKey":{"type":"string","description":"Wallet public key that will sign the transaction"},"slippageBps":{"type":"number","description":"Slippage tolerance in bps (e.g. 50 = 0.5%)"},"swapMode":{"type":"string","enum":["ExactIn","ExactOut"],"description":"Swap mode (default: ExactIn)"},"onlyDirectRoutes":{"type":"boolean","description":"Restrict to single-hop routes for lower latency"},"dynamicSlippage":{"type":"boolean","description":"Enable dynamic slippage for better execution"},"asLegacyTransaction":{"type":"boolean","description":"Return a legacy transaction instead of v0"},"wrapAndUnwrapSol":{"type":"boolean","description":"Auto wrap/unwrap SOL (default: true)"},"destinationTokenAccount":{"type":"string","description":"Solana wallet public key (base58)"},"computeUnitPriceMicroLamports":{"type":"number","description":"Priority fee in micro-lamports per compute unit"},"dynamicComputeUnitLimit":{"type":"boolean","description":"Use dynamic compute unit limit based on simulation"},"maxAccounts":{"type":"number","description":"Max accounts in transaction (default: 64)"},"platformFeeBps":{"type":"number","description":"Platform fee in bps for referral revenue"},"feeAccount":{"type":"string","description":"Solana wallet public key (base58)"},"restrictIntermediateTokens":{"type":"boolean","description":"Restrict intermediate tokens to reduce risk"}},"required":["inputMint","outputMint","amount","userPublicKey"],"additionalProperties":false,"description":"Jupiter Smart Swap input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_swap","description":"Build an unsigned swap transaction from a quote response. Sign and send the returned transaction. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"userPublicKey":{"type":"string","description":"Solana wallet public key (base58)"},"wrapAndUnwrapSol":{"type":"boolean","description":"Auto wrap/unwrap SOL (default true)"},"useSharedAccounts":{"type":"boolean","description":"Use Shared Accounts parameter for Jupiter Swap."},"feeAccount":{"type":"string","description":"Solana wallet public key (base58)"},"computeUnitPriceMicroLamports":{"type":"number","description":"Priority fee in µ-lamports/CU"},"asLegacyTransaction":{"type":"boolean","description":"As Legacy Transaction transaction payload used by Jupiter Swap."},"useTokenLedger":{"type":"boolean","description":"Use Token Ledger mint, symbol, or token identifier used by Jupiter Swap."},"destinationTokenAccount":{"type":"string","description":"Solana wallet public key (base58)"},"dynamicComputeUnitLimit":{"type":"boolean","description":"Dynamic Compute Unit Limit controlling the maximum number of results returned by Jupiter Swap."},"skipUserAccountsRpcCalls":{"type":"boolean","description":"Skip User Accounts RPC Calls endpoint or RPC selector used by Jupiter Swap."},"dynamicSlippage":{"type":"boolean","description":"Dynamic Slippage pagination control for Jupiter Swap."},"quoteResponse":{"type":"object","additionalProperties":{},"description":"The full quoteResponse object from getQuote"}},"required":["userPublicKey","quoteResponse"],"additionalProperties":false,"description":"Jupiter Swap input schema. Intent: Solana value-action or trading workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_swapInstructions","description":"Get individual swap instructions instead of a full transaction. Useful for composing with other instructions. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"userPublicKey":{"type":"string","description":"Solana wallet public key (base58)"},"wrapAndUnwrapSol":{"type":"boolean","description":"Wrap And Unwrap Sol parameter for Jupiter Swap Instructions."},"useSharedAccounts":{"type":"boolean","description":"Use Shared Accounts parameter for Jupiter Swap Instructions."},"feeAccount":{"type":"string","description":"Solana wallet public key (base58)"},"computeUnitPriceMicroLamports":{"type":"number","description":"Compute Unit Price Micro Lamports value to use for Jupiter Swap Instructions."},"asLegacyTransaction":{"type":"boolean","description":"As Legacy Transaction transaction payload used by Jupiter Swap Instructions."},"useTokenLedger":{"type":"boolean","description":"Use Token Ledger mint, symbol, or token identifier used by Jupiter Swap Instructions."},"destinationTokenAccount":{"type":"string","description":"Solana wallet public key (base58)"},"dynamicComputeUnitLimit":{"type":"boolean","description":"Dynamic Compute Unit Limit controlling the maximum number of results returned by Jupiter Swap Instructions."},"quoteResponse":{"type":"object","additionalProperties":{},"description":"The full quoteResponse object from getQuote"}},"required":["userPublicKey","quoteResponse"],"additionalProperties":false,"description":"Jupiter Swap Instructions input schema. Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_universal_deposit_chains","description":"List all chains supported by Jupiter Universal Deposit for cross-chain transfers to Solana. Returns chain IDs, names, and popular chains. Free read.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"jupiter universal deposit chains input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_universal_deposit_quote","description":"Jupiter Universal Deposit: generate a deposit address to bridge funds from any EVM chain (Ethereum, Base, Arbitrum, etc.) to Solana USDC. Powered by Relay.link — same infrastructure as jup.ag/deposit. The user sends a normal transfer to the deposit address and receives USDC on Solana automatically. Flat $0.30 fee. Free read.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"recipient":{"type":"string","description":"Solana wallet address (base58) that will receive USDC."},"originChainId":{"type":"number","description":"Origin chain ID: 1 (Ethereum), 8453 (Base), 42161 (Arbitrum), 10 (Optimism), 137 (Polygon), 56 (BSC).","enum":[1,10,56,137,42161,8453,43114]},"originCurrency":{"type":"string","description":"Origin token address. 0x0000000000000000000000000000000000000000 for native ETH. Default: native.","default":"0x0000000000000000000000000000000000000000"},"amount":{"type":"string","description":"Amount in smallest unit (wei for ETH). Required."}},"required":["recipient","originChainId","amount"],"description":"jupiter universal deposit quote input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"jupiter_universal_deposit_status","description":"Track a Jupiter Universal Deposit cross-chain transfer. Returns status (pending/success/failed), transaction hashes. Use requestId from jupiter_universal_deposit_quote. Free read.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"requestId":{"type":"string","description":"Request ID from the deposit quote."}},"required":["requestId"],"description":"jupiter universal deposit status input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"lulo_deposit","description":"Deposit into the best APR lending protocol via Lulo aggregator. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"mint":{"type":"string","description":"Token to deposit (e.g. USDC)"},"amount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","mint","amount"],"additionalProperties":false,"description":"Lulo Deposit input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"lulo_getBestRates","description":"Get the best lending/yield rates across all protocols via Lulo. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)"}},"additionalProperties":false,"description":"Lulo Get Best Rates input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"lulo_getPositions","description":"Get all Lulo lending positions for a wallet. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"}},"required":["wallet"],"additionalProperties":false,"description":"Lulo Get Positions input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"lulo_withdraw","description":"Withdraw from Lulo lending position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"mint":{"type":"string","description":"Token mint address (base58)"},"amount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","mint","amount"],"additionalProperties":false,"description":"Lulo Withdraw input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_balance","description":"Read the base-chain SPL token balance for an address (public, no auth required)..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"type":"string","description":"Owner wallet pubkey"},"mint":{"type":"string","description":"SPL mint pubkey"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"}},"required":["address","mint"],"description":"magicblock balance input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_challenge","description":"Generate a challenge string for the wallet to sign (step 1 of the PER auth flow)..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pubkey":{"type":"string","description":"Wallet pubkey that will sign the challenge"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"}},"required":["pubkey"],"description":"magicblock challenge input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_deposit","description":"Build an unsigned transaction to deposit SPL tokens from Solana into an Ephemeral Rollup. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Do not create local signing scripts. Builder fee applies.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Wallet pubkey that owns the tokens and will sign"},"amount":{"type":"number","description":"Base-unit amount to deposit (integer, minimum 1)"},"mint":{"type":"string","description":"SPL mint. Defaults to USDC (mainnet) or devnet USDC"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey. Defaults to the selected ephemeral RPC identity."},"initIfMissing":{"type":"boolean","description":"Initialize the transfer queue if missing (default true)"},"initVaultIfMissing":{"type":"boolean","description":"Initialize the vault if missing (default true)"},"initAtasIfMissing":{"type":"boolean","description":"Initialize associated token accounts if missing (default true)"},"idempotent":{"type":"boolean","description":"Use idempotent variants for preparatory init instructions (default true)"}},"required":["owner","amount"],"description":"magicblock deposit input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_ensureCrank","description":"Force a transfer queue crank attempt for a mint. Use this after a private transfer or private swap if the Hydra delivery crank has not yet delivered funds to the recipient. The API verifies the validator-scoped transfer queue and forces one crank attempt, returning the crank signature. Read-only tier: this does not move funds, it triggers the existing queued delivery..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"SPL mint to crank the transfer queue for"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey. Defaults to the well-known MagicBlock validator (MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57)"}},"required":["mint"],"description":"magicblock ensureCrank input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_getAccountInfo","description":"Fetch account information (data, lamports, owner, executable, space) via the Magic Router..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"account":{"type":"string","description":"Account pubkey to fetch info for"},"encoding":{"type":"string","enum":["base64","base64+zstd"],"description":"Encoding for account data"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["account"],"description":"magicblock getAccountInfo input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_getBlockhashForAccounts","description":"Get a blockhash and last valid block height for a batch of account addresses (max 100)..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"string","description":"Account pubkey"},"description":"Array of account addresses (max 100)"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["accounts"],"description":"magicblock getBlockhashForAccounts input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_getDelegationStatus","description":"Check whether a Solana account is delegated to an Ephemeral Rollup. Returns authority, owner, delegation slot, and lamports..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"account":{"type":"string","description":"Account pubkey to check delegation status for"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["account"],"description":"magicblock getDelegationStatus input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_getIdentity","description":"Get the identity and FQDN of the current ER Validator node..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"description":"magicblock getIdentity input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_getRandomnessResult","description":"Check whether a VRF request has been fulfilled by reading the RandomnessRequest account on-chain. Returns fulfilled status, random bytes (if available), and the request metadata..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"requestKey":{"type":"string","description":"VRF request PDA key from magicblock_requestRandomness"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["requestKey"],"description":"magicblock getRandomnessResult input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_getRoutes","description":"List available Ephemeral Rollup nodes from the Magic Router (identity, FQDN, fee, block time, country)..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"description":"magicblock getRoutes input schema. Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_getSignatureStatuses","description":"Check the confirmation status (processed/confirmed/finalized) of one or more transaction signatures..\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"signatures":{"type":"array","items":{"type":"string","description":"Transaction signature (base58)"},"description":"Array of transaction signatures"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["signatures"],"description":"magicblock getSignatureStatuses input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_health","description":"Check the health status of the MagicBlock Private Payments API..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"magicblock health input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_initializeMint","description":"Build an unsigned transaction that initializes a validator-scoped transfer queue for a mint. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Builder fee applies.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Wallet pubkey that will sign the transaction"},"mint":{"type":"string","description":"SPL mint to initialize a transfer queue for"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey"}},"required":["owner","mint"],"description":"magicblock initializeMint input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_isMintInitialized","description":"Check whether a mint has a validator-scoped transfer queue on the ephemeral RPC..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"SPL mint to check"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey"}},"required":["mint"],"description":"magicblock isMintInitialized input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_login","description":"Exchange a signed challenge for a bearer token (step 2 of PER auth flow). The token is used for private-balance and private transfers..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pubkey":{"type":"string","description":"Wallet pubkey that signed the challenge"},"challenge":{"type":"string","description":"Challenge string from magicblock_challenge"},"signature":{"type":"string","description":"Wallet signature over the challenge string"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"}},"required":["pubkey","challenge","signature"],"description":"magicblock login input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_privateBalance","description":"Read the ephemeral-rollup SPL token balance for an address (requires bearer token from login)..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"type":"string","description":"Owner wallet pubkey"},"mint":{"type":"string","description":"SPL mint pubkey"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"authToken":{"type":"string","description":"Bearer token from magicblock_login (required for private reads)"}},"required":["address","mint","authToken"],"description":"magicblock privateBalance input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_private_balance","description":"Read the ephemeral-rollup SPL token balance for an address (requires bearer token from login)..\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"type":"string","description":"Owner wallet pubkey"},"mint":{"type":"string","description":"SPL mint pubkey"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"authToken":{"type":"string","description":"Bearer token from magicblock_login (required for private reads)"}},"required":["address","mint","authToken"],"description":"magicblock private balance input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_requestRandomness","description":"Request provably fair on-chain randomness from the MagicBlock VRF oracle (Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz). Builds an unsigned transaction that invokes request_randomness on the VRF program. Use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction; do not create local signing scripts. The oracle queue defaults to the base-layer queue (Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh); set ephemeral=true to use the ER queue for delegated programs. Builder fee applies.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"payer":{"type":"string","description":"Wallet pubkey that will pay for the request and sign the transaction"},"callbackProgramId":{"type":"string","description":"Program ID of the callback program (the program that will consume the randomness)"},"callbackDiscriminator":{"type":"string","description":"Base58 or hex discriminator for the callback instruction in your program"},"callerSeed":{"type":"string","description":"Seed string for the VRF request — committed before randomness is produced. The seed is hashed to 32 bytes."},"callbackAccounts":{"type":"array","items":{"type":"object","properties":{"pubkey":{"type":"string","description":"Account pubkey"},"isSigner":{"type":"boolean","description":"Whether the account is a signer"},"isWritable":{"type":"boolean","description":"Whether the account is writable"}},"description":"Callback account metadata"},"description":"Accounts to pass to the callback instruction"},"ephemeral":{"type":"boolean","description":"Use the Ephemeral Rollup oracle queue instead of the base-layer queue (default false)"},"endpoint":{"type":"string","enum":["mainnet","devnet"],"description":"MagicBlock Router endpoint: 'mainnet' or 'devnet'"}},"required":["payer","callbackProgramId","callbackDiscriminator","callerSeed","callbackAccounts"],"description":"magicblock requestRandomness input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_swap","description":"Build an unsigned swap transaction from a quote. 'public' mode passes through Jupiter. 'private' mode routes output through a scheduled private transfer: requires destination, minDelayMs (string ms), maxDelayMs (string ms, <= 600000), and split (1-14). The API appends a schedule_private_transfer instruction that registers a one-shot Hydra crank for delivery. Legacy transactions are not allowed in private mode. Agents must continue with sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction; never write temporary signing scripts or read keypair JSON. Value-action fee applies.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"userPublicKey":{"type":"string","description":"Wallet that will sign the swap transaction"},"quoteResponse":{"type":"object","properties":{},"description":"Quote response object from magicblock_swapQuote (pass as-is)"},"visibility":{"type":"string","enum":["public","private"],"description":"'public' = transparent Jupiter pass-through, 'private' = output routed through scheduled private transfer"},"destination":{"type":"string","description":"Final private-transfer recipient (required when visibility='private')"},"minDelayMs":{"type":"string","description":"Private only. Earliest (ms) the queued transfer may settle"},"maxDelayMs":{"type":"string","description":"Private only. Latest (ms) the queued transfer may settle (<= 600000)"},"split":{"type":"number","description":"Private only. Number of queue entries to split across (1-14)"},"clientRefId":{"type":"string","description":"Private only. Optional u64 client correlation ID"},"validator":{"type":"string","description":"Optional validator pubkey for the transfer-queue PDA"},"wrapAndUnwrapSol":{"type":"boolean","description":"Auto wrap/unwrap native SOL when needed (default true)"},"asLegacyTransaction":{"type":"boolean","description":"Build a legacy transaction (not allowed when visibility=private, default false)"}},"required":["userPublicKey","quoteResponse"],"description":"magicblock swap input schema. Intent: Solana value-action or trading workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_swapQuote","description":"Get a swap quote between two SPL mints (proxies Triton Metis swap API). Pass the result into magicblock_swap. Lightweight read tier; use this before any value-moving swap.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"inputMint":{"type":"string","description":"Input token mint address"},"outputMint":{"type":"string","description":"Output token mint address"},"amount":{"type":"string","description":"Raw amount to swap (unsigned integer string, e.g. '1000000')"},"slippageBps":{"type":"number","description":"Slippage threshold in basis points (e.g. 50 = 0.5%)"},"swapMode":{"type":"string","enum":["ExactIn","ExactOut"],"description":"Swap mode: fixed input or fixed output amount"},"onlyDirectRoutes":{"type":"boolean","description":"Limit routing to a single hop (default false)"},"restrictIntermediateTokens":{"type":"boolean","description":"Restrict intermediate tokens to a more stable set (default false)"},"platformFeeBps":{"type":"number","description":"Optional platform fee in basis points"},"maxAccounts":{"type":"number","description":"Approximate maximum account budget for the route (default 64)"}},"required":["inputMint","outputMint","amount"],"description":"magicblock swapQuote input schema. Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_swap_quote","description":"Get a swap quote between two SPL mints (proxies Triton Metis swap API). Pass the result into magicblock_swap. Lightweight read tier; use this before any value-moving swap.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"inputMint":{"type":"string","description":"Input token mint address"},"outputMint":{"type":"string","description":"Output token mint address"},"amount":{"type":"string","description":"Raw amount to swap (unsigned integer string, e.g. '1000000')"},"slippageBps":{"type":"number","description":"Slippage threshold in basis points (e.g. 50 = 0.5%)"},"swapMode":{"type":"string","enum":["ExactIn","ExactOut"],"description":"Swap mode: fixed input or fixed output amount"},"onlyDirectRoutes":{"type":"boolean","description":"Limit routing to a single hop (default false)"},"restrictIntermediateTokens":{"type":"boolean","description":"Restrict intermediate tokens to a more stable set (default false)"},"platformFeeBps":{"type":"number","description":"Optional platform fee in basis points"},"maxAccounts":{"type":"number","description":"Approximate maximum account budget for the route (default 64)"}},"required":["inputMint","outputMint","amount"],"description":"magicblock swap quote input schema. Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_transfer","description":"Build an unsigned SPL token transfer through an Ephemeral Rollup. Use this only when private visibility or an ephemeral balance is explicitly requested. For an ordinary public base-to-base wallet transfer, use sap_build_spl_transfer instead; it detects legacy SPL versus Token-2022 from the mint on-chain. Supports delayed settlement, split transfers, and gasless mode. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Builder fee applies.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"from":{"type":"string","description":"Sender wallet pubkey"},"to":{"type":"string","description":"Recipient wallet pubkey"},"mint":{"type":"string","description":"SPL mint pubkey"},"amount":{"type":"number","description":"Base-unit amount to transfer (integer, minimum 1)"},"visibility":{"type":"string","enum":["public","private"],"description":"'public' = transparent SPL transfer, 'private' = routed through Private ER with delayed+split settlement"},"fromBalance":{"type":"string","enum":["base","ephemeral"],"description":"Where the sender's balance is held"},"toBalance":{"type":"string","enum":["base","ephemeral"],"description":"Where the recipient should receive funds"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey"},"authToken":{"type":"string","description":"Bearer token from login (required for private transfers)"},"initIfMissing":{"type":"boolean","description":"Initialize transfer queue if missing (default true)"},"initAtasIfMissing":{"type":"boolean","description":"Initialize recipient ATA if missing (default true)"},"initVaultIfMissing":{"type":"boolean","description":"Initialize vault if missing (default false). WARNING: when legacy=true, setting this to true can exceed the 1232-byte legacy transaction limit and produce TRANSACTION_TOO_LARGE errors. Prefer v0 (legacy=false) when vault init is needed."},"memo":{"type":"string","description":"Optional memo appended to the transaction"},"minDelayMs":{"type":"string","description":"Private only. Earliest (ms) the queued transfer may settle. Default '0'"},"maxDelayMs":{"type":"string","description":"Private only. Latest (ms) the queued transfer may settle (<= 600000)"},"clientRefId":{"type":"string","description":"Private only. Encrypted client reference ID for payment confirmation"},"split":{"type":"number","description":"Private only. Number of queue entries to split across (1-15, default 1)"},"gasless":{"type":"boolean","description":"When true, uses configured sponsor as fee payer (default false)"},"legacy":{"type":"boolean","description":"Skip lookup-table compilation, return a legacy transaction (default false)"}},"required":["from","to","mint","amount","visibility","fromBalance","toBalance"],"description":"magicblock transfer input schema. Intent: local-signer write workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"magicblock_withdraw","description":"Build an unsigned transaction to withdraw SPL tokens from an Ephemeral Rollup back to Solana. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Builder fee applies.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Wallet pubkey that owns the tokens and will sign"},"mint":{"type":"string","description":"SPL mint on Solana"},"amount":{"type":"number","description":"Base-unit amount to withdraw (integer, minimum 1)"},"cluster":{"type":"string","description":"Cluster: 'mainnet', 'devnet', or custom RPC URL"},"validator":{"type":"string","description":"Optional ER validator pubkey"},"initIfMissing":{"type":"boolean","description":"Initialize transfer queue if missing (default true)"},"initAtasIfMissing":{"type":"boolean","description":"Initialize ATAs if missing (default true)"},"escrowIndex":{"type":"number","description":"Optional escrow index for the withdrawal"},"idempotent":{"type":"boolean","description":"Use idempotent variants for preparatory init instructions (default true)"}},"required":["owner","mint","amount"],"description":"magicblock withdraw input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"manifest_cancelOrder","description":"Cancel a limit order on a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"marketId":{"type":"string","description":"Solana public key (base58)"},"orderId":{"type":"string","description":"Order ID parameter for Manifest Cancel Order."}},"required":["wallet","marketId","orderId"],"additionalProperties":false,"description":"Manifest Cancel Order input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"manifest_createMarket","description":"Create a new Manifest market for a token pair. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"baseMint":{"type":"string","description":"Base token mint"},"quoteMint":{"type":"string","description":"Quote token mint"}},"required":["creator","baseMint","quoteMint"],"additionalProperties":false,"description":"Manifest Create Market input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"manifest_getOrderbook","description":"Get the current orderbook for a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"marketId":{"type":"string","description":"Solana public key (base58)"},"depth":{"type":"number","description":"Depth parameter for Manifest Get Orderbook."}},"required":["marketId"],"additionalProperties":false,"description":"Manifest Get Orderbook input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"manifest_placeLimitOrder","description":"Place a limit order on a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"marketId":{"type":"string","description":"Solana public key (base58)"},"side":{"type":"string","enum":["buy","sell"],"description":"Side parameter for Manifest Place Limit Order."},"price":{"type":"number","description":"Limit price"},"size":{"type":"string","description":"Order size in base tokens"},"orderType":{"type":"string","enum":["limit","postOnly","ioc"],"description":"Order Type parameter for Manifest Place Limit Order."}},"required":["wallet","marketId","side","price","size"],"additionalProperties":false,"description":"Manifest Place Limit Order input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"metaplex-nft_configureRoyalties","description":"Configure royalty fee and creator splits for an NFT. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address (base58)"},"updateAuthority":{"type":"string","description":"Solana public key (base58)"},"sellerFeeBasisPoints":{"type":"number","description":"Royalty fee in bps"},"creators":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"Solana public key (base58)"},"share":{"type":"number","description":"Share parameter for Metaplex-nft Configure Royalties."}},"required":["address","share"],"additionalProperties":false,"description":"Creators parameter for Metaplex-nft Configure Royalties."},"description":"Creator list with revenue shares (must sum to 100)"}},"required":["mint","updateAuthority","sellerFeeBasisPoints","creators"],"additionalProperties":false,"description":"Metaplex-nft Configure Royalties input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"metaplex-nft_delegateAuthority","description":"Delegate a specific authority (update, mint, freeze, collection) to another wallet. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address (base58)"},"currentAuthority":{"type":"string","description":"Solana public key (base58)"},"newAuthority":{"type":"string","description":"Solana public key (base58)"},"authorityType":{"type":"string","enum":["update","mint","freeze","collection"],"description":"Type of authority to delegate"}},"required":["mint","currentAuthority","newAuthority","authorityType"],"additionalProperties":false,"description":"Metaplex-nft Delegate Authority input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"metaplex-nft_deployCollection","description":"Deploy a new NFT collection via Metaplex. Returns the collection mint and metadata addresses. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Collection authority wallet"},"name":{"type":"string","description":"Collection name"},"symbol":{"type":"string","description":"Collection symbol"},"uri":{"type":"string","description":"URI to collection metadata JSON"},"sellerFeeBasisPoints":{"type":"number","description":"Royalty fee in bps (500 = 5%)"},"isMutable":{"type":"boolean","description":"Is Mutable parameter for Metaplex-nft Deploy Collection."},"maxSupply":{"type":"number","description":"Max NFTs in collection (0 = unlimited)"},"creators":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"Solana public key (base58)"},"share":{"type":"number","description":"Revenue share percentage"},"verified":{"type":"boolean","description":"Verified parameter for Metaplex-nft Deploy Collection."}},"required":["address","share"],"additionalProperties":false,"description":"Creators parameter for Metaplex-nft Deploy Collection."},"description":"Creator list with revenue shares (must sum to 100)"}},"required":["authority","name","symbol","uri"],"additionalProperties":false,"description":"Metaplex-nft Deploy Collection input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"metaplex-nft_mintNFT","description":"Mint a new NFT via Metaplex. Supports both standard and compressed (cNFT) minting. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Mint authority wallet"},"collection":{"type":"string","description":"NFT mint address (base58)"},"name":{"type":"string","description":"NFT name"},"symbol":{"type":"string","description":"NFT symbol"},"uri":{"type":"string","description":"URI to NFT metadata JSON (image, attributes, etc.)"},"sellerFeeBasisPoints":{"type":"number","description":"Seller Fee Basis Points parameter for Metaplex-nft Mint N F T."},"isMutable":{"type":"boolean","description":"Is Mutable parameter for Metaplex-nft Mint N F T."},"creators":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"Solana public key (base58)"},"share":{"type":"number","description":"Share parameter for Metaplex-nft Mint N F T."},"verified":{"type":"boolean","description":"Verified parameter for Metaplex-nft Mint N F T."}},"required":["address","share"],"additionalProperties":false,"description":"Creators parameter for Metaplex-nft Mint N F T."},"description":"Creators parameter for Metaplex-nft Mint N F T."},"recipient":{"type":"string","description":"Solana public key (base58)"},"isCompressed":{"type":"boolean","description":"Mint as compressed NFT (cNFT) for lower cost"},"merkleTree":{"type":"string","description":"Solana public key (base58)"}},"required":["authority","name","uri"],"additionalProperties":false,"description":"Metaplex-nft Mint N F T input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"metaplex-nft_revokeAuthority","description":"Revoke (remove) a specific authority. Irreversible for some types. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address (base58)"},"authority":{"type":"string","description":"Current authority holder"},"authorityType":{"type":"string","enum":["update","mint","freeze","collection"],"description":"Authority Type parameter for Metaplex-nft Revoke Authority."}},"required":["mint","authority","authorityType"],"additionalProperties":false,"description":"Metaplex-nft Revoke Authority input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"metaplex-nft_setAndVerifyCollection","description":"Set and verify a collection on an NFT in a single transaction. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address (base58)"},"collection":{"type":"string","description":"NFT mint address (base58)"},"collectionAuthority":{"type":"string","description":"Solana public key (base58)"},"updateAuthority":{"type":"string","description":"NFT update authority"}},"required":["mint","collection","collectionAuthority","updateAuthority"],"additionalProperties":false,"description":"Metaplex-nft Set And Verify Collection input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"metaplex-nft_updateMetadata","description":"Update NFT metadata fields (name, symbol, URI, creators, royalties, authority). SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address"},"updateAuthority":{"type":"string","description":"Current update authority"},"name":{"type":"string","description":"New name"},"symbol":{"type":"string","description":"New symbol"},"uri":{"type":"string","description":"New metadata URI"},"sellerFeeBasisPoints":{"type":"number","description":"Seller Fee Basis Points parameter for Metaplex-nft Update Metadata."},"creators":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"Solana public key (base58)"},"share":{"type":"number","description":"Share parameter for Metaplex-nft Update Metadata."},"verified":{"type":"boolean","description":"Verified parameter for Metaplex-nft Update Metadata."}},"required":["address","share"],"additionalProperties":false,"description":"Creators parameter for Metaplex-nft Update Metadata."},"description":"Creators parameter for Metaplex-nft Update Metadata."},"isMutable":{"type":"boolean","description":"Is Mutable parameter for Metaplex-nft Update Metadata."},"primarySaleHappened":{"type":"boolean","description":"Primary Sale Happened parameter for Metaplex-nft Update Metadata."},"newUpdateAuthority":{"type":"string","description":"Solana public key (base58)"}},"required":["mint","updateAuthority"],"additionalProperties":false,"description":"Metaplex-nft Update Metadata input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"metaplex-nft_verifyCollection","description":"Verify an NFT as part of a collection. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint to verify"},"collection":{"type":"string","description":"Collection mint"},"collectionAuthority":{"type":"string","description":"Collection authority wallet"}},"required":["mint","collection","collectionAuthority"],"additionalProperties":false,"description":"Metaplex-nft Verify Collection input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"metaplex-nft_verifyCreator","description":"Verify a creator on an NFT's metadata (requires creator's signature). SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"NFT mint address (base58)"},"creator":{"type":"string","description":"Creator wallet to verify"}},"required":["mint","creator"],"additionalProperties":false,"description":"Metaplex-nft Verify Creator input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"meteora_addDLMMLiquidity","description":"Add liquidity to a Meteora DLMM pool with a distribution strategy. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"poolAddress":{"type":"string","description":"Solana public key (base58)"},"amountX":{"type":"string","description":"Raw token amount (smallest unit)"},"amountY":{"type":"string","description":"Raw token amount (smallest unit)"},"strategy":{"type":"string","enum":["spot","curve","bid-ask"],"description":"Liquidity distribution strategy"},"minBinId":{"type":"number","description":"Min Bin ID parameter for Meteora Add D L M M Liquidity."},"maxBinId":{"type":"number","description":"Max Bin ID parameter for Meteora Add D L M M Liquidity."}},"required":["wallet","poolAddress","amountX","amountY"],"additionalProperties":false,"description":"Meteora Add D L M M Liquidity input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"meteora_createAlphaVault","description":"Create a Meteora Alpha Vault for fair token launches with vesting. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"poolAddress":{"type":"string","description":"Solana public key (base58)"},"depositMint":{"type":"string","description":"Token mint accepted for deposits"},"maxDeposit":{"type":"string","description":"Maximum deposit cap"},"vestingDuration":{"type":"number","description":"Vesting duration in seconds"},"startTime":{"type":"number","description":"Vault start time (Unix timestamp)"}},"required":["creator","poolAddress","depositMint","maxDeposit","vestingDuration"],"additionalProperties":false,"description":"Meteora Create Alpha Vault input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"meteora_createDLMMPool","description":"Create a Meteora DLMM (Discrete Liquidity Market Maker) pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"mintX":{"type":"string","description":"Token X mint"},"mintY":{"type":"string","description":"Token Y mint"},"binStep":{"type":"number","description":"Bin step size (defines fee tier and price granularity)"},"initialPrice":{"type":"number","description":"Initial Price parameter for Meteora Create D L M M Pool."},"amountX":{"type":"string","description":"Raw token amount (smallest unit)"},"amountY":{"type":"string","description":"Raw token amount (smallest unit)"},"priceRoundingUp":{"type":"boolean","description":"Price Rounding Up parameter for Meteora Create D L M M Pool."},"feeBps":{"type":"number","description":"Fee Bps parameter for Meteora Create D L M M Pool."},"activationType":{"type":"string","enum":["slot","timestamp"],"description":"Activation Type parameter for Meteora Create D L M M Pool."},"activationPoint":{"type":"number","description":"Activation Point parameter for Meteora Create D L M M Pool."}},"required":["creator","mintX","mintY","binStep","initialPrice"],"additionalProperties":false,"description":"Meteora Create D L M M Pool input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"meteora_createDynamicPool","description":"Create a Meteora Dynamic AMM pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"mintA":{"type":"string","description":"Token mint address (base58)"},"mintB":{"type":"string","description":"Token mint address (base58)"},"amountA":{"type":"string","description":"Raw token amount (smallest unit)"},"amountB":{"type":"string","description":"Raw token amount (smallest unit)"},"tradeFeeNumerator":{"type":"number","description":"Trade fee numerator (default pool fee)"},"tradeFeeDenominator":{"type":"number","description":"Trade Fee Denominator parameter for Meteora Create Dynamic Pool."},"activationType":{"type":"string","enum":["slot","timestamp"],"description":"Activation Type parameter for Meteora Create Dynamic Pool."},"activationPoint":{"type":"number","description":"Activation slot/timestamp"}},"required":["creator","mintA","mintB","amountA","amountB"],"additionalProperties":false,"description":"Meteora Create Dynamic Pool input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"meteora_removeDLMMLiquidity","description":"Remove liquidity from a Meteora DLMM position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionAddress":{"type":"string","description":"Solana public key (base58)"},"percentage":{"type":"number","description":"Percentage parameter for Meteora Remove D L M M Liquidity."}},"required":["wallet","positionAddress"],"additionalProperties":false,"description":"Meteora Remove D L M M Liquidity input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"openbook_cancelOrder","description":"Cancel an open order on an Openbook market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"marketId":{"type":"string","description":"Solana public key (base58)"},"orderId":{"type":"string","description":"Order ID parameter for Openbook Cancel Order."}},"required":["wallet","marketId","orderId"],"additionalProperties":false,"description":"Openbook Cancel Order input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"openbook_createMarket","description":"Create a new Openbook DEX market for a token pair. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"baseMint":{"type":"string","description":"Token mint address (base58)"},"quoteMint":{"type":"string","description":"Token mint address (base58)"},"lotSize":{"type":"number","description":"Minimum order size"},"tickSize":{"type":"number","description":"Minimum price increment"}},"required":["creator","baseMint","quoteMint","lotSize","tickSize"],"additionalProperties":false,"description":"Openbook Create Market input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"openbook_placeOrder","description":"Place an order on an Openbook market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"marketId":{"type":"string","description":"Solana public key (base58)"},"side":{"type":"string","enum":["buy","sell"],"description":"Side parameter for Openbook Place Order."},"price":{"type":"number","description":"Price parameter for Openbook Place Order."},"size":{"type":"string","description":"Raw token amount (smallest unit)"},"orderType":{"type":"string","enum":["limit","ioc","postOnly"],"description":"Order Type parameter for Openbook Place Order."}},"required":["wallet","marketId","side","price","size"],"additionalProperties":false,"description":"Openbook Place Order input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"orca_closePosition","description":"Close a Whirlpool position and collect all fees/rewards. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionMint":{"type":"string","description":"Token mint address (base58)"}},"required":["wallet","positionMint"],"additionalProperties":false,"description":"Orca Close Position input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"orca_collectFees","description":"Collect accumulated fees from a Whirlpool position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"positionMint":{"type":"string","description":"Token mint address (base58)"}},"required":["wallet","positionMint"],"additionalProperties":false,"description":"Orca Collect Fees input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"orca_getWhirlpool","description":"Get Orca Whirlpool pool information. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"poolAddress":{"type":"string","description":"Whirlpool pool address"}},"required":["poolAddress"],"additionalProperties":false,"description":"Orca Get Whirlpool input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"orca_openPosition","description":"Open a concentrated liquidity position on an Orca Whirlpool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"poolAddress":{"type":"string","description":"Solana public key (base58)"},"priceLower":{"type":"number","description":"Price Lower parameter for Orca Open Position."},"priceUpper":{"type":"number","description":"Price Upper parameter for Orca Open Position."},"amountA":{"type":"string","description":"Raw token amount (smallest unit)"},"amountB":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","poolAddress","priceLower","priceUpper"],"additionalProperties":false,"description":"Orca Open Position input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"orca_swap","description":"Swap tokens on an Orca Whirlpool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"poolAddress":{"type":"string","description":"Solana public key (base58)"},"inputMint":{"type":"string","description":"Token mint address (base58)"},"amount":{"type":"string","description":"Raw token amount (smallest unit)"},"slippageBps":{"type":"number","description":"Slippage Bps pagination control for Orca Swap."},"isExactInput":{"type":"boolean","description":"Is Exact Input parameter for Orca Swap."}},"required":["wallet","poolAddress","inputMint","amount"],"additionalProperties":false,"description":"Orca Swap input schema. Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"pump_launchToken","description":"Launch a new token on Pump.fun via PumpPortal. Optionally include an initial dev buy. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"deployer":{"type":"string","description":"Deployer wallet"},"name":{"type":"string","description":"Token name"},"symbol":{"type":"string","description":"Token ticker"},"description":{"type":"string","description":"Description parameter for Pump Launch Token."},"image":{"type":"string","description":"Token logo URL"},"twitter":{"type":"string","description":"Twitter/X handle"},"telegram":{"type":"string","description":"Telegram group link"},"website":{"type":"string","description":"Website URL"},"initialBuyAmount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["deployer","name","symbol"],"additionalProperties":false,"description":"Pump Launch Token input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"pump_trade","description":"Buy or sell tokens on Pump.fun bonding curve. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"mint":{"type":"string","description":"Pump.fun token mint"},"action":{"type":"string","enum":["buy","sell"],"description":"Trade direction"},"amount":{"type":"string","description":"Amount in SOL (buy) or tokens (sell)"},"slippageBps":{"type":"number","description":"Slippage Bps pagination control for Pump Trade."}},"required":["wallet","mint","action","amount"],"additionalProperties":false,"description":"Pump Trade input schema. Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"pyth_getPrice","description":"Get the current price from a Pyth on-chain oracle feed. SAP MCP context: Protocol pyth; operation class read. Use for Pyth oracle price reads and feed discovery. Use oracle reads as context for pricing, risk checks, and market-aware agent decisions; do not treat them as settlement proof.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"priceId":{"type":"string","description":"Pyth price feed ID (hex) or symbol (e.g. \"SOL/USD\")"}},"required":["priceId"],"additionalProperties":false,"description":"Pyth Get Price input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"pyth_getPriceHistory","description":"Get historical price data from Pyth oracle. SAP MCP context: Protocol pyth; operation class read. Use for Pyth oracle price reads and feed discovery. Use oracle reads as context for pricing, risk checks, and market-aware agent decisions; do not treat them as settlement proof.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"priceId":{"type":"string","description":"Price ID parameter for Pyth Get Price History."},"period":{"type":"string","enum":["1h","4h","1d","7d","30d"],"description":"Period parameter for Pyth Get Price History."}},"required":["priceId"],"additionalProperties":false,"description":"Pyth Get Price History input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"pyth_listPriceFeeds","description":"List available Pyth price feeds, optionally filtered by query or asset type. SAP MCP context: Protocol pyth; operation class read. Use for Pyth oracle price reads and feed discovery. Use oracle reads as context for pricing, risk checks, and market-aware agent decisions; do not treat them as settlement proof.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Search filter (e.g. \"SOL\", \"BTC\")"},"assetType":{"type":"string","enum":["crypto","equity","fx","metal","rates"],"description":"Asset Type parameter for Pyth List Price Feeds."}},"additionalProperties":false,"description":"Pyth List Price Feeds input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"raydium-pools_addLiquidity","description":"Add liquidity to a Raydium pool (CPMM, CLMM, or AMM v4). SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"poolId":{"type":"string","description":"Raydium pool ID"},"amountA":{"type":"string","description":"Raw token amount (smallest unit)"},"amountB":{"type":"string","description":"Raw token amount (smallest unit)"},"priceLower":{"type":"number","description":"Lower price for CLMM range"},"priceUpper":{"type":"number","description":"Upper price for CLMM range"},"fixedSide":{"type":"string","enum":["a","b"],"description":"Fixed side for single-sided liquidity"}},"required":["wallet","poolId"],"additionalProperties":false,"description":"Raydium-pools Add Liquidity input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"raydium-pools_createAMMv4","description":"Create a Raydium AMM v4 pool (requires an existing Openbook market). SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"marketId":{"type":"string","description":"Openbook market ID"},"baseAmount":{"type":"string","description":"Raw token amount (smallest unit)"},"quoteAmount":{"type":"string","description":"Raw token amount (smallest unit)"},"startTime":{"type":"number","description":"Start Time parameter for Raydium-pools Create A M Mv4."}},"required":["creator","marketId","baseAmount","quoteAmount"],"additionalProperties":false,"description":"Raydium-pools Create A M Mv4 input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"raydium-pools_createCLMM","description":"Create a Raydium CLMM (Concentrated Liquidity) pool with a price range. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"mintA":{"type":"string","description":"Token mint address (base58)"},"mintB":{"type":"string","description":"Token mint address (base58)"},"initialPrice":{"type":"number","description":"Initial price of token A in terms of token B"},"tickSpacing":{"type":"number","description":"Tick spacing (defines fee tier: 1=0.01%, 10=0.05%, 60=0.3%, 200=1%)"},"amountA":{"type":"string","description":"Initial liquidity for token A"},"amountB":{"type":"string","description":"Initial liquidity for token B"},"priceLower":{"type":"number","description":"Lower price bound for liquidity range"},"priceUpper":{"type":"number","description":"Upper price bound for liquidity range"},"startTime":{"type":"number","description":"Start Time parameter for Raydium-pools Create C L M M."}},"required":["creator","mintA","mintB","initialPrice","tickSpacing","amountA","amountB","priceLower","priceUpper"],"additionalProperties":false,"description":"Raydium-pools Create C L M M input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"raydium-pools_createCPMM","description":"Create a Raydium CPMM (Constant Product Market Maker) pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"creator":{"type":"string","description":"Solana public key (base58)"},"mintA":{"type":"string","description":"Token A mint"},"mintB":{"type":"string","description":"Token B mint"},"amountA":{"type":"string","description":"Initial liquidity for token A"},"amountB":{"type":"string","description":"Initial liquidity for token B"},"startTime":{"type":"number","description":"Pool start time (Unix timestamp)"}},"required":["creator","mintA","mintB","amountA","amountB"],"additionalProperties":false,"description":"Raydium-pools Create C P M M input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"raydium-pools_removeLiquidity","description":"Remove liquidity from a Raydium pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"poolId":{"type":"string","description":"Solana public key (base58)"},"lpAmount":{"type":"string","description":"Raw token amount (smallest unit)"},"positionNft":{"type":"string","description":"Token mint address (base58)"},"percentage":{"type":"number","description":"Percentage of liquidity to remove"}},"required":["wallet","poolId"],"additionalProperties":false,"description":"Raydium-pools Remove Liquidity input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_add_limit_order","description":"Build an unsigned transaction to place a limit order on Adrena. The order fills when the oracle price reaches the trigger price. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Order owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset to trade.","enum":["JITOSOL","WBTC","BONK"]},"collateralToken":{"type":"string","description":"Collateral token.","enum":["USDC","JITOSOL","WBTC","BONK"]},"collateralAmount":{"type":"number","description":"Collateral amount in human-readable units.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier.","minimum":1,"maximum":100},"side":{"type":"string","description":"Order side.","enum":["long","short"]},"triggerPriceUsd":{"type":"number","description":"Trigger price in USD. Order fills when oracle reaches this price.","minimum":0},"limitPriceUsd":{"type":"number","description":"Optional limit price cap. Omit for market price at fill.","minimum":0}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage","side","triggerPriceUsd"],"additionalProperties":false,"description":"sap adrena build add limit order input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_add_liquid_stake","description":"Build an unsigned transaction to add a liquid stake on Adrena (stake LP tokens). Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Staker wallet public key (base58)."},"amount":{"type":"number","description":"Amount of LP tokens to stake (raw, 6 decimals).","minimum":0}},"required":["owner","amount"],"additionalProperties":false,"description":"sap adrena build add liquid stake input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_add_liquidity","description":"Build an unsigned transaction to add liquidity to an Adrena pool. Deposits collateral and receives LP tokens. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Liquidity provider wallet public key (base58)."},"collateralToken":{"type":"string","description":"Collateral token to deposit.","enum":["USDC","JITOSOL","WBTC","BONK"]},"amount":{"type":"number","description":"Amount in human-readable units.","minimum":0},"minLpAmountOut":{"type":"number","description":"Minimum LP tokens to receive (raw). 0 for no slippage protection.","minimum":0},"poolName":{"type":"string","description":"Pool to add liquidity to.","enum":["main-pool","commodities-pool"]}},"required":["owner","collateralToken","amount"],"additionalProperties":false,"description":"sap adrena build add liquidity input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_add_locked_stake","description":"Build an unsigned transaction to add a locked stake on Adrena. LP tokens are locked for a specified duration. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Staker wallet public key (base58)."},"amount":{"type":"number","description":"Amount of LP tokens to lock (raw, 6 decimals).","minimum":0},"lockedDays":{"type":"number","description":"Lock duration in days.","minimum":1}},"required":["owner","amount","lockedDays"],"additionalProperties":false,"description":"sap adrena build add locked stake input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_cancel_limit_order","description":"Build an unsigned transaction to cancel a limit order on Adrena. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Order owner wallet public key (base58)."},"collateralToken":{"type":"string","description":"Collateral token used for the order.","enum":["USDC","JITOSOL","WBTC","BONK"]},"orderId":{"type":"number","description":"Limit order ID to cancel."}},"required":["owner","collateralToken","orderId"],"additionalProperties":false,"description":"sap adrena build cancel limit order input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_cancel_stop_loss","description":"Build an unsigned transaction to cancel stop loss on an Adrena position. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"side":{"type":"string","description":"Position side.","enum":["long","short"]}},"required":["owner","principalToken","side"],"additionalProperties":false,"description":"sap adrena build cancel stop loss input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_cancel_take_profit","description":"Build an unsigned transaction to cancel take profit on an Adrena position. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"side":{"type":"string","description":"Position side.","enum":["long","short"]}},"required":["owner","principalToken","side"],"additionalProperties":false,"description":"sap adrena build cancel take profit input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_claim_stakes","description":"Build an unsigned transaction to claim staking rewards on Adrena. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Staker wallet public key (base58)."},"lockedStakeIndexes":{"type":"string","description":"Optional comma-separated list of locked stake indexes to claim. Omit to claim all."}},"required":["owner"],"additionalProperties":false,"description":"sap adrena build claim stakes input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_close_commodity_long","description":"Build an unsigned transaction to close a long commodity position on Adrena. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Commodity of the position.","enum":["XAU","XAG","WTI"]},"priceUsd":{"type":"number","description":"Optional close price in USD.","minimum":0},"percentage":{"type":"number","description":"Percentage to close (0-1000000). Default 1000000.","minimum":0,"maximum":1000000}},"required":["owner","principalToken"],"additionalProperties":false,"description":"sap adrena build close commodity long input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_close_commodity_short","description":"Build an unsigned transaction to close a short commodity position on Adrena. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Commodity of the position.","enum":["XAU","XAG","WTI"]},"priceUsd":{"type":"number","description":"Optional close price in USD.","minimum":0},"percentage":{"type":"number","description":"Percentage to close (0-1000000). Default 1000000.","minimum":0,"maximum":1000000}},"required":["owner","principalToken"],"additionalProperties":false,"description":"sap adrena build close commodity short input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_close_long","description":"Build an unsigned transaction to close a long perp position on Adrena. Default closes 100% at market price. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position. Supported: JITOSOL, WBTC, BONK.","enum":["JITOSOL","WBTC","BONK"]},"priceUsd":{"type":"number","description":"Optional close price in USD. Omit for market close.","minimum":0},"percentage":{"type":"number","description":"Percentage to close (0-1000000, where 1000000 = 100%). Default 1000000.","minimum":0,"maximum":1000000}},"required":["owner","principalToken"],"additionalProperties":false,"description":"sap adrena build close long input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_close_short","description":"Build an unsigned transaction to close a short perp position on Adrena. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK"]},"collateralToken":{"type":"string","description":"Collateral token. USDC for shorts.","enum":["USDC"]},"priceUsd":{"type":"number","description":"Optional close price in USD.","minimum":0},"percentage":{"type":"number","description":"Percentage to close (0-1000000). Default 1000000.","minimum":0,"maximum":1000000}},"required":["owner","principalToken","collateralToken"],"additionalProperties":false,"description":"sap adrena build close short input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_init_user_staking","description":"Build an unsigned transaction to initialize a user staking account on Adrena. Must be called before add_liquid_stake or add_locked_stake. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Staker wallet public key (base58)."}},"required":["owner"],"additionalProperties":false,"description":"sap adrena build init user staking input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_modify_position","description":"Build an unsigned transaction to modify an existing Adrena position by adding collateral. Uses openOrIncreasePosition which atomically adds collateral to an existing position. The leverage parameter can be changed to adjust the position risk. Returns transactionBase64 only after policy, oracle-readiness, balance, and builder-side RPC simulation pass. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"collateralToken":{"type":"string","description":"Collateral token.","enum":["USDC","JITOSOL","WBTC","BONK"]},"collateralAmount":{"type":"number","description":"Additional collateral amount in human-readable units to add to the position.","minimum":0},"leverage":{"type":"number","description":"New leverage multiplier. Pass the same value to keep current leverage, or a different value to change it.","minimum":1,"maximum":100},"side":{"type":"string","description":"Position side.","enum":["long","short"]}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage","side"],"additionalProperties":false,"description":"sap adrena build modify position input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_open_commodity_long","description":"Build an unsigned transaction to open a long position on a synthetic commodity (XAU, XAG, WTI) on Adrena only after policy, balance, oracle-readiness, and simulation checks pass. Uses the commodities pool with USDC collateral. Returns transactionBase64 only when safeToApprove=true and approvalBlocked=false; if blocked diagnostics are returned, do not show approval or call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Commodity to trade.","enum":["XAU","XAG","WTI"]},"collateralAmount":{"type":"number","description":"USDC collateral amount in human-readable units.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier.","minimum":1,"maximum":100},"priceUsd":{"type":"number","description":"Optional limit price in USD.","minimum":0}},"required":["owner","principalToken","collateralAmount","leverage"],"additionalProperties":false,"description":"sap adrena build open commodity long input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_open_commodity_short","description":"Build an unsigned transaction to open a short position on a synthetic commodity (XAU, XAG, WTI) on Adrena only after policy, balance, oracle-readiness, and simulation checks pass. Uses the commodities pool with USDC collateral. Returns transactionBase64 only when safeToApprove=true and approvalBlocked=false; if blocked diagnostics are returned, do not show approval or call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Commodity to short.","enum":["XAU","XAG","WTI"]},"collateralAmount":{"type":"number","description":"USDC collateral amount.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier.","minimum":1,"maximum":100},"priceUsd":{"type":"number","description":"Optional limit price in USD.","minimum":0}},"required":["owner","principalToken","collateralAmount","leverage"],"additionalProperties":false,"description":"sap adrena build open commodity short input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_open_long","description":"Build an unsigned transaction to open or increase a long perp position on Adrena only after policy, balance, oracle-readiness, and simulation checks pass. Returns transactionBase64 for local signing via sap_payments_finalize_transaction only when safeToApprove=true and approvalBlocked=false. If oracleReadiness.ready=false, simulationError, safeToApprove is not true, or approvalBlocked appears, do not show approval and do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58). This is the fee payer and signer."},"principalToken":{"type":"string","description":"Asset to trade (long). Supported: JITOSOL, WBTC, BONK.","enum":["JITOSOL","WBTC","BONK"]},"collateralToken":{"type":"string","description":"Collateral token. Must match principal for longs. Supported: JITOSOL, WBTC, BONK.","enum":["USDC","JITOSOL","WBTC","BONK"]},"collateralAmount":{"type":"number","description":"Collateral amount in human-readable units (e.g. 10 = 10 JITOSOL).","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier (e.g. 3 = 3x).","minimum":1,"maximum":100},"priceUsd":{"type":"number","description":"Optional limit price in USD. Omit for market order.","minimum":0},"stopLossPriceUsd":{"type":"number","description":"Optional stop-loss price in USD. When provided, the policy engine treats this trade as having a stop loss. Omit to skip the SL requirement (if policy requires SL, this field must be present).","minimum":0}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage"],"additionalProperties":false,"description":"sap adrena build open long input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_open_short","description":"Build an unsigned transaction to open or increase a short perp position on Adrena only after policy, balance, oracle-readiness, and simulation checks pass. Collateral must be USDC for shorts. Returns transactionBase64 only when safeToApprove=true, approvalBlocked=false, and the transaction passed pre-submit simulation. If oracleReadiness.ready=false, simulationError, safeToApprove is not true, or approvalBlocked appears, do not show approval and do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset to short. Supported: JITOSOL, WBTC, BONK.","enum":["JITOSOL","WBTC","BONK"]},"collateralToken":{"type":"string","description":"Collateral token. Must be USDC for shorts.","enum":["USDC"]},"collateralAmount":{"type":"number","description":"Collateral (USDC) amount in human-readable units.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier.","minimum":1,"maximum":100},"priceUsd":{"type":"number","description":"Optional limit price in USD. Omit for market order.","minimum":0},"stopLossPriceUsd":{"type":"number","description":"Optional stop-loss price in USD. When provided, the policy engine treats this trade as having a stop loss. Omit to skip the SL requirement (if policy requires SL, this field must be present).","minimum":0}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage"],"additionalProperties":false,"description":"sap adrena build open short input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_position_package","description":"Build a single unsigned transaction that atomically opens a perp position AND sets stop loss AND take profit only after policy, balance, oracle-readiness, and simulation checks pass. If stopLossPriceUsd or takeProfitPriceUsd is omitted, that instruction is skipped. Returns transactionBase64 only when the whole package is safe to approve; otherwise return structured blocked diagnostics and do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset to trade.","enum":["JITOSOL","WBTC","BONK"]},"collateralToken":{"type":"string","description":"Collateral token. USDC for shorts, match principal for longs.","enum":["USDC","JITOSOL","WBTC","BONK"]},"collateralAmount":{"type":"number","description":"Collateral amount in human-readable units.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier (e.g. 3 = 3x).","minimum":1,"maximum":100},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"stopLossPriceUsd":{"type":"number","description":"Optional stop loss trigger price in USD. Omit to skip.","minimum":0},"takeProfitPriceUsd":{"type":"number","description":"Optional take profit trigger price in USD. Omit to skip.","minimum":0},"priceUsd":{"type":"number","description":"Optional limit price in USD for the open. Omit for market order.","minimum":0}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage","side"],"additionalProperties":false,"description":"sap adrena build position package input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_remove_liquid_stake","description":"Build an unsigned transaction to remove a liquid stake on Adrena (unstake LP tokens). Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Staker wallet public key (base58)."},"amount":{"type":"number","description":"Amount of staked LP tokens to withdraw (raw, 6 decimals).","minimum":0}},"required":["owner","amount"],"additionalProperties":false,"description":"sap adrena build remove liquid stake input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_remove_liquidity","description":"Build an unsigned transaction to remove liquidity from an Adrena pool. Burns LP tokens and receives collateral. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Liquidity provider wallet public key (base58)."},"collateralToken":{"type":"string","description":"Collateral token to receive.","enum":["USDC","JITOSOL","WBTC","BONK"]},"lpAmountIn":{"type":"number","description":"LP tokens to burn (raw, 6 decimals).","minimum":0},"minAmountOut":{"type":"number","description":"Minimum collateral to receive (raw). 0 for no slippage protection.","minimum":0},"poolName":{"type":"string","description":"Pool to remove liquidity from.","enum":["main-pool","commodities-pool"]}},"required":["owner","collateralToken","lpAmountIn"],"additionalProperties":false,"description":"sap adrena build remove liquidity input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_set_stop_loss","description":"Build an unsigned transaction to set stop loss on an Adrena position. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"stopLossPriceUsd":{"type":"number","description":"Stop loss trigger price in USD.","minimum":0},"closePositionPriceUsd":{"type":"number","description":"Optional close position price in USD. If set, the position closes at this price when triggered.","minimum":0}},"required":["owner","principalToken","side","stopLossPriceUsd"],"additionalProperties":false,"description":"sap adrena build set stop loss input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_set_take_profit","description":"Build an unsigned transaction to set take profit on an Adrena position. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"takeProfitPriceUsd":{"type":"number","description":"Take profit trigger price in USD.","minimum":0}},"required":["owner","principalToken","side","takeProfitPriceUsd"],"additionalProperties":false,"description":"sap adrena build set take profit input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_swap","description":"Build an unsigned transaction to swap tokens through an Adrena pool. Uses zero-slippage oracle pricing. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Swapper wallet public key (base58)."},"fromToken":{"type":"string","description":"Token to swap from.","enum":["USDC","JITOSOL","WBTC","BONK"]},"toToken":{"type":"string","description":"Token to swap to.","enum":["USDC","JITOSOL","WBTC","BONK"]},"amount":{"type":"number","description":"Amount to swap in human-readable units.","minimum":0},"minAmountOut":{"type":"number","description":"Minimum amount to receive (raw). 0 for no slippage protection.","minimum":0}},"required":["owner","fromToken","toToken","amount"],"additionalProperties":false,"description":"sap adrena build swap input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_build_trailing_stop","description":"Build an unsigned transaction to set a trailing stop loss on an Adrena position. Reads the current oracle price and computes the stop loss at the specified percentage distance. For longs: SL below current price. For shorts: SL above current price. Returns transactionBase64 only after builder-side RPC simulation passes. Show approval only when safeToApprove=true and approvalBlocked=false; otherwise do not call finalize. Call this repeatedly to keep the stop trailing the price.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58)."},"principalToken":{"type":"string","description":"Asset of the position.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"trailPct":{"type":"number","description":"Trailing distance as percentage from current price (e.g. 3 = 3% away).","minimum":0.1,"maximum":50}},"required":["owner","principalToken","side","trailPct"],"additionalProperties":false,"description":"sap adrena build trailing stop input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_get_custody_info","description":"Fetch per-asset custody statistics from the Adrena Data API. Returns open interest, utilization, volume, and fees for each custody.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Optional symbol filter (e.g. JITOSOL, WBTC)."}},"additionalProperties":false,"description":"sap adrena get custody info input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_get_markets","description":"Read all Adrena custody accounts directly from Solana mainnet and return real market data for every supported asset: mint address, decimals, max initial leverage, max leverage, allowTrade/allowSwap flags, oracle feed IDs, open interest (long/short USD), locked amounts, borrow rates, and funding rates. This is the authoritative source for what markets Adrena supports and their current on-chain parameters. Use this before opening positions to verify leverage limits and trade availability.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"poolName":{"type":"string","description":"Optional pool filter. Supported: main-pool, commodities-pool. Omit for all pools.","enum":["main-pool","commodities-pool"]}},"additionalProperties":false,"description":"sap adrena get markets input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_get_mutagen","description":"Fetch Mutagen points for a wallet from the Adrena Data API. Returns total points, rank, and breakdown.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet public key (base58)."}},"required":["wallet"],"additionalProperties":false,"description":"sap adrena get mutagen input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_get_mutagen_leaderboard","description":"Fetch Mutagen points leaderboard from the Adrena Data API. Returns top wallets by points.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"number","description":"Optional limit. Default 50.","minimum":1,"maximum":500}},"additionalProperties":false,"description":"sap adrena get mutagen leaderboard input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_get_pool_info","description":"Read Adrena pool statistics directly from the on-chain Pool account. Returns TVL (AUM), LP token price, pool name, custody list, trade/swap flags, and fees debt. Reads from Solana mainnet via RPC. Use this before opening positions to check pool health and available custodies.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"poolName":{"type":"string","description":"Pool name. Supported: main-pool (default), commodities-pool.","enum":["main-pool","commodities-pool"]}},"additionalProperties":false,"description":"sap adrena get pool info input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_get_position_status","description":"Fetch live position status (P&L, size, liquidation price, entry price, oracle price) from the Adrena Data API for a specific wallet and token.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet public key (base58)."},"principalToken":{"type":"string","description":"Principal token symbol (e.g. JITOSOL, WBTC, BONK, XAU)."},"side":{"type":"string","description":"Position side.","enum":["long","short"]}},"required":["wallet","principalToken","side"],"additionalProperties":false,"description":"sap adrena get position status input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_get_positions","description":"Fetch position history for a wallet from the Adrena Data API. Returns closed and open positions with P&L, entry/exit prices, and status.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet public key (base58)."}},"required":["wallet"],"additionalProperties":false,"description":"sap adrena get positions input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_get_prices","description":"Fetch current ADX and ALP token prices from the Adrena Data API.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false,"description":"sap adrena get prices input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_get_trader_info","description":"Fetch trader performance metrics from the Adrena Data API. Returns total volume, P&L, fees, win rate, and rank.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Trader wallet public key (base58)."}},"required":["wallet"],"additionalProperties":false,"description":"sap adrena get trader info input schema. Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_get_trader_leaderboard","description":"Fetch trader leaderboard from the Adrena Data API. Returns top traders by volume and P&L.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"number","description":"Optional limit. Default 50.","minimum":1,"maximum":500}},"additionalProperties":false,"description":"sap adrena get trader leaderboard input schema. Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_get_trading_prices","description":"Fetch latest oracle trading prices for all Adrena assets. Returns price and custody address for each traded asset.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false,"description":"sap adrena get trading prices input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_oracle_readiness","description":"Free Adrena execution readiness check for an exact market/pool/collateral route. Reads on-chain pool, custody, and oracle accounts and returns whether each required oracle symbol has enough fresh prices for Adrena minAgree. Use this before any sap_adrena_build_* open-position tool. If ready=false, do not show approval and do not call sap_payments_finalize_transaction.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"principalToken":{"type":"string","description":"Market symbol to trade, for example WBTC, JITOSOL, BONK, XAU, XAG, WTI."},"collateralToken":{"type":"string","description":"Collateral symbol. USDC for shorts and commodities; same token for main-pool longs."},"poolName":{"type":"string","description":"Adrena pool. Default main-pool; use commodities-pool for XAU/XAG/WTI.","enum":["main-pool","commodities-pool"]},"requiredSymbols":{"type":"array","description":"Optional explicit oracle symbols to check. If omitted, SAP MCP derives them from principal/collateral custody accounts.","items":{"type":"string","description":"Required Symbols parameter for sap adrena oracle readiness."}}},"additionalProperties":false,"description":"sap adrena oracle readiness input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_simulate_position","description":"FREE dry-run tool (no x402 charge): checks live Adrena oracle readiness and simulates opening a perp position only when oracle coverage can satisfy the pool. Returns oracleReadiness, balanceCheck, program logs, compute units, and wouldSucceed without transaction bytes. Use this before any paid build. Build only when wouldSucceed=true and oracleReadiness.ready=true.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Position owner wallet public key (base58). This is the fee payer and signer."},"principalToken":{"type":"string","description":"Asset to trade. Supported: JITOSOL, WBTC, BONK, plus XAU, XAG, WTI in the commodities pool.","enum":["JITOSOL","WBTC","BONK","XAU","XAG","WTI"]},"collateralToken":{"type":"string","description":"Collateral token. For longs must match principal (main pool) or be USDC (commodities pool). For shorts must be USDC. Supported: USDC, JITOSOL, WBTC, BONK.","enum":["USDC","JITOSOL","WBTC","BONK"]},"collateralAmount":{"type":"number","description":"Collateral amount in human-readable units (e.g. 10 = 10 JITOSOL or 10 USDC).","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier (e.g. 3 = 3x).","minimum":1,"maximum":100},"side":{"type":"string","description":"Position side: long or short.","enum":["long","short"]},"poolName":{"type":"string","description":"Pool to use. Default: main-pool. Use commodities-pool for XAU/XAG/WTI.","enum":["main-pool","commodities-pool"]}},"required":["owner","principalToken","collateralToken","collateralAmount","leverage","side"],"additionalProperties":false,"description":"sap adrena simulate position input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_adrena_trade_intent","description":"Intent-level Adrena trading API. Pass market name, side, USD collateral, and leverage (or \"max\"). Resolves custody, collateral, prices, policy, balance, oracle-readiness, and simulation before returning a signable transaction. Never describe the result as ready-to-sign unless transactionBase64 exists and no oracleReadiness.ready=false, simulationError, safeToApprove=false, or approvalBlocked field is present.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Wallet public key (base58)."},"market":{"type":"string","description":"Market symbol: BONK, JITOSOL, WBTC, USDC, XAU, XAG, WTI."},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"collateralUsd":{"type":"number","description":"Collateral amount in USD. Converted to token amount using oracle price.","minimum":0},"leverage":{"type":"string","description":"Leverage multiplier (e.g. \"3\" for 3x) or \"max\" for maxInitialLeverage."},"stopLossPct":{"type":"number","description":"Optional stop loss as % from entry (e.g. 5 = 5% away). Omit to skip."},"takeProfitPct":{"type":"number","description":"Optional take profit as % from entry (e.g. 15 = 15% away). Omit to skip."},"poolName":{"type":"string","description":"Pool: main-pool (default) or commodities-pool.","enum":["main-pool","commodities-pool"]}},"required":["owner","market","side","collateralUsd","leverage"],"additionalProperties":false,"description":"sap adrena trade intent input schema. Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_agent_context","description":"Free one-shot SAP orientation context for agents. Use this when the user asks whether SAP MCP is connected, wants to understand an agent/wallet, or needs the next safe paid/write route. It combines exact reads or a compact directory page with routing guidance without triggering x402. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Optional exact owner wallet public key (base58). When supplied, returns the matching agent identity, PDA, active state, and hydrated profile when available."},"agentPda":{"type":"string","description":"Optional exact SAP agent PDA (base58) for compact context lookup when the owner wallet is not known."},"query":{"type":"string","description":"Optional text query for a compact micro-read orientation search. Keep this narrow, for example \"XONA\" or \"Solking\"."},"limit":{"type":"number","description":"Maximum compact orientation rows to include when wallet is not supplied. Defaults to 10 and is capped at 20 to keep this tool in the micro-read tier."}},"description":"Get SAP Agent Context input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_agent_identity_plan","description":"Free read-only planner for SAP agent registration, profile/image updates, Metaplex/MPL Core identity linking, SNS linking, x402 pricing metadata, and post-write verification. Use this before sap_payments_register_agent or sap_payments_update_agent so agents know the exact local-signer route, metadata contract, forbidden actions, and protocol fee verification checklist. It does not touch chain and never signs. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"intendedAction":{"type":"string","enum":["register","update","link-metaplex","link-sns","full-identity"],"description":"Agent identity lifecycle step to plan. Use register for a new SAP agent, update for profile/image/capability changes, link-metaplex for NFT/MPL Core identity, link-sns for .sol identity, or full-identity for the recommended end-to-end flow."},"name":{"type":"string","description":"Required public display name for the SAP agent. Keep it stable enough for explorers and humans."},"description":{"type":"string","description":"Required public description of what the agent does, which protocols it can use, and its safety/trust boundaries."},"capabilities":{"type":"array","description":"Required capability list. Prefer object form for production; strings are accepted as shorthand.","items":{"oneOf":[{"type":"string","description":"Capability id shorthand, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, or risk:management."},{"type":"object","properties":{"id":{"type":"string","description":"Required stable capability id. Use protocol:action naming, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, x402:payments, or risk:management."},"description":{"type":"string","description":"Optional human-readable capability description for agents and explorers."},"protocolId":{"type":"string","description":"Optional protocol namespace backing this capability, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, or custom."},"version":{"type":"string","description":"Optional capability version string. Use semver when the capability maps to an API contract."}},"required":["id"],"additionalProperties":false,"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}],"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}},"pricing":{"type":"array","description":"Optional pricing tiers advertised by the agent. Use tokenType usdc + settlementMode x402 for pay.sh/x402 agent commerce.","items":{"type":"object","properties":{"tierId":{"type":"string","description":"Stable tier id, for example default, read, premium, value-action, or enterprise."},"pricePerCall":{"type":"string","description":"Price per call in the smallest unit of tokenType: lamports for sol, micro-USDC for usdc, or base units for spl."},"minPricePerCall":{"type":"string","description":"Optional floor price per call in the smallest unit of tokenType."},"maxPricePerCall":{"type":"string","description":"Optional ceiling price per call in the smallest unit of tokenType."},"rateLimit":{"type":"number","description":"Maximum calls per second allowed by this tier. Defaults to 60."},"maxCallsPerSession":{"type":"number","description":"Maximum calls allowed per session for this tier. Defaults to 1000."},"burstLimit":{"type":"number","description":"Optional short-window burst allowance for this tier."},"tokenType":{"type":"string","enum":["sol","usdc","spl"],"description":"Payment token type. Use usdc for x402/pay.sh agent commerce. Use spl only with tokenMint."},"tokenMint":{"type":"string","description":"Optional SPL token mint public key. Required when tokenType is spl. For mainnet USDC use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v."},"tokenDecimals":{"type":"number","description":"Decimals for the payment token. Defaults to 6 for usdc and 9 for sol when omitted."},"settlementMode":{"type":"string","enum":["instant","escrow","batched","x402"],"description":"Settlement strategy. Use x402 for HTTP 402/pay.sh flows, escrow for prepaid SAP usage ledgers, instant for direct pay-per-call, and batched for periodic settlement."},"minEscrowDeposit":{"type":"string","description":"Optional minimum escrow deposit in the smallest unit of tokenType."},"batchIntervalSec":{"type":"number","description":"Optional settlement batch interval in seconds when settlementMode is batched."},"volumeCurve":{"type":"array","description":"Optional volume discounts. Each item lowers pricePerCall after a call threshold.","items":{"type":"object","properties":{"afterCalls":{"type":"number","description":"Call count threshold where this price starts."},"pricePerCall":{"type":"string","description":"Discounted price per call in the smallest unit of tokenType."}},"required":["afterCalls","pricePerCall"],"additionalProperties":false,"description":"Volume Curve parameter for Plan SAP Agent Identity."}}},"required":["pricePerCall"],"additionalProperties":false,"description":"Pricing array of x402/pay.sh pricing tiers for the registered agent or tool. Amounts should be denominated explicitly in USDC smallest units when applicable."}},"protocols":{"type":"array","items":{"type":"string","description":"Protocols array of protocol identifiers such as sap, mcp, jupiter, pyth, metaplex, sns, or x402."},"description":"Required protocol tags the agent supports, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, payments."},"agentId":{"type":"string","description":"Optional stable lowercase agent id, for example solking. This is separate from the on-chain agent PDA."},"agentUri":{"type":"string","description":"Optional public HTTPS/IPFS/Arweave/Kommodo URI for the agent profile metadata or profile page. Never use local desktop file paths."},"metadataUri":{"type":"string","description":"Alias for agentUri. Prefer a public JSON metadata document containing name, description, image, external_url, attributes, sap, metaplex, sns, and x402 fields."},"x402Endpoint":{"type":"string","description":"Optional public x402 discovery/payment endpoint, usually https://host/.well-known/x402 for external agent services."},"snsDomain":{"type":"string","description":"Optional .sol domain to link after ownership or registration is verified."},"imageUrl":{"type":"string","description":"Optional public image URL. This must be HTTPS, IPFS, Arweave, or another public URI; desktop file paths are not valid."},"metaplexAsset":{"type":"string","description":"Optional Metaplex NFT or MPL Core asset/collection address to reference from public agent metadata."},"ownerWallet":{"type":"string","description":"Optional expected SAP owner wallet. Use this for verification planning only; signing still comes from the active local SAP profile."}},"description":"Plan SAP Agent Identity input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_agent_migrate_pricing_menu","description":"Backfill or resync the AgentPricingMenu PDA for the connected wallet SAP agent. Run this once if sap_update_agent, sap_close_agent, or createEscrowV2 fails with AccountNotInitialized on the pricing_menu account. Agents registered before pricing menus were created at registration need this one-time migration. Local-signer-only; hosted accountless SAP MCP rejects this direct write before x402 payment. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Migrate Agent Pricing Menu input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_agent_next_action","description":"Free routing resolver for SAP MCP errors and partial results. Use this before retrying after payment_required, hosted_local_signer_required, BlockhashNotFound, missing sap_payments, timeout, or a submitted signature that has not confirmed.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"intent":{"type":"string","enum":["connection","paid-call","registry-write","transaction-finalize","escrow","identity","general"],"description":"Current user intent or workflow area."},"toolName":{"type":"string","description":"Tool that produced the error or partial result, for example sap_register_agent, sap_update_agent, or sap_create_escrow_v2."},"errorCode":{"type":"string","description":"Machine error code when available, for example hosted_local_signer_required, payment_required, BlockhashNotFound, or expired_or_not_landed."},"errorMessage":{"type":"string","description":"Human or structured error message returned by the runtime, hosted server, local bridge, or wallet/RPC layer."},"hasSignature":{"type":"boolean","description":"True when a transaction signature was already produced or submitted. This prevents unsafe duplicate retries."},"paymentRequired":{"type":"boolean","description":"True when the previous response was an x402/pay.sh payment challenge."}},"description":"Resolve SAP MCP Next Action input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_agent_runtime_status","description":"Free machine-readable readiness and routing summary for SAP MCP. Use this for \"are you connected?\", paid/write readiness, local profile visibility, and exact next actions without dumping the whole tool catalog.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"intent":{"type":"string","enum":["connection","paid-call","registry-write","transaction-finalize","escrow","identity","general"],"description":"Optional user intent so the status can highlight the correct next tool path."}},"description":"Check SAP MCP Runtime Status input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_agent_standard_context","description":"Free agentic-standards orientation for SAP MCP. Use this after sap_agent_start when an agent needs to understand how SAP MCP maps MCP, x402/pay.sh, A2A-style Agent Cards, OASF-style agent facts, AP2-style mandate planning, local signing, and hosted unsigned builders without guessing or over-claiming unsupported standards.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"intent":{"type":"string","enum":["connection","paid-call","registry-write","transaction-finalize","escrow","identity","swap","external-x402","premium-stream","general"],"description":"Closest user intent so the standards context can highlight the correct MCP/x402/local-signer route."},"includeRoadmap":{"type":"boolean","description":"Whether to include planned-but-not-claimed standards work such as MCP Apps, A2A signatures, AG-UI views, and full AP2 mandate signatures. Defaults to true."}},"description":"Get SAP Agentic Standards Context input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_agent_start","description":"Return the concise startup playbook for agents using SAP MCP. Call this when the user says \"Start SAP MCP\", \"Initialize SAP MCP\", \"Load SAP\", or asks what SAP MCP can do.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"goal":{"type":"string","description":"Optional user goal to tailor the startup plan, such as \"register an agent\", \"check wallet balance\", or \"swap tokens\"."}},"description":"Start SAP MCP Agent Mode input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_audit_query","description":"Free local tool. Queries the immutable audit trail for x402 settlements and transaction signatures. Search by tool name, outcome, or time range. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"FTS5 search query."},"outcome":{"type":"string","enum":["success","error","partial"],"description":"Filter by outcome."},"limit":{"type":"number","description":"Max results. Default 20."}},"description":"Query Audit Trail input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_audit_record","description":"Free local tool. Records a manual audit entry in the tool call history. Use this to log custom events (e.g. manual interventions, external transactions, policy decisions). No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"toolName":{"type":"string","description":"Label for the audit entry."},"input":{"type":"string","description":"JSON details."},"output":{"type":"string","description":"JSON result."},"outcome":{"type":"string","enum":["success","error","partial"],"description":"Outcome."},"txSignature":{"type":"string","description":"Transaction signature if applicable."}},"required":["toolName","outcome"],"description":"Record Audit Entry input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_audit_stats","description":"Free local tool. Returns aggregate statistics about the memory database: tool call counts, memory counts, stream buffer counts, outcome breakdown, DB size. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Memory & Audit Stats input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_assets","description":"List Backpack assets (raw response is 2.1MB — compacted server-side to symbol + per-token deposit/withdraw fields; optional exact-symbol filter). Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Optional exact asset symbol filter, e.g. SOL"}},"description":"sap backpack get assets input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_borrow_lend_markets","description":"List Backpack borrow/lend markets: borrow/lend interest rates, utilization, optimal utilization, limits per asset; optional symbol filter (e.g. SOL). Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Optional asset symbol filter, e.g. SOL"}},"description":"sap backpack get borrow lend markets input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_collateral","description":"Get Backpack collateral requirements per asset: haircut/imf/mmf functions and weights. Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP. No arguments. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"sap backpack get collateral input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_depth","description":"Get Backpack order book depth ([price, qty] ask/bid string pairs) for a symbol; optional limit caps levels per side (default 20; upstream default 1000, max 5000). Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol, e.g. SOL_USDC or SOL_USDC_PERP"},"limit":{"type":"number","description":"Levels per side (default 20, upstream max 5000)","minimum":1,"maximum":5000}},"required":["symbol"],"description":"sap backpack get depth input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_funding_rates","description":"Get Backpack funding-rate history for a perp symbol (e.g. SOL_USDC_PERP). Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Perp market symbol, e.g. SOL_USDC_PERP"}},"required":["symbol"],"description":"sap backpack get funding rates input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_klines","description":"Get Backpack OHLCV klines for a symbol. interval is one of 1m 3m 5m 15m 30m 1h 2h 4h 6h 8h 12h 1d 3d 1w 1M (case-sensitive: 'M' = month). startTime/endTime accept ISO-8601 strings or epoch milliseconds and are converted to epoch SECONDS upstream. Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol, e.g. SOL_USDC or SOL_USDC_PERP"},"interval":{"type":"string","description":"Kline interval (1m 3m 5m 15m 30m 1h 2h 4h 6h 8h 12h 1d 3d 1w 1M)","enum":["1m","3m","5m","15m","30m","1h","2h","4h","6h","8h","12h","1d","3d","1w","1M"]},"startTime":{"type":"string","description":"Range start: ISO-8601 string or epoch (seconds or milliseconds)"},"endTime":{"type":"string","description":"Range end: ISO-8601 string or epoch (seconds or milliseconds)"}},"required":["symbol","interval"],"description":"sap backpack get klines input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_mark_price","description":"Get Backpack mark price, index price, funding rate and next funding timestamp for a PERP symbol (e.g. SOL_USDC_PERP). Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Perp market symbol, e.g. SOL_USDC_PERP"}},"required":["symbol"],"description":"sap backpack get mark price input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_market","description":"Get one Backpack market by exact symbol (e.g. SOL_USDC). Resolved by filtering the full markets list client-side — the upstream /markets/{symbol} path is a 404 trap and is never called. Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol, e.g. SOL_USDC (spot) or SOL_USDC_PERP (perp)"}},"required":["symbol"],"description":"sap backpack get market input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_market_sessions","description":"List Backpack market sessions (e.g. US_EQUITIES_PRE_MARKET, US_EQUITIES_REGULAR, US_EQUITIES_POST_MARKET, US_EQUITIES_OVERNIGHT) governing stock market availability. Backpack symbols: stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. No arguments. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"sap backpack get market sessions input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_markets","description":"List all Backpack Exchange markets with metadata (tickSize, stepSize, price, volume). Optional marketType filter: SPOT or PERP. Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"marketType":{"type":"string","description":"Optional market type filter","enum":["SPOT","PERP"]}},"description":"sap backpack get markets input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_open_interest","description":"Get Backpack open interest for a perp symbol (e.g. SOL_USDC_PERP). Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Perp market symbol, e.g. SOL_USDC_PERP"}},"required":["symbol"],"description":"sap backpack get open interest input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_securities","description":"List Backpack tradable securities/stocks (raw response is 500KB — compacted server-side; optional asset prefix filter, e.g. \"AAPL.\" matches AAPL.US): cusip, name, trading sessions with max/min quantity and stepSize. Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"asset":{"type":"string","description":"Optional asset prefix filter, e.g. AAPL. or AAPL.US"}},"description":"sap backpack get securities input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_ticker","description":"Get one Backpack ticker snapshot (lastPrice, bidPrice, askPrice, volume24h...) by symbol, e.g. SOL_USDC. Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol, e.g. SOL_USDC or SOL_USDC_PERP"}},"required":["symbol"],"description":"sap backpack get ticker input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_tickers","description":"List ALL Backpack tickers (every market's lastPrice/bid/ask/24h volume) in one call. Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"sap backpack get tickers input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_backpack_get_trades","description":"Get recent Backpack trades (id, price, quantity, quoteQuantity, timestamp ms, isBuyerMaker) for a symbol; optional limit (default 50). Backpack symbols: spot SOL_USDC, perp SOL_USDC_PERP (marketType SPOT|PERP), stock spot MU.US_USDC, stock RFQ AAPL.US_USDC_RFQ. Free read.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol, e.g. SOL_USDC"},"limit":{"type":"number","description":"Max trades (default 50)","minimum":1,"maximum":1000}},"required":["symbol"],"description":"sap backpack get trades input schema. Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_build_agent_lifecycle_transaction","description":"Hosted-safe unsigned builder for the agent lifecycle actions: deactivate_agent, reactivate_agent, close_agent (reclaims rent), and migrate_pricing_menu (one-time backfill of the PricingMenu PDA for agents registered before pricing menus existed). The owner wallet signs locally. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"action":{"type":"string","enum":["deactivate_agent","reactivate_agent","close_agent","migrate_pricing_menu"],"description":"Lifecycle action to build."},"ownerWallet":{"type":"string","description":"Agent owner wallet public key (base58) — sole required signer."}},"description":"Build SAP Agent Lifecycle Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_build_agent_register_transaction","description":"Hosted-safe unsigned builder for register_agent. Browser runtimes preview this transaction, the owner wallet approves and signs locally, then it goes through the Steve signed-transaction submit relay or sap_payments_finalize_transaction. Pays the 0.1 SOL SAP protocol registration fee from the signing wallet. Keypair bytes never leave the user device. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ownerWallet":{"type":"string","description":"Agent owner wallet public key (base58) — also the transaction fee payer and sole required signer."},"name":{"type":"string","description":"Public display name for the SAP agent."},"description":{"type":"string","description":"Public description of what the agent does."},"capabilities":{"type":"array","description":"Capability list: [{ id, description, protocolId, version }] (strings accepted as shorthand)."},"pricing":{"type":"array","description":"Optional pricing tiers advertised by the agent."},"protocols":{"type":"array","items":{"type":"string","description":"Protocols array of protocol identifiers such as sap, mcp, jupiter, pyth, metaplex, sns, or x402."},"description":"Protocol tags the agent supports (sap, mcp, jupiter, sns, x402...)."},"agentId":{"type":"string","description":"Optional stable lowercase agent id (off-chain, separate from the on-chain PDA)."},"agentUri":{"type":"string","description":"Optional public HTTPS/IPFS/Arweave metadata URI."},"x402Endpoint":{"type":"string","description":"Optional public x402 discovery/payment endpoint."}},"description":"Build SAP Agent Registration Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_build_agent_report_calls_transaction","description":"Hosted-safe unsigned builder for report_calls. The agent owner wallet signs locally after serving calls to consumers. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ownerWallet":{"type":"string","description":"Agent owner wallet public key (base58) — sole required signer."},"callsServed":{"type":"number","description":"Number of calls served to report for the agent."}},"description":"Build SAP Agent Report Calls Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_build_agent_update_transaction","description":"Hosted-safe unsigned builder for update_agent. The owner wallet signs locally after preview; null fields are ignored on-chain. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"ownerWallet":{"type":"string","description":"Agent owner wallet public key (base58) — sole required signer."},"name":{"type":"string","description":"Optional replacement display name."},"description":{"type":"string","description":"Optional replacement description."},"capabilities":{"type":"array","description":"Optional FULL replacement capability list."},"pricing":{"type":"array","description":"Optional FULL replacement pricing tier list."},"protocols":{"type":"array","items":{"type":"string","description":"Protocols array of protocol identifiers such as sap, mcp, jupiter, pyth, metaplex, sns, or x402."},"description":"Optional FULL replacement protocol list."},"agentId":{"type":"string","description":"Optional replacement stable agent id."},"agentUri":{"type":"string","description":"Optional replacement public metadata URI (use for image updates after uploading to IPFS/etc)."},"x402Endpoint":{"type":"string","description":"Optional replacement x402 endpoint."}},"description":"Build SAP Agent Update Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_build_sol_transfer","description":"Build an unsigned native SOL transfer transaction using SystemProgram.transfer. Returns serialized base64 transaction for the agent to sign locally with sap_payments_finalize_transaction or sap_sign_transaction → sap_submit_signed_transaction. This is the hosted-safe equivalent of spl-token_transferSol (which is local-signer-only and cannot run on the hosted accountless server). Builder fee applies.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"fromPubkey":{"type":"string","description":"Sender public key in base58. This is the fee payer and must sign the transaction locally."},"toPubkey":{"type":"string","description":"Recipient public key in base58."},"lamports":{"type":"number","description":"Amount in lamports (1 SOL = 1,000,000,000 lamports). Use sap_estimate_tool_cost to check the builder fee before calling."}},"description":"Build Native SOL Transfer Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_build_spl_transfer","description":"Build an unsigned SPL token transfer transaction. Returns serialized base64 transaction for the agent to sign locally with sap_payments_finalize_transaction or sap_sign_transaction → sap_submit_signed_transaction. This is the hosted-safe equivalent of spl-token_transfer (which is local-signer-only and cannot run on the hosted accountless server). Builder fee applies.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"sourceOwner":{"type":"string","description":"Source token account owner public key in base58. This is the fee payer and must sign the transaction locally."},"destinationOwner":{"type":"string","description":"Destination wallet public key in base58. The destination ATA will be created if it does not exist."},"mint":{"type":"string","description":"SPL token mint address in base58."},"amount":{"type":"number","description":"Amount of tokens to transfer in base units (respect the mint decimals)."},"decimals":{"type":"number","description":"Optional expected token decimals. The builder verifies this against the mint account on-chain."}},"description":"Build SPL Token Transfer Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_cancel_subscription","description":"Cancel a recurring subscription. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"subId":{"type":"string","description":"Subscription ID (as a decimal string, default: 0)"}},"description":"Cancel SAP Subscription input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chart_indicators","description":"Compute technical indicators (RSI, EMA-20, EMA-50, MACD, Bollinger Bands, ATR) from DexScreener price data. Returns pre-calculated values with trend/momentum/volatility signals. Reduces analysis time by 5-10 tool calls.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)."},"resolution":{"type":"string","description":"Chart resolution for indicator calculation.","enum":["5m","1h","6h","24h"]},"indicators":{"type":"array","items":{"type":"string","enum":["rsi","ema_20","ema_50","macd","bollinger","atr"],"description":"Indicator name."},"description":"Indicators to compute. Default: all."}},"required":["mint"],"additionalProperties":false,"description":"SAP Chart Indicators input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chart_long_term","description":"Fetch long-term price history for a Solana token from DexScreener and optional protocol TVL data from DeFiLlama. Returns price changes, volume, liquidity, FDV, and TVL history. Read-only — uses free REST APIs.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58) for price history."},"protocol":{"type":"string","description":"Optional DeFiLlama protocol slug for TVL history (e.g. \"jupiter\", \"raydium\")."}},"required":["mint"],"additionalProperties":false,"description":"SAP Chart Long Term input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chart_multi_ohlc","description":"Fetch OHLC candlestick data for multiple resolutions in a single call. Returns open, high, low, close, and volume for each requested timeframe. Uses free DexScreener API — one fetch, multiple timeframes. Reduces multi-timeframe analysis cost by 5x.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)."},"resolutions":{"type":"array","items":{"type":"string","enum":["5m","1h","6h","24h"],"description":"Resolution timeframe."},"description":"Resolutions to fetch (e.g. [\"5m\",\"1h\",\"6h\",\"24h\"])."}},"required":["mint","resolutions"],"additionalProperties":false,"description":"SAP Chart Multi Ohlc input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chart_ohlc","description":"Fetch OHLC candlestick data for any Solana token from DexScreener. Returns open, high, low, close, volume, liquidity, and FDV. Read-only — uses free DexScreener REST API.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58) to fetch OHLC data for."},"resolution":{"type":"string","description":"Chart resolution: \"5m\", \"1h\", \"6h\", \"24h\" (default \"1h\").","enum":["5m","1h","6h","24h"]}},"required":["mint"],"additionalProperties":false,"description":"SAP Chart Ohlc input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chart_volume_profile","description":"Compute volume profile (POC, VAH, VAL) for any Solana token using DexScreener price and volume data. Returns point of control, value area high/low, and bucket distribution. Read-only — uses free DexScreener REST API + local computation.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58) to compute volume profile for."},"buckets":{"type":"number","description":"Number of price buckets (default 20).","minimum":5,"maximum":100}},"required":["mint"],"additionalProperties":false,"description":"SAP Chart Volume Profile input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chat_derive_room","description":"Derive a deterministic SAP chat room/session ID. Group and public room IDs are active; DM derivation is reserved for future native support.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Derive Room."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Derive Room input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chat_publish_manifest","description":"Publish a signed thematic room/group manifest for discovery indexers, policy-aware agents, and chat clients.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Publish Manifest."},"description":"Participant agent/wallet identifiers for DM or group rooms."},"description":{"type":"string","description":"Short public room/group description."},"tags":{"type":"array","items":{"type":"string","description":"Tags parameter for SAP Chat Publish Manifest."},"description":"Small topic tags used by discovery, for example openbook, markets, sol-usdc."},"policy":{"type":"object","description":"Compact group policy or content-addressed policy reference."},"links":{"type":"array","items":{"type":"object","description":"Links parameter for SAP Chat Publish Manifest."},"description":"Optional signed room links for docs, market references, IPFS manifests, or execution receipts."},"metadata":{"type":"object","description":"Optional compact manifest metadata."}},"description":"SAP Chat Publish Manifest input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chat_read_all","description":"Read all SAP chat messages from sealed ledger pages plus the latest ring buffer.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Read All."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Read All input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chat_read_latest","description":"Read latest SAP chat messages from the room ring buffer.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Read Latest."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Read Latest input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chat_seal_room","description":"Seal the current chat ring buffer into an immutable SAP ledger page for permanent history.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Seal Room."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Seal Room input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chat_send_message","description":"Send a chunked SAP chat message to a room. Public messages store UTF-8 text; private messages store caller-provided ciphertext bytes.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Required thematic group topic when deriving or writing to topic-scoped groups."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Send Message."},"description":"Participant agent/wallet identifiers for DM or group rooms."},"content":{"type":"string","description":"Plain UTF-8 message content for public messages."},"payloadBase64":{"type":"string","description":"Base64 payload. Required for private/ciphertext messages."},"visibility":{"type":"string","enum":["public","private"],"description":"Message visibility. Defaults to public."},"contentType":{"type":"string","description":"MIME content type. Defaults to text/plain for public messages."},"replyTo":{"type":"string","description":"Optional parent message ID."},"policy":{"type":"object","description":"Optional compact group policy reference or policy hash. Full policy bodies should live off-chain and be linked by hash."},"links":{"type":"array","items":{"type":"object","description":"Links parameter for SAP Chat Send Message."},"description":"Optional signed link references. Each link must include url and may include kind, label, sha256."},"metadata":{"type":"object","description":"Optional JSON metadata. Keep small; large metadata should be stored off-chain and hashed."}},"description":"SAP Chat Send Message input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chat_start_room","description":"Start an on-chain SAP chat room by creating the backing vault, session, and ledger if needed.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Start Room."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Start Room input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_chat_status","description":"Get backing SAP memory session status for a chat room.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"roomKind":{"type":"string","enum":["dm","group","room"],"description":"Chat room kind: dm, group, or room."},"roomId":{"type":"string","description":"Optional explicit room ID. If omitted, one is derived deterministically."},"roomName":{"type":"string","description":"Human-readable room name for public thematic rooms."},"topic":{"type":"string","description":"Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery."},"participants":{"type":"array","items":{"type":"string","description":"Participants parameter for SAP Chat Status."},"description":"Participant agent/wallet identifiers for DM or group rooms."}},"description":"SAP Chat Status input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_close_agent","description":"Close the connected wallet SAP agent and reclaim rent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Close SAP Agent input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_close_escrow_v2","description":"Local-signer-only direct close for an empty V2 escrow. Hosted users should call sap_escrow_build_close_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"}},"description":"Close SAP Escrow V2 input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_compact_inscribe_memory","description":"Compact memory inscription with explicit vault/session PDAs. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionPda":{"type":"string","description":"Session PDA (base58) for the memory inscription"},"vaultPda":{"type":"string","description":"Vault PDA (base58) for the memory inscription"},"encryptedData":{"type":"array","description":"Encrypted memory data as a byte array, hex string, or base64 string"},"nonce":{"type":"array","description":"Encryption nonce as a byte array, hex string, or base64 string"},"contentHash":{"type":"array","description":"32-byte content hash as a byte array, hex string, or base64 string"}},"description":"Compact Inscribe SAP Memory input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_complete_unstake","description":"Complete unstake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to complete unstaking for"}},"description":"Complete SAP Unstake input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_create_attestation","description":"Create an on-chain attestation for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to create attestation for"},"attestationType":{"type":"string","description":"Optional attestation type string (default: \"generic\")"},"metadataHash":{"type":"array","description":"32-byte metadata hash as a byte array, hex string, or base64 string"},"expiresAt":{"type":"string","description":"Optional expiry timestamp (as a decimal string, 0 = no expiry)"}},"description":"Create SAP Attestation input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_create_escrow_v2","description":"Local-signer-only direct V2 escrow creation using SDK EscrowV2Module.create. Defaults to DisputeWindow settlementSecurity=2; SelfReport/0 is rejected. Hosted accountless SAP MCP rejects this before x402 payment; hosted users should call sap_escrow_build_create_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58). The V2 escrow PDA is derived from this wallet plus nonce."},"pricePerCall":{"type":"string","description":"Price per served call as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"maxCalls":{"type":"string","description":"Maximum number of calls covered by the escrow as a decimal string. Use 0 for unlimited when supported by policy."},"initialDeposit":{"type":"string","description":"Initial escrow deposit as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"expiresAt":{"type":"string","description":"Optional expiry timestamp in unix seconds as a decimal string. Defaults to 0 (no expiry)."},"tokenMint":{"type":"string","description":"Optional SPL payment token mint. Omit/null for native SOL. Use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v for mainnet USDC x402 escrows."},"tokenDecimals":{"type":"number","description":"Payment token decimals. Defaults to 6 when tokenMint is set, otherwise 9 for native SOL."},"settlementSecurity":{"type":"number","enum":[1,2],"description":"V2 settlement security mode. 1=CoSigned (requires coSigner). 2=DisputeWindow (recommended default; requires disputeWindowSlots > 0). SelfReport/0 is deprecated and rejected on-chain."},"disputeWindowSlots":{"type":"string","description":"Required positive dispute window in slots for settlementSecurity=2. Defaults to 2160 (~15 minutes)."},"coSigner":{"type":"string","description":"Required co-signer wallet public key when settlementSecurity=1 (CoSigned)."},"arbiter":{"type":"string","description":"Optional arbiter public key kept for IDL compatibility and dispute workflows."}},"description":"Create SAP Escrow V2 input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_create_subscription","description":"Create a recurring subscription for an agent wallet. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to create subscription for"},"subId":{"type":"string","description":"Subscription ID (as a decimal string, default: 0)"},"pricePerInterval":{"type":"string","description":"Price per billing interval in lamports (as a decimal string)"},"billingInterval":{"type":"number","description":"Billing interval in seconds between charges"},"initialFund":{"type":"string","description":"Initial fund amount in lamports (as a decimal string)"}},"description":"Create SAP Subscription input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_deactivate_agent","description":"Deactivate the connected wallet SAP agent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Deactivate SAP Agent input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_deactivate_tool","description":"Deactivate a SAP tool descriptor by name. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"toolName":{"type":"string","description":"Name of the tool descriptor to deactivate"}},"description":"Deactivate SAP Tool input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_decode_transaction","description":"Decode a serialized Solana transaction and return stable transaction metadata. Use this before signing when a SAP MCP, Jupiter, MagicBlock, SNS, Metaplex, or DeFi tool returns transactionBase64 or an unsigned transaction.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"transaction":{"type":"string","description":"Serialized transaction"},"encoding":{"type":"string","enum":["base64","base58"],"description":"Input encoding"}},"description":"Decode Transaction input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_deposit_escrow_v2","description":"Local-signer-only direct deposit into a V2 escrow. Hosted users should call sap_escrow_build_deposit_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"},"amount":{"type":"string","description":"Deposit amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."}},"description":"Deposit SAP Escrow V2 input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_deposit_stake","description":"Deposit additional stake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"amount":{"type":"string","description":"Additional stake deposit amount in lamports (as a decimal string)"}},"description":"Deposit SAP Stake input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_discover_agents","description":"Paid hosted discovery for SAP agents. Search and filter the current on-chain AgentAccount directory by query, wallet, protocol, capability, x402 endpoint presence, and cursor pagination. Use this for targeted agent discovery before calling per-agent fetch tools. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Optional text search across name, description, agentId, wallet, PDA, x402 endpoint, protocols, capabilities, and active plugins. Example: \"XONA\" or \"creative\"."},"wallet":{"type":"string","description":"Optional exact owner wallet public key filter. Use this when a wallet is known; it is the most reliable lookup path."},"agentPda":{"type":"string","description":"Optional exact SAP agent PDA filter."},"protocol":{"type":"string","description":"Optional protocol filter matched case-insensitively against agent protocols and protocol-index membership. Example: \"jupiter\", \"creative\", \"payments\"."},"capability":{"type":"string","description":"Optional single capability ID filter matched case-insensitively. Example: \"creative:imageGeneration\" or \"jupiter:swap\"."},"capabilities":{"type":"array","items":{"type":"string","description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."},"description":"Optional list of capability IDs. Use capabilityMode=\"all\" when the agent must have every capability."},"capabilityMode":{"type":"string","enum":["any","all"],"description":"How to match the capability/capabilities filters. Defaults to \"any\"."},"hasX402Endpoint":{"type":"boolean","description":"Optional filter for agents that advertise a paid HTTP/x402 endpoint."},"includeInactive":{"type":"boolean","description":"Include inactive agents. Defaults to false."},"limit":{"type":"number","description":"Maximum rows to return. Defaults to 50; hard-capped at 500."},"offset":{"type":"number","description":"Zero-based pagination offset. Defaults to 0. Prefer cursor after the first page when nextCursor is returned."},"cursor":{"type":"string","description":"Opaque pagination cursor returned as pagination.nextCursor by a previous sap_list_all_agents or sap_discover_agents call."},"view":{"type":"string","enum":["compact","full"],"description":"Result shape. Use compact for broad discovery and full for detailed rows. Defaults to compact."},"hydrate":{"type":"boolean","description":"Deprecated compatibility alias. Use view=\"full\" for full rows or view=\"compact\" for directory rows."},"includeProtocolIndexes":{"type":"boolean","description":"Include compact protocol index summaries. Defaults to false for sap_discover_agents and true for sap_list_all_agents."}},"description":"Discover SAP Agents input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_escrow_build_close_transaction","description":"Hosted-safe unsigned builder for close_escrow_v2. The depositor signs locally; the builder refuses to close until balance and pendingAmount are both zero. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58). The depositor signs locally to close the empty escrow."},"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58)."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."}},"description":"Build SAP Escrow V2 Close Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_escrow_build_create_transaction","description":"Hosted-safe unsigned builder for create_escrow_v2. Use this from hosted SAP MCP, preview the result, then call local sap_payments_finalize_transaction with submit:true. The depositorWallet signs locally; keypair bytes never leave the user machine. Defaults to DisputeWindow settlementSecurity=2 and rejects SelfReport/0. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58). This wallet signs locally and funds the escrow; hosted SAP MCP never receives its private key."},"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58). The V2 escrow PDA is derived from this wallet plus nonce."},"pricePerCall":{"type":"string","description":"Price per served call as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"maxCalls":{"type":"string","description":"Maximum number of calls covered by the escrow as a decimal string. Use 0 for unlimited when supported by policy."},"initialDeposit":{"type":"string","description":"Initial escrow deposit as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"expiresAt":{"type":"string","description":"Optional expiry timestamp in unix seconds as a decimal string. Defaults to 0 (no expiry)."},"tokenMint":{"type":"string","description":"Optional SPL payment token mint. Omit/null for native SOL. Use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v for mainnet USDC x402 escrows."},"tokenDecimals":{"type":"number","description":"Payment token decimals. Defaults to 6 when tokenMint is set, otherwise 9 for native SOL."},"settlementSecurity":{"type":"number","enum":[1,2],"description":"V2 settlement security mode. 1=CoSigned (requires coSigner). 2=DisputeWindow (recommended default; requires disputeWindowSlots > 0). SelfReport/0 is deprecated and rejected on-chain."},"disputeWindowSlots":{"type":"string","description":"Required positive dispute window in slots for settlementSecurity=2. Defaults to 2160 (~15 minutes)."},"coSigner":{"type":"string","description":"Required co-signer wallet public key when settlementSecurity=1 (CoSigned)."},"arbiter":{"type":"string","description":"Optional arbiter public key kept for IDL compatibility and dispute workflows."}},"description":"Build SAP Escrow V2 Create Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_escrow_build_deposit_transaction","description":"Hosted-safe unsigned builder for deposit_escrow_v2. Use this when a hosted workflow needs to add funds to an existing V2 escrow, then finalize locally with sap_payments_finalize_transaction. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58). This wallet signs locally and provides the additional escrow funds."},"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58). The escrow PDA is derived from agentWallet, depositorWallet, and nonce."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"amount":{"type":"string","description":"Deposit amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."}},"description":"Build SAP Escrow V2 Deposit Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_escrow_build_finalize_transaction","description":"Hosted-safe unsigned builder for finalize_settlement. Use after the dispute window has elapsed and a pending settlement exists; any payerWallet can locally sign to crank finalization. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"payerWallet":{"type":"string","description":"Wallet public key (base58) that signs and pays transaction fees to finalize the pending settlement."},"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58)."},"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"settlementIndex":{"type":"string","description":"Pending settlement index as a decimal string."}},"description":"Build SAP Escrow V2 Finalize Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_escrow_build_settle_transaction","description":"Hosted-safe unsigned builder for settle_calls_v2. The agent owner wallet signs locally. DisputeWindow escrows create a pending settlement PDA; CoSigned escrows require the coSigner account when configured. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58). This wallet signs locally because settlement releases funds to the serving agent."},"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58) for the escrow being settled."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"callsToSettle":{"type":"string","description":"Number of served calls to settle as a decimal string."},"serviceHash":{"oneOf":[{"type":"array","items":{"type":"number","description":"Service Hash parameter for Build SAP Escrow V2 Settlement Transaction."},"description":"32-byte service/audit hash as byte array."},{"type":"string","description":"32-byte service/audit hash encoded as 64-char hex or base64 string."}],"description":"32-byte service/audit hash. Use a stable hash of the fulfilled paid work."},"coSigner":{"type":"string","description":"Optional co-signer public key for CoSigned escrows when the escrow account requires it."}},"description":"Build SAP Escrow V2 Settlement Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_escrow_build_withdraw_transaction","description":"Hosted-safe unsigned builder for withdraw_escrow_v2. The depositor signs locally and can only withdraw unlocked balance after pending amounts are excluded. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58). Only the depositor can locally sign a withdrawal from this escrow."},"agentWallet":{"type":"string","description":"Agent owner wallet public key (base58). The escrow PDA is derived from agentWallet, depositorWallet, and nonce."},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"amount":{"type":"string","description":"Withdrawal amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."}},"description":"Build SAP Escrow V2 Withdraw Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_estimate_tool_cost","description":"Free pre-call cost estimator (dry-run — no charge, no x402 challenge). Given a tool name, returns the hosted pricing tier, estimated USD cost, and the recommended maxPriceUsd to pass to sap_payments_call_paid_tool. Always call this before any paid tool to avoid silent cap aborts. Set your maxPriceUsd to the estimate × 1.25 to avoid abort-and-retry. This tool is always free and never triggers x402 settlement.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"toolName":{"type":"string","description":"The MCP tool name to estimate, such as jupiter_getQuote, magicblock_swap, or sap_discover_agents."},"arguments":{"type":"object","additionalProperties":{},"description":"Optional tool arguments. For value-action tools, the amount or size may affect the price."}},"required":["toolName"],"additionalProperties":true,"description":"Estimate Tool Cost input schema. Estimate Tool Cost input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_export_agent_oasf","description":"Export a known SAP agent into an OASF-style, machine-readable profile view for agent directories and cross-runtime discovery. This is an exact owner-wallet read: it derives the SAP agent PDA, fetches the current on-chain agent/profile/stats when available, and normalizes identity, protocols, capabilities, pricing, x402 endpoint, metadata links, and trust facts without exposing local wallet paths or keypair bytes. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Required owner wallet public key in base58. Use sap_discover_agents or sap_agent_context first when the wallet is unknown."},"includeSourceFragments":{"type":"boolean","description":"Whether to include redacted source account/profile fragments for debugging directory ingestion. Defaults to false."}},"description":"Export SAP Agent OASF Profile input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fairscale_score","description":"Score an agent with SDK FairScaleRegistry.score. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agent":{"type":"string","description":"Agent PDA or wallet (base58) to score"},"task":{"type":"string","description":"Optional FairScale task type: one of \"defi_execution\", \"trust_focused\", \"work_focused\", \"hiring\""}},"description":"Get FairScale Score input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fairscale_trust_gate","description":"Evaluate an agent with SDK FairScaleRegistry.trustGate. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agent":{"type":"string","description":"Agent PDA or wallet (base58) to evaluate"},"minScore":{"type":"number","description":"Optional minimum trust score threshold"},"requireVerification":{"type":"boolean","description":"Whether verified status is required to pass the gate (default: false)"}},"description":"FairScale Trust Gate input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_attestation","description":"Fetch an attestation PDA by agent PDA and optional attester wallet. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentPda":{"type":"string","description":"Agent PDA (base58) to fetch attestation for"},"attester":{"type":"string","description":"Optional attester wallet (base58) to filter attestation by"}},"description":"Fetch SAP Attestation input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_capability_index","description":"Fetch a SAP capability index by capability ID. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"capabilityId":{"type":"string","description":"Capability ID to fetch the index for (e.g. \"jupiter:swap\")"}},"description":"Fetch Capability Index input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_dispute","description":"Fetch a V2 dispute PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"disputePda":{"type":"string","description":"Dispute PDA (base58) to fetch"}},"description":"Fetch SAP Dispute input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_epoch_page","description":"Fetch an epoch page by session PDA and epoch index. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionPda":{"type":"string","description":"Session PDA (base58) to fetch epoch page for"},"epochIndex":{"type":"number","description":"Zero-based epoch index to fetch"}},"description":"Fetch SAP Epoch Page input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_escrow","description":"Fetch a V1 escrow by escrow PDA, or by agent PDA and optional depositor. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"escrowPda":{"type":"string","description":"Escrow PDA (base58) to fetch directly"},"agentPda":{"type":"string","description":"Agent PDA (base58) — used when escrowPda is omitted"},"depositor":{"type":"string","description":"Optional depositor wallet (base58) to filter by"}},"description":"Fetch SAP Escrow V1 input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_escrow_v2","description":"Fetch a V2 escrow by escrow PDA, or by agent PDA, depositor, and nonce. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"escrowPda":{"type":"string","description":"Escrow V2 PDA (base58) to fetch directly"},"agentPda":{"type":"string","description":"Agent PDA (base58) — used when escrowPda is omitted"},"depositor":{"type":"string","description":"Optional depositor wallet (base58) to filter by"},"nonce":{"type":"number","description":"Escrow nonce (default: 0) — used with agentPda and depositor"}},"description":"Fetch SAP Escrow V2 input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_feedback","description":"Fetch a feedback PDA by agent PDA and optional reviewer wallet. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentPda":{"type":"string","description":"Agent PDA (base58) to fetch feedback for"},"reviewer":{"type":"string","description":"Optional reviewer wallet (base58) to filter feedback by"}},"description":"Fetch SAP Feedback input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_pending_settlement","description":"Fetch a V2 pending settlement PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pendingPda":{"type":"string","description":"Pending settlement PDA (base58) to fetch"}},"description":"Fetch Pending Settlement input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_protocol_index","description":"Fetch a SAP protocol index by protocol ID. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"protocolId":{"type":"string","description":"Protocol ID to fetch the index for (e.g. \"jupiter\", \"adrena\")"}},"description":"Fetch Protocol Index input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_session","description":"Fetch a session ledger by session PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionPda":{"type":"string","description":"Session PDA (base58) to fetch the ledger for"}},"description":"Fetch SAP Session input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_stake","description":"Fetch agent stake by stake PDA or agent PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"stakePda":{"type":"string","description":"Stake PDA (base58) to fetch directly"},"agentPda":{"type":"string","description":"Agent PDA (base58) — used when stakePda is omitted"}},"description":"Fetch SAP Stake input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_subscription","description":"Fetch a subscription by PDA or by agent PDA/subscriber/subId. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"subscriptionPda":{"type":"string","description":"Subscription PDA (base58) to fetch directly"},"agentPda":{"type":"string","description":"Agent PDA (base58) — used when subscriptionPda is omitted"},"subscriber":{"type":"string","description":"Optional subscriber wallet (base58) to filter by"},"subId":{"type":"number","description":"Subscription ID (default: 0) — used with agentPda and subscriber"}},"description":"Fetch SAP Subscription input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_tool","description":"Fetch a tool descriptor by agent PDA and tool name. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentPda":{"type":"string","description":"Agent PDA (base58) that owns the tool descriptor"},"toolName":{"type":"string","description":"Name of the tool descriptor to fetch"}},"description":"Fetch SAP Tool Descriptor input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_tool_category_index","description":"Fetch a SAP tool category index by numeric category. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"type":"number","description":"Numeric tool category ID to fetch the index for"}},"description":"Fetch Tool Category Index input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fetch_vault","description":"Fetch a memory vault by agent PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentPda":{"type":"string","description":"Agent PDA (base58) to fetch the memory vault for"}},"description":"Fetch SAP Vault input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_file_dispute_v2","description":"File a dispute for a V2 pending settlement. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"},"settlementIndex":{"type":"string","description":"Settlement index to dispute (as a decimal string)"},"evidenceHash":{"type":"array","description":"32-byte evidence hash as a byte array, hex string, or base64 string"}},"description":"File SAP Escrow V2 Dispute input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_finalize_settlement_v2","description":"Local-signer-only direct finalization of a V2 pending settlement. Hosted users should call sap_escrow_build_finalize_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"},"settlementIndex":{"type":"string","description":"Settlement index to finalize (as a decimal string)"}},"description":"Finalize SAP Escrow V2 Settlement input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_find_tools_by_category","description":"Find on-chain tool descriptors by SDK tool category name or numeric category. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"type":["string","number"],"description":"Tool category name (e.g. \"defi\", \"infrastructure\") or numeric category ID"},"hydrate":{"type":"boolean","description":"Whether to include full hydrated tool descriptors in results (default: true)"},"limit":{"type":"number","description":"Maximum number of tools to return (default: 50)"}},"description":"Find SAP Tools By Category input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_fund_subscription","description":"Fund a recurring subscription. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"subId":{"type":"string","description":"Subscription ID (as a decimal string, default: 0)"},"amount":{"type":"string","description":"Funding amount in lamports (as a decimal string)"}},"description":"Fund SAP Subscription input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_get_agent","description":"Free exact SAP agent identity read by owner wallet. If omitted, fetches the connected wallet agent. Use this before paid discovery when the wallet is known. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key of the agent owner wallet (base58). If omitted, uses the connected wallet."}},"description":"Get SAP Agent input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_get_agent_profile","description":"Micro-read exact SAP agent profile lookup by owner wallet. Use this for a known agent before read-premium discovery or enrichment. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key of the agent owner wallet (base58)"}},"description":"Get SAP Agent Profile input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_get_agent_stats","description":"Free exact SAP agent stats read by agent PDA. Use after sap_get_agent or sap_get_agent_profile when stats are needed. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentPda":{"type":"string","description":"Agent PDA (base58) to fetch stats for"}},"description":"Get SAP Agent Stats input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_get_global_state","description":"Free compact global SAP registry state read. Use for initial orientation before paid network analytics. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Get SAP Global State input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_get_network_overview","description":"Fetch real network counters from SDK DiscoveryRegistry.getNetworkOverview. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Get SAP Network Overview input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_get_tool_category_summary","description":"Fetch SDK discovery summary across SAP tool categories. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Get SAP Tool Category Summary input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_give_feedback","description":"Create on-chain feedback for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to give feedback for"},"score":{"type":"number","description":"Feedback score (numeric, e.g. 1–5)"},"tag":{"type":"string","description":"Optional feedback tag/category (default: \"general\")"},"commentHash":{"type":"array","description":"Optional 32-byte comment hash as a byte array, hex string, or base64 string"}},"description":"Give SAP Feedback input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_hermes_recent","description":"Free local tool. Returns recent Hermes Agent sessions for context injection. Use this at session start to recall what the agent worked on recently. If Hermes is not installed, returns empty results. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"number","description":"Max sessions. Default 3."}},"description":"Recent Hermes Sessions input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_hermes_search","description":"Free local tool. Searches Hermes Agent session history for relevant past conversations. Enables cross-session context recall. If Hermes is not installed, returns empty results. No x402 charge.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language search query."},"limit":{"type":"number","description":"Max results. Default 5."}},"required":["query"],"description":"Search Hermes Sessions input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_init_stake","description":"Initialize stake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to initialize stake for"},"initialDeposit":{"type":"string","description":"Initial stake deposit amount in lamports (as a decimal string)"}},"description":"Initialize SAP Stake input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_init_vault","description":"Initialize a memory vault for the connected agent. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"vaultNonce":{"type":"array","description":"Vault nonce as a byte array, hex string, or base64 string"}},"description":"Initialize SAP Vault input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_inscribe_memory","description":"Inscribe encrypted memory using SDK VaultModule.inscribe. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":true,"description":"Object containing memory inscription fields: sequence (number), encryptedData (byte array), nonce (byte array), contentHash (32-byte array), and optional totalFragments, fragmentIndex, compression, epochIndex Inscribe SAP Memory input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_is_agent_active","description":"Micro-read exact activity check for an owner wallet. Use this before read-premium discovery when the wallet is known. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key of the wallet to check for an active SAP agent (base58)"}},"description":"Check SAP Agent Active input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_list_agents","description":"Compact SAP agent orientation list. Micro-read when limit <= 20, view is compact, hydrate is false, and includeProtocolIndexes is false; larger or enriched pages are read-premium. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Optional text search across name, description, agentId, wallet, PDA, x402 endpoint, protocols, capabilities, and active plugins. Example: \"XONA\" or \"creative\"."},"wallet":{"type":"string","description":"Optional exact owner wallet public key filter. Use this when a wallet is known; it is the most reliable lookup path."},"agentPda":{"type":"string","description":"Optional exact SAP agent PDA filter."},"protocol":{"type":"string","description":"Optional protocol filter matched case-insensitively against agent protocols and protocol-index membership. Example: \"jupiter\", \"creative\", \"payments\"."},"capability":{"type":"string","description":"Optional single capability ID filter matched case-insensitively. Example: \"creative:imageGeneration\" or \"jupiter:swap\"."},"capabilities":{"type":"array","items":{"type":"string","description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."},"description":"Optional list of capability IDs. Use capabilityMode=\"all\" when the agent must have every capability."},"capabilityMode":{"type":"string","enum":["any","all"],"description":"How to match the capability/capabilities filters. Defaults to \"any\"."},"hasX402Endpoint":{"type":"boolean","description":"Optional filter for agents that advertise a paid HTTP/x402 endpoint."},"includeInactive":{"type":"boolean","description":"Include inactive agents. Defaults to false."},"limit":{"type":"number","description":"Maximum rows to return. Defaults to 20; hard-capped at 500."},"offset":{"type":"number","description":"Zero-based pagination offset. Defaults to 0. Prefer cursor after the first page when nextCursor is returned."},"cursor":{"type":"string","description":"Opaque pagination cursor returned as pagination.nextCursor by a previous sap_list_all_agents or sap_discover_agents call."},"view":{"type":"string","enum":["compact","full"],"description":"Result shape. Use compact for broad discovery and full for detailed rows. Defaults to compact."},"hydrate":{"type":"boolean","description":"Deprecated compatibility alias. Use view=\"full\" for full rows or view=\"compact\" for directory rows."},"includeProtocolIndexes":{"type":"boolean","description":"Include compact protocol index summaries. Defaults to false for sap_discover_agents and true for sap_list_all_agents."}},"description":"List SAP Agents input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_list_all_agents","description":"Paid hosted global SAP agent directory read. Enumerates current on-chain AgentAccount PDAs and supports query, wallet, protocol, capability, x402 endpoint filtering, compact/full views, and cursor pagination. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Optional text search across name, description, agentId, wallet, PDA, x402 endpoint, protocols, capabilities, and active plugins. Example: \"XONA\" or \"creative\"."},"wallet":{"type":"string","description":"Optional exact owner wallet public key filter. Use this when a wallet is known; it is the most reliable lookup path."},"agentPda":{"type":"string","description":"Optional exact SAP agent PDA filter."},"protocol":{"type":"string","description":"Optional protocol filter matched case-insensitively against agent protocols and protocol-index membership. Example: \"jupiter\", \"creative\", \"payments\"."},"capability":{"type":"string","description":"Optional single capability ID filter matched case-insensitively. Example: \"creative:imageGeneration\" or \"jupiter:swap\"."},"capabilities":{"type":"array","items":{"type":"string","description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."},"description":"Optional list of capability IDs. Use capabilityMode=\"all\" when the agent must have every capability."},"capabilityMode":{"type":"string","enum":["any","all"],"description":"How to match the capability/capabilities filters. Defaults to \"any\"."},"hasX402Endpoint":{"type":"boolean","description":"Optional filter for agents that advertise a paid HTTP/x402 endpoint."},"includeInactive":{"type":"boolean","description":"Include inactive agents. Defaults to false."},"limit":{"type":"number","description":"Maximum rows to return. Defaults to 100; hard-capped at 500."},"offset":{"type":"number","description":"Zero-based pagination offset. Defaults to 0. Prefer cursor after the first page when nextCursor is returned."},"cursor":{"type":"string","description":"Opaque pagination cursor returned as pagination.nextCursor by a previous sap_list_all_agents or sap_discover_agents call."},"view":{"type":"string","enum":["compact","full"],"description":"Result shape. Use compact for broad discovery and full for detailed rows. Defaults to compact."},"hydrate":{"type":"boolean","description":"Deprecated compatibility alias. Use view=\"full\" for full rows or view=\"compact\" for directory rows."},"includeProtocolIndexes":{"type":"boolean","description":"Include compact protocol index summaries. Defaults to false for sap_discover_agents and true for sap_list_all_agents."}},"description":"List All SAP Agents input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_market_snapshot","description":"Returns a complete market snapshot: all Adrena market data (leverage, OI, flags), live oracle prices, and pool health (AUM, LP supply) in one call. Includes a 30-second TTL cache — repeated calls within the cache window return cached data without re-fetching. Reduces market data costs by 20x for polling bots.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"forceRefresh":{"type":"boolean","description":"When true, bypasses the cache and fetches fresh data. Default false."}},"additionalProperties":false,"description":"sap market snapshot input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_memory_prune","description":"Free local tool. Removes expired memories and memories with relevance below threshold after decay. Also archives tool call records older than retention period. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"minRelevance":{"type":"number","description":"Minimum decayed relevance to keep. Default 0.05."},"archiveDays":{"type":"number","description":"Archive tool calls older than N days. Default 90."}},"description":"Prune Old Memories input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_memory_recall","description":"Free local tool. Returns the most relevant memories for a category, ordered by decayed relevance. Use this for prompt injection — the agent gets top N memories for the task at hand. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"type":"string","description":"Tool category to recall memories for."},"limit":{"type":"number","description":"Max memories. Default 5."}},"required":["category"],"description":"Recall Agent Memories input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_memory_record","description":"Free local tool. Records a tool call execution in the agent memory database (SQLite FTS5). Auto-call after any paid or significant tool call to build searchable history. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"toolName":{"type":"string","description":"MCP tool name that was called."},"sessionId":{"type":"string","description":"Optional session identifier."},"callerProfile":{"type":"string","description":"Optional signer profile used."},"input":{"type":"string","description":"JSON-serialized tool input."},"output":{"type":"string","description":"JSON-serialized tool output (truncated to 8KB)."},"outcome":{"type":"string","enum":["success","error","partial"],"description":"Execution outcome."},"costUsd":{"type":"number","description":"x402 cost in USD if the tool was paid."},"txSignature":{"type":"string","description":"Solana transaction signature if applicable."},"latencyMs":{"type":"number","description":"Execution latency in milliseconds."}},"required":["toolName","outcome"],"description":"Record Tool Call input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_memory_search","description":"Free local tool. Full-text search (FTS5) across tool call history. Find patterns, failures, and successes by natural language query. No x402 charge.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"FTS5 search query (e.g. \"swap failure slippage\")."},"toolName":{"type":"string","description":"Filter by tool name."},"outcome":{"type":"string","enum":["success","error","partial"],"description":"Filter by outcome."},"limit":{"type":"number","description":"Max results. Default 20, max 100."},"offset":{"type":"number","description":"Pagination offset."},"sort":{"type":"string","enum":["relevance","newest","oldest"],"description":"Sort order. Default relevance."}},"required":["query"],"description":"Search Tool Call History input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_memory_summarize","description":"Free local tool. Creates an LLM-compressed summary memory from tool call patterns. The agent calls this after analyzing search results to persist lessons, patterns, failures, or successes. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"memoryType":{"type":"string","enum":["lesson","pattern","failure","success"],"description":"Type of memory."},"category":{"type":"string","description":"Tool category (e.g. \"jupiter\", \"adrena\", \"premium\")."},"summary":{"type":"string","description":"LLM-compressed summary text. Max 4KB."},"sourceToolCalls":{"type":"string","description":"JSON array of tool_call IDs that were the source."},"relevance":{"type":"number","description":"Initial relevance score 0-1. Default 0.8."},"expiresAt":{"type":"string","description":"ISO 8601 expiry. Null = never expires."}},"required":["memoryType","category","summary"],"description":"Create Agent Memory input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_meteora_build_launchpad_migration","description":"Build an unsigned official Meteora DBC to DAMM v2 migration after the curve reaches its threshold. The destination must be server-allowlisted. Position NFT ephemerals are co-signed; the payer remains the only external signer. Never broadcasts.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"poolAddress":{"type":"string","description":"Original Meteora DBC pool address."},"payer":{"type":"string","description":"Wallet paying for and authorizing migration."},"dammConfig":{"type":"string","description":"Optional expected DAMM v2 config. The gateway always derives the authoritative address from the DBC pool config."},"latestBlockhash":{"type":"string","description":"Fresh Solana blockhash supplied by the caller."}},"required":["poolAddress","payer","latestBlockhash"],"description":"sap meteora build launchpad migration input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_meteora_build_launchpad_trade","description":"Build an unsigned exact-in Meteora buy or sell. Routes automatically between an active DBC curve and its graduated DAMM v2 pool; never broadcasts or signs.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"poolAddress":{"type":"string","description":"Original Meteora DBC pool address. The tool follows migration to DAMM v2 automatically."},"side":{"type":"string","enum":["buy","sell"],"description":"Side parameter for sap meteora build launchpad trade."},"amount":{"type":"string","description":"Exact-in amount as a decimal string in quote units for buy or base-token units for sell."},"amountRaw":{"type":"string","description":"Alternative exact-in amount in base units. Mutually exclusive with amount."},"slippageBps":{"type":"number","minimum":1,"maximum":5000,"description":"Slippage Bps pagination control for sap meteora build launchpad trade."},"owner":{"type":"string","description":"Wallet that signs and pays for the swap."},"latestBlockhash":{"type":"string","description":"Fresh mainnet blockhash supplied by the caller."}},"required":["poolAddress","owner","side","latestBlockhash"],"description":"sap meteora build launchpad trade input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_meteora_launchpad_quote","description":"Quote an exact-in buy or sell on the active Meteora DBC curve or its graduated DAMM v2 pool. Amounts are strings to preserve token precision.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"poolAddress":{"type":"string","description":"Original Meteora DBC pool address. The tool follows migration to DAMM v2 automatically."},"side":{"type":"string","enum":["buy","sell"],"description":"Side parameter for sap meteora launchpad quote."},"amount":{"type":"string","description":"Exact-in amount as a decimal string in quote units for buy or base-token units for sell."},"amountRaw":{"type":"string","description":"Alternative exact-in amount in base units. Mutually exclusive with amount."},"slippageBps":{"type":"number","minimum":1,"maximum":5000,"description":"Slippage Bps pagination control for sap meteora launchpad quote."}},"required":["poolAddress","side"],"description":"sap meteora launchpad quote input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_meteora_launchpad_state","description":"Resolve one launch from its original DBC pool to the currently executable Meteora venue. Returns bonding-curve reserves/capacity or the migrated DAMM v2 pool.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"poolAddress":{"type":"string","description":"Pool Address public key or address used by sap meteora launchpad state."}},"required":["poolAddress"],"description":"sap meteora launchpad state input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_network_stats","description":"Fetch real SAP network statistics using synapse-sap-sdk DiscoveryRegistry and GlobalRegistry.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"detailed":{"type":"boolean","description":"Detailed parameter for Get SAP Network Statistics."}},"additionalProperties":true,"description":"Get SAP Network Statistics input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_next_settlement_index","description":"Read the next V2 settlement index. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"}},"description":"Get Next Settlement Index input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_open_vault_session","description":"Open a vault session by 32-byte session hash. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionHash":{"type":"array","description":"32-byte session hash as a byte array, hex string, or base64 string"}},"description":"Open SAP Vault Session input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_payments_fund_prepaid","description":"Hosted paid tool that creates a prepaid session. The x402 charge for this tool IS the funding deposit. After settlement, creates a prepaid credit session with the specified amount and per-call cost. Returns sessionId, remainingUsd, and expiresAt. Pass the returned sessionId as prepaidSessionId to sap_payments_call_paid_tool for future calls to bypass per-call 402 challenges (x402 Lifecycle Hooks grantAccess pattern).\n\nSAP MCP execution guidance: Intent: local non-custodial payment/signing bridge. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: local sap_payments bridge. It may sign x402 payment payloads or user-approved transactions locally, and must never expose keypair bytes. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"amountUsd":{"type":"number","description":"Total USDC to deposit into the prepaid session. This amount is charged via x402 when calling this tool.","minimum":0.01},"perCallCostUsd":{"type":"number","description":"Cost deducted from the prepaid balance per granted call. Defaults to 0.015 USD.","minimum":0.001},"ttlHours":{"type":"number","description":"Session TTL in hours. Defaults to 24.","minimum":1,"maximum":168}},"required":["amountUsd"],"additionalProperties":false,"description":"Fund Prepaid Payment Session input schema. Intent: local non-custodial payment/signing bridge. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: local sap_payments bridge. It may sign x402 payment payloads or user-approved transactions locally, and must never expose keypair bytes. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_payments_prepaid_balance","description":"FREE local tool that checks the remaining balance of a prepaid session. No x402 charge. Returns the session ID, remaining USD, total USD, per-call cost, expiry, and call count. Use this before calling sap_payments_call_paid_tool with prepaidSessionId to verify the session still has balance.\n\nSAP MCP execution guidance: Intent: local non-custodial payment/signing bridge. Pricing: free; call directly without x402. Routing: local sap_payments bridge. It may sign x402 payment payloads or user-approved transactions locally, and must never expose keypair bytes. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"Prepaid session ID returned by sap_payments_start_prepaid."}},"description":"Check Prepaid Session Balance input schema. Intent: local non-custodial payment/signing bridge. Pricing: free; call directly without x402. Routing: local sap_payments bridge. It may sign x402 payment payloads or user-approved transactions locally, and must never expose keypair bytes. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perp_builder_status","description":"Free readiness check for perps execution. Returns whether SAP MCP has native Adrena perps builders or a configured hosted unsigned transaction builder. Builder availability is not execution approval: agents must dry-run the exact market/side/collateral/leverage before requesting a paid build or showing approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"venue":{"type":"string","description":"Optional perp venue to check, for example \"adrena\" or \"sap-perps-provider\"."}},"additionalProperties":false,"description":"SAP Perp Builder Status input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perp_fear_greed","description":"Fetch the Crypto Fear & Greed Index from alternative.me (free, no API key). Returns current value (0-100), classification (Extreme Fear to Extreme Greed), historical values (yesterday, last week, last month), and a risk_on/risk_off recommendation. Use this as a market sentiment overlay before opening positions. Extreme Fear (<25) can indicate capitulation (contrarian bullish). Extreme Greed (>75) can indicate euphoria (contrarian bearish).\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false,"description":"Fear & Greed Index input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perp_funding_history","description":"Compute the current funding rate for an Adrena perpetual market from on-chain Custody account data. Pass the custodyAddress from sap_perp_markets. Returns current funding rate, cumulative funding, and open interest. Read-only — reads Custody account directly from Solana RPC (on-chain). Note: on-chain data provides the current funding snapshot only, not historical time-series.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"custodyAddress":{"type":"string","description":"Custody account public key (base58). Obtain from sap_perp_markets output — the custodyAddress field."},"market":{"type":"string","description":"Optional market symbol (e.g. \"SOL\", \"BTC\") for display purposes."},"limit":{"type":"number","description":"Maximum number of funding records to return (default 100). On-chain mode returns the current funding snapshot only.","minimum":1,"maximum":1000}},"required":["custodyAddress"],"additionalProperties":false,"description":"SAP Perp Funding History input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perp_liquidation_zones","description":"Compute liquidation zones for all open Adrena perp positions of a wallet. Reads on-chain positions via Solana RPC and calculates liquidation geometry from entry price, leverage, and liquidation price. currentPrice mirrors entryPrice until SAP MCP has a live oracle/feed price decoder. Read-only.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet public key (base58) to compute liquidation zones for."}},"required":["wallet"],"additionalProperties":false,"description":"SAP Perp Liquidation Zones input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perp_markets","description":"List available Adrena perpetual futures markets from Pool/Custody accounts with funding/accounting fields, open interest, leverage caps, and oracle identifiers. Read-only analysis tool. Custody accounts do not expose a ready mark price, so markPrice is null until an oracle/feed decoder or configured Adrena data runtime is available. If markets are empty, treat it as data unavailable, not proof that markets do not exist. SAP MCP exposes execution only when sap_perp_builder_status reports a verified hosted unsigned builder.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"type":"string","description":"Optional market symbol filter (e.g. \"SOL\", \"BTC\"). Empty = all markets."}},"additionalProperties":false,"description":"SAP Perp Markets input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perp_portfolio_risk","description":"Compute an aggregate portfolio risk score from the trade journal and open positions. Returns total exposure, weighted leverage, diversification score, and a risk recommendation (SAFE/MODERATE/HIGH/CRITICAL). Use this to assess overall portfolio health before opening new positions or when monitoring existing ones.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false,"description":"Portfolio Risk Score input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perp_position_info","description":"Read all open perpetual positions on Adrena for a given wallet address. Returns position key, market, side, size, collateral, entry price, leverage, unrealized PnL, and liquidation price from the on-chain Position account. markPrice mirrors entryPrice until SAP MCP has a live oracle/feed price decoder. Read-only — uses Solana RPC with PDA derivation (works on public RPC without getProgramAccounts).\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet public key (base58) to read positions for."}},"required":["wallet"],"additionalProperties":false,"description":"SAP Perp Position Info input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perp_risk_check","description":"Pre-trade dynamic risk gate. Reads the trade journal to compute daily P&L, drawdown, and cooldown status. Returns allowed/disallowed with a risk score (0-1) and recommendation (PROCEED/WAIT/BLOCK). Call this before sap_adrena_build_open_long or sap_adrena_build_open_short. Combines with the static policy engine for full risk management.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"type":"string","description":"Market symbol (e.g. BONK, JITOSOL, WBTC, XAU)."},"side":{"type":"string","description":"Position side.","enum":["long","short"]},"collateralUsd":{"type":"number","description":"Collateral amount in USD.","minimum":0},"leverage":{"type":"number","description":"Leverage multiplier (e.g. 3 for 3x).","minimum":1}},"required":["market","side","collateralUsd","leverage"],"additionalProperties":false,"description":"Perp Risk Check input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perp_signal_score","description":"Aggregate technical signal score (0-1) from RSI, EMA, MACD, Bollinger Bands, price action, and on-chain funding rate. Returns a single score with LONG/SHORT/WAIT recommendation and confidence. Replaces 5-7 individual indicator calls with 1 aggregation call. Use this before opening a position to get a quantitative decision baseline.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58) for DexScreener price data."},"market":{"type":"string","description":"Market symbol for on-chain funding rate (e.g. BONK, JITOSOL, WBTC)."}},"required":["mint","market"],"additionalProperties":false,"description":"Perp Signal Score input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perp_trade_plan","description":"Create a trader-grade perpetual futures plan from a simple intent. Returns notional size, stop risk, reward/risk, liquidation estimate, preflight checklist, and the exact SAP MCP read tools to call next. This is analysis-only: SAP MCP does not expose Adrena execution builders until they are IDL-backed and locally finalizable. Required fields: market, side, collateralAmountUsd, leverage, entryPrice. Get entryPrice from sap_adrena_get_trading_prices or sap_adrena_get_prices before calling this tool.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"type":"string","description":"Perp market symbol or pair, for example SOL-PERP, BTC-PERP, or ETH-PERP."},"side":{"type":"string","description":"Intended direction for the trade.","enum":["long","short"]},"collateralAmountUsd":{"type":"number","description":"Collateral to allocate in USD. This is the margin budget, not notional size.","minimum":0},"leverage":{"type":"number","description":"Requested leverage multiplier. Keep conservative unless user policy explicitly allows more.","minimum":1,"maximum":100},"entryPrice":{"type":"number","description":"Reference entry price in USD used for risk math. Required. Get the current price from sap_adrena_get_trading_prices or sap_adrena_get_prices before calling this tool.","minimum":0},"stopLossPrice":{"type":"number","description":"Optional stop loss price in USD. Strongly recommended before execution.","minimum":0},"takeProfitPrice":{"type":"number","description":"Optional take profit price in USD used to compute reward/risk.","minimum":0},"maxAccountRiskPct":{"type":"number","description":"Maximum account risk percentage allowed by local policy. Default 1%.","minimum":0,"maximum":100},"maxSlippageBps":{"type":"number","description":"Maximum execution slippage in basis points. Default 50 bps.","minimum":0,"maximum":10000},"timeframe":{"type":"string","description":"Trading horizon such as scalp, intraday, swing, or hedge."},"notes":{"type":"string","description":"Optional user notes, catalyst, invalidation thesis, or strategy context."}},"required":["market","side","collateralAmountUsd","leverage","entryPrice"],"additionalProperties":false,"description":"SAP Perp Trade Plan input schema. Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_build_dbc_dev_buy","description":"DEPRECATED alias; use sap_steve_launch_build_dbc_dev_buy. Legacy DBC-only initial-buy builder. New integrations must use sap_meteora_build_launchpad_trade, which supports buy/sell, exact decimal amounts, curve-capacity errors, and automatic routing after DAMM v2 graduation.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"poolAddress":{"type":"string","description":"Pool Address public key or address used by sap perpspad build dbc dev buy."},"owner":{"type":"string","description":"Owner address used by sap perpspad build dbc dev buy."},"amount":{"type":"number","exclusiveMinimum":0,"description":"Amount value to use for sap perpspad build dbc dev buy."},"latestBlockhash":{"type":"string","description":"Latest Blockhash parameter for sap perpspad build dbc dev buy."},"slippageBps":{"type":"number","minimum":1,"maximum":5000,"description":"Slippage Bps pagination control for sap perpspad build dbc dev buy."}},"required":["poolAddress","owner","amount","latestBlockhash"],"description":"sap perpspad build dbc dev buy input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_build_escrow_launch","description":"Build an escrow-backed PerpsPad launch (creator-split Option B): derives the trustless escrow PDA from the NEW token mint, swaps the launch creatorAddress to that PDA, and returns the unsigned config + pool + initialize_escrow transactions. The hourly creator_payout then lands on the escrow PDA, which hard-splits 70% to the agent wallet / 30% to the OOBE treasury on-chain — non-custodial, permissionless. The mint keypair is generated by the CALLER (agent flow) and passed as mintKeypairSecret (64-byte array); the config tx materializes that exact mint. Agent wallet (70% destination) is stored immutably. Sign and send: initialize_escrow FIRST (agent wallet signs), then config, then pool. BUILDER tier.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Coin ticker, A-Z 0-9 only (e.g. MOON)"},"name":{"type":"string","description":"Coin display name"},"agentWallet":{"type":"string","description":"Agent wallet that receives the 70% share (stored immutably as the escrow's distribute destination)"},"mintKeypairSecret":{"type":"array","description":"64-byte secret key of the NEW mint keypair (generated client-side, never persisted server-side). The escrow PDA derives from this mint.","items":{"type":"number","description":"Mint Keypair Secret mint, symbol, or token identifier used by sap perpspad build escrow launch."}},"payerWallet":{"type":"string","description":"Wallet that signs the transactions and pays rent + dev-buy. Usually the same as agentWallet."},"devBuy":{"type":"number","description":"Dev-buy in quote units (SOL 0.1-5, USDC 5-5000)"},"underlying":{"type":"string","description":"Single-perp market backing the coin (e.g. SOL, BTC, OIL). Provide underlying+leverage+direction OR legs."},"leverage":{"type":"number","description":"Leverage of the backing perp (1..market cap)"},"direction":{"type":"string","description":"Side of the backing perp","enum":["long","short"]},"legs":{"type":"array","description":"Optional 2-leg basket instead of single underlying.","items":{"type":"object","properties":{"underlying":{"type":"string","description":"Perp market symbol"},"leverage":{"type":"number","description":"Leg leverage (1..market cap)"},"direction":{"type":"string","description":"Leg side","enum":["long","short"]}},"required":["underlying","leverage","direction"],"description":"Legs parameter for sap perpspad build escrow launch."}},"quote":{"type":"string","description":"Pairing token: SOL (default), USDC, or CUSTOM","enum":["SOL","USDC","CUSTOM"]},"quoteMint":{"type":"string","description":"CUSTOM only: the SPL mint to pair against"},"quoteDecimals":{"type":"number","description":"CUSTOM only: decimals hint"},"imageUrl":{"type":"string","description":"Optional coin image URL"},"websiteUrl":{"type":"string","description":"Optional website URL"},"twitterUrl":{"type":"string","description":"Optional X/Twitter URL"}},"required":["ticker","name","agentWallet","mintKeypairSecret","devBuy"],"description":"sap perpspad build escrow launch input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_build_launch","description":"Build a PerpsPad token launch backed by a leveraged perp: returns the UNSIGNED config + pool transactions. This tool does NOT broadcast anything — sign and send BOTH transactions from the user wallet (pays rent, dev-buy 0.1-5 SOL or 5-5000 USDC, and the 0.01 SOL fee), then poll sap_perpspad_get_launch_status until live. Backing: underlying+leverage+direction (single) or 2-leg basket. Validate leverage against sap_perpspad_get_markets. BUILDER tier.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Coin ticker, A-Z 0-9 only (e.g. MOON)"},"name":{"type":"string","description":"Coin display name"},"creatorAddress":{"type":"string","description":"Creator wallet: signer, payer, buyer, dev-buy recipient"},"devBuy":{"type":"number","description":"Dev-buy in quote units (SOL 0.1-5, USDC 5-5000)"},"underlying":{"type":"string","description":"Single-perp market backing the coin (e.g. SOL, BTC, OIL — see sap_perpspad_get_markets). Provide underlying+leverage+direction OR legs."},"leverage":{"type":"number","description":"Leverage of the backing perp (1..market cap)"},"direction":{"type":"string","description":"Side of the backing perp","enum":["long","short"]},"legs":{"type":"array","description":"Optional 2-leg basket instead of single underlying (e.g. NVDA long + SOL short). Each leg: {underlying, leverage, direction}.","items":{"type":"object","properties":{"underlying":{"type":"string","description":"Perp market symbol"},"leverage":{"type":"number","description":"Leg leverage (1..market cap)"},"direction":{"type":"string","description":"Leg side","enum":["long","short"]}},"required":["underlying","leverage","direction"],"description":"Legs parameter for sap perpspad build launch."}},"quote":{"type":"string","description":"Pairing token: SOL (default), USDC, or CUSTOM","enum":["SOL","USDC","CUSTOM"]},"quoteMint":{"type":"string","description":"CUSTOM only: the SPL mint to pair against (verified server-side)"},"quoteDecimals":{"type":"number","description":"CUSTOM only: decimals hint (server uses on-chain decimals)"},"imageUrl":{"type":"string","description":"Optional coin image URL"},"websiteUrl":{"type":"string","description":"Optional website URL"},"twitterUrl":{"type":"string","description":"Optional X/Twitter URL"}},"required":["ticker","name","creatorAddress","devBuy"],"description":"sap perpspad build launch input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_dbc_config_preview","description":"DEPRECATED alias; use sap_steve_launch_preview_dbc. PRE-LAUNCH DBC economics readout: decodes the exact Meteora DBC config the gateway will sign (scaled per quote decimals) and simulates the dev-buy with the official SDK swap math. Returns migration threshold, start price, curve breakdown, tokens out (supply-capped) and min-out after slippage. Call this instead of estimating locally — the frontend renders these values verbatim.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"quoteMint":{"type":"string","description":"Quote mint address (SOL = wrapped SOL mint, CUSTOM = the verified mint)"},"devBuyAmount":{"type":"number","description":"Human dev-buy amount in quote units (e.g. 1 SOL, 1000 OOBE). 0/omitted = curve facts only."},"slippageBps":{"type":"number","description":"Dev-buy slippage in bps (default 300)"},"quotePriceUsd":{"type":"number","description":"Live USD price of one quote token; required for non-SOL quotes."},"solPriceUsd":{"type":"number","description":"Live SOL/USD reference; required for non-SOL quotes."}},"required":["quoteMint"],"description":"sap perpspad dbc config preview input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_get_launch_status","description":"Poll a PerpsPad launch status by token id. A launch is 'live' once its backing pool confirms on-chain (no callback needed — poll this after signing and sending the launch transactions). Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tokenId":{"type":"string","description":"Token UUID returned by the launch builder"}},"required":["tokenId"],"description":"sap perpspad get launch status input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_get_markets","description":"List PerpsPad supported underlying perp markets with leverage caps (e.g. BTC 1-40x, SOL 1-25x, OIL 1-20x, memecoins 1-3x). Every PerpsPad coin is backed by a leveraged perp position on one of these markets. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"sap perpspad get markets input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_get_stats","description":"PerpsPad platform-wide stats: SOL price, KPIs (live tokens, total, graduated, OI USD, collateral USD, fees, raised USD, burn events, buyback USD), distributions, series, and leaderboards. Optional include filter (comma-separated subset). Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"include":{"type":"string","description":"Optional comma-separated subset: kpis, distributions, series, leaderboards"}},"description":"sap perpspad get stats input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_get_stock_pairs","description":"List stock mints pairable for PerpsPad stock-paired launches (token paired against a tokenized stock). Use with the stock launch builder flow. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"sap perpspad get stock pairs input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_get_token","description":"Fetch one PerpsPad token by UUID or mint address: full metadata including backing perp (underlying, leverage, direction), pool addresses, SOL raised, and migration status. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Token UUID or base58 mint address"}},"required":["id"],"description":"sap perpspad get token input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_get_token_events","description":"Fetch buyback / burn / fee transaction events for one PerpsPad token (its backing perp PnL drives buybacks and burns). Optional kind filter (comma-separated: buyback, external_buyback, burn, claim, creator_payout; default buyback+external_buyback+burn) and paging. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Token UUID or mint address"},"kind":{"type":"string","description":"Comma-separated event kinds filter (e.g. \"buyback,burn\")"},"limit":{"type":"number","description":"Max events per page","minimum":1,"maximum":100},"offset":{"type":"number","description":"Pagination offset","minimum":0}},"required":["id"],"description":"sap perpspad get token events input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_get_tokens","description":"List PerpsPad launched tokens: ticker, name, mint, backing perp (underlying, leverage, direction), quote token, SOL raised, migration status, pool addresses. Sort: newest (default), oldest, or raised (most SOL raised first). Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sort":{"type":"string","description":"Sort order","enum":["newest","oldest","raised"]},"limit":{"type":"number","description":"Max tokens per page","minimum":1,"maximum":100},"offset":{"type":"number","description":"Pagination offset","minimum":0}},"description":"sap perpspad get tokens input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_perpspad_launch_dbc","description":"DEPRECATED alias; use sap_steve_launch_build_dbc. Build a Steve-native direct Meteora DBC launch: create config, initialize pool, transfer creator authority to the 70/30 escrow PDA, then initialize escrow. A requested initial buy is built separately after pool confirmation with sap_steve_launch_build_dbc_dev_buy and a fresh blockhash. Supports SOL, USDC, and validated SPL/Token-2022 quote mints.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Coin ticker, A-Z 0-9 only (e.g. MOON)"},"name":{"type":"string","description":"Coin display name"},"agentWallet":{"type":"string","description":"Agent wallet: receives 70% of claimed trading fees; also the leftover-token receiver"},"payer":{"type":"string","description":"Transaction payer + initial pool creator (signs the returned transactions client-side)"},"devBuyAmount":{"type":"number","description":"Initial buy amount, denominated in the selected quote token"},"devBuySol":{"type":"number","description":"Deprecated alias for devBuyAmount (SOL launches only)"},"latestBlockhash":{"type":"string","description":"FRESH mainnet blockhash fetched by the CALLER (getLatestBlockhash) — guarantees signability from the client. Required."},"metadataUri":{"type":"string","description":"Exact permanent HTTPS URI of the Metaplex JSON (for example an IPFS/Arweave gateway URL). Preferred for production launches."},"metadataBaseUrl":{"type":"string","description":"HTTPS base URL used to build the Metaplex JSON URI"},"underlying":{"type":"string","description":"Perp backing: Phoenix market symbol (e.g. SOL, TSLA, OIL). A-Z 0-9, 1-12 chars. REQUIRED together with leverage and direction (all-or-nothing)."},"leverage":{"type":"number","description":"Perp backing: integer leverage 1-10. REQUIRED together with underlying and direction (all-or-nothing)."},"direction":{"type":"string","enum":["long","short"],"description":"Perp backing: long|short. REQUIRED together with underlying and leverage (all-or-nothing)."},"quote":{"type":"string","description":"Quote token: SOL, USDC, or CUSTOM with quoteMint. Custom SPL/Token-2022 mints are validated on-chain."},"quoteMint":{"type":"string","description":"Required when quote=CUSTOM: SPL or Token-2022 mint with 6-9 decimals and no unsupported transfer behavior."},"quotePriceUsd":{"type":"number","description":"Live USD price of one quote token. Required for non-SOL quotes."},"solPriceUsd":{"type":"number","description":"Live SOL/USD reference. Required for non-SOL quotes."}},"required":["ticker","name","agentWallet","payer","latestBlockhash"],"description":"sap perpspad launch dbc input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_build_cancel_all","description":"Build an unsigned cancel all orders transaction for a Phoenix market. Returns transactionBase64.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader authority public key"},"symbol":{"type":"string","description":"Market symbol"},"traderPdaIndex":{"type":"number","minimum":0,"description":"Trader PDA Index parameter for sap phoenix build cancel all."},"traderSubaccountIndex":{"type":"number","minimum":0,"description":"Trader Subaccount Index parameter for sap phoenix build cancel all."}},"required":["authority","symbol"],"description":"sap phoenix build cancel all input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_build_cancel_orders","description":"Build an unsigned cancel orders by ID transaction for Phoenix. Returns transactionBase64.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader authority public key"},"symbol":{"type":"string","description":"Market symbol"},"orders":{"type":"array","description":"Array of { priceInTicks, orderSequenceNumber } objects"},"traderPdaIndex":{"type":"number","minimum":0,"description":"Trader PDA Index parameter for sap phoenix build cancel orders."},"traderSubaccountIndex":{"type":"number","minimum":0,"description":"Trader Subaccount Index parameter for sap phoenix build cancel orders."}},"required":["authority","symbol","orders"],"description":"sap phoenix build cancel orders input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_build_cancel_stop_loss","description":"Build an unsigned cancel stop loss transaction for Phoenix. Returns transactionBase64.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader authority public key"},"symbol":{"type":"string","description":"Market symbol"},"executionDirection":{"type":"string","enum":["greater-than","less-than"],"description":"Trigger direction"},"traderPdaIndex":{"type":"number","minimum":0,"description":"Trader PDA Index parameter for sap phoenix build cancel stop loss."},"traderSubaccountIndex":{"type":"number","minimum":0,"description":"Trader Subaccount Index parameter for sap phoenix build cancel stop loss."}},"required":["authority","symbol","executionDirection"],"description":"sap phoenix build cancel stop loss input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_build_deposit","description":"Build an unsigned USDC deposit transaction into a Phoenix trader account. Returns transactionBase64 for browser approval. Requires an ACTIVATED trader: check sap_phoenix_get_trader_state first — if state is \"frozen\" or depositCollateral.immediate=false, run the activation flow (sap_phoenix_build_onboard_trader → sign → sap_phoenix_submit_onboard_trader) before depositing, or this build simulates CapabilityDenied.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader authority public key (base58)"},"amountUsdc":{"type":"string","description":"Amount in raw USDC units (1 USDC = 1000000)"},"traderPdaIndex":{"type":"number","minimum":0,"description":"Trader PDA Index parameter for sap phoenix build deposit."},"traderSubaccountIndex":{"type":"number","minimum":0,"description":"Trader Subaccount Index parameter for sap phoenix build deposit."}},"required":["authority","amountUsdc"],"description":"sap phoenix build deposit input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_build_onboard_trader","description":"Build Phoenix trader ACTIVATION instructions (enables all six capabilities incl. deposit). ALWAYS required after register — a RegisterTrader-only account is frozen and every deposit simulates CapabilityDenied. Fetches instructions from Phoenix's build-register-ixs API (the only source of the OnboardTraderDelegated instruction). The browser assembles and signs them, then MUST submit via sap_phoenix_submit_onboard_trader — never via plain RPC, the onboarder signature exists only inside Phoenix's send-register-ixs.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"traderAuthority":{"type":"string","description":"Trader authority wallet public key (base58, FULL 44 chars)."},"txFeePayer":{"type":"string","description":"Wallet paying fees and rent (base58). Usually the same as traderAuthority. Must NOT be the Phoenix onboarder."},"maxPositions":{"type":"number","description":"Max positions for registration (32-128, default 128). Only used when the account still needs RegisterTrader.","minimum":32,"maximum":128}},"required":["traderAuthority","txFeePayer"],"description":"sap phoenix build onboard trader input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_build_place_conditional_order","description":"Build an unsigned Phoenix conditional order transaction (TP/SL bracket). Returns transactionBase64.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader authority public key"},"symbol":{"type":"string","description":"Market symbol"},"lessTriggerPrice":{"type":"string","description":"Less-than trigger price in ticks"},"lessTradeSide":{"type":"string","enum":["bid","ask"],"description":"Less Trade Side parameter for sap phoenix build place conditional order."},"greaterTriggerPrice":{"type":"string","description":"Greater-than trigger price in ticks"},"greaterTradeSide":{"type":"string","enum":["bid","ask"],"description":"Greater Trade Side parameter for sap phoenix build place conditional order."},"sizePercent":{"type":"number","minimum":1,"maximum":100,"description":"Size Percent parameter for sap phoenix build place conditional order."},"traderPdaIndex":{"type":"number","minimum":0,"description":"Trader PDA Index parameter for sap phoenix build place conditional order."},"traderSubaccountIndex":{"type":"number","minimum":0,"description":"Trader Subaccount Index parameter for sap phoenix build place conditional order."}},"required":["authority","symbol"],"description":"sap phoenix build place conditional order input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_build_place_limit_order","description":"Build an unsigned Phoenix limit order transaction. Pass authority, symbol, side, priceUsd (human limit price, e.g. \"106.50\"), baseUnits (human size). Raw priceInTicks/numBaseLots also accepted. Returns transactionBase64 for browser approval. Builder fee applies.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader authority public key (base58)"},"symbol":{"type":"string","description":"Market symbol (e.g. SOL)"},"side":{"type":"string","enum":["bid","ask"],"description":"Order side: bid (buy) or ask (sell)"},"priceUsd":{"type":"string","description":"Human limit price in USD (e.g. \"106.50\")"},"limitPrice":{"type":"string","description":"Alias of priceUsd"},"price":{"type":"string","description":"Alias of priceUsd"},"priceInTicks":{"type":"string","description":"Limit price in ticks (raw integer; overrides priceUsd)"},"baseUnits":{"type":"string","description":"Human size in base units (e.g. \"0.01\")"},"size":{"type":"string","description":"Alias of baseUnits"},"numBaseLots":{"type":"string","description":"Raw base lots (overrides baseUnits)"},"clientOrderId":{"type":"string","description":"Client order ID (unique per trader); optional"},"reduceOnly":{"type":"boolean","description":"Reduce-only: order can only decrease an existing position (OrderFlags.ReduceOnly)"},"holderTier":{"type":"string","enum":["bronze","silver","gold","platinum"],"description":"Caller $STEVE holder tier — lowers the builder fee (bronze −10%, silver −20%, gold −30%, platinum −50%). Omit for the standard fee."},"traderPdaIndex":{"type":"number","minimum":0,"description":"Trader PDA Index parameter for sap phoenix build place limit order."},"traderSubaccountIndex":{"type":"number","minimum":0,"description":"Trader Subaccount Index parameter for sap phoenix build place limit order."}},"required":["authority","symbol","side"],"description":"sap phoenix build place limit order input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_build_place_market_order","description":"Build an unsigned Phoenix market order transaction. Pass authority, symbol, side (bid=buy, ask=sell), and baseUnits (human size, e.g. \"0.01\" SOL). numBaseLots raw lots also accepted. Returns transactionBase64 for browser approval. Builder fee applies.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader authority public key"},"symbol":{"type":"string","description":"Market symbol"},"side":{"type":"string","enum":["bid","ask"],"description":"Order side"},"baseUnits":{"type":"string","description":"Human-readable size in base units (e.g. \"0.01\" = 0.01 SOL)"},"size":{"type":"string","description":"Alias of baseUnits"},"numBaseLots":{"type":"string","description":"Raw base lots (advanced; overrides baseUnits)"},"reduceOnly":{"type":"boolean","description":"Reduce-only: order can only decrease an existing position (OrderFlags.ReduceOnly)"},"holderTier":{"type":"string","enum":["bronze","silver","gold","platinum"],"description":"Caller $STEVE holder tier — lowers the builder fee (bronze −10%, silver −20%, gold −30%, platinum −50%). Omit for the standard fee."},"traderPdaIndex":{"type":"number","minimum":0,"description":"Trader PDA Index parameter for sap phoenix build place market order."},"traderSubaccountIndex":{"type":"number","minimum":0,"description":"Trader Subaccount Index parameter for sap phoenix build place market order."}},"required":["authority","symbol","side"],"description":"sap phoenix build place market order input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_build_place_stop_loss","description":"Build an unsigned Phoenix stop loss order transaction. Returns transactionBase64.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader authority public key"},"symbol":{"type":"string","description":"Market symbol"},"triggerPrice":{"type":"string","description":"Trigger price in ticks (raw integer)"},"tradeSide":{"type":"string","enum":["bid","ask"],"description":"Trade side"},"executionDirection":{"type":"string","enum":["greater-than","less-than"],"description":"Trigger direction"},"orderKind":{"type":"string","enum":["ioc","limit"],"description":"Order kind (default ioc)"},"slippageBps":{"type":"number","minimum":0,"maximum":10000,"description":"Slippage Bps pagination control for sap phoenix build place stop loss."},"traderPdaIndex":{"type":"number","minimum":0,"description":"Trader PDA Index parameter for sap phoenix build place stop loss."},"traderSubaccountIndex":{"type":"number","minimum":0,"description":"Trader Subaccount Index parameter for sap phoenix build place stop loss."}},"required":["authority","symbol","triggerPrice","tradeSide","executionDirection"],"description":"sap phoenix build place stop loss input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_build_register_trader","description":"Create a Phoenix trader account (RegisterTrader only — the account stays FROZEN with NO deposit capability until activation). Full onboarding = registration + activation: 1) sap_phoenix_build_register_trader → preview/sign/submit locally (creates the account); 2) sap_phoenix_build_onboard_trader + sap_phoenix_submit_onboard_trader (Phoenix co-signs, enables deposit/withdraw/trade); 3) verify with sap_phoenix_get_trader_state — state must leave \"frozen\" and depositCollateral must be immediate before sap_phoenix_build_deposit can succeed.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader wallet authority public key (base58). REQUIRED — pass the user's wallet address."},"maxPositions":{"type":"number","description":"Maximum positions (default 8)","minimum":1,"maximum":64}},"required":["authority"],"description":"sap phoenix build register trader input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_build_withdraw","description":"Build an unsigned USDC withdraw transaction from a Phoenix trader account. Returns transactionBase64.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader authority public key"},"amountUsdc":{"type":"string","description":"Amount in raw USDC units"},"traderPdaIndex":{"type":"number","minimum":0,"description":"Trader PDA Index parameter for sap phoenix build withdraw."},"traderSubaccountIndex":{"type":"number","minimum":0,"description":"Trader Subaccount Index parameter for sap phoenix build withdraw."}},"required":["authority","amountUsdc"],"description":"sap phoenix build withdraw input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_candles","description":"Get OHLCV candles for a Phoenix market. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol"},"timeframe":{"type":"string","description":"Candle timeframe (e.g. 1m, 5m, 1h, 1d)"},"limit":{"type":"number","description":"Max candles (default 100)","minimum":1,"maximum":1000}},"required":["symbol","timeframe"],"description":"sap phoenix get candles input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_cross_chain_quote","description":"Get a cross-chain deposit quote from Relay.link. Generates a deposit address that the user sends funds to (from Ethereum, Base, Arbitrum, or any supported EVM chain) and receives USDC on Solana automatically. The user just sends a normal transfer to the deposit address — no wallet connection or bridge UI needed. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"recipient":{"type":"string","description":"Solana wallet address (base58) that will receive the USDC. This is the user's wallet on Solana."},"originChainId":{"type":"number","description":"Origin chain ID. Supported: 1 (Ethereum), 10 (Optimism), 8453 (Base), 42161 (Arbitrum), 137 (Polygon), 56 (BSC), 43114 (Avalanche). Default: 1 (Ethereum).","enum":[1,10,56,137,42161,8453,43114,81457,534352,59144],"default":1},"originCurrency":{"type":"string","description":"Origin token address. Use 0x0000000000000000000000000000000000000000 for native ETH/gas token, or the ERC20 contract address (e.g. USDC). Default: native (0x000...000).","default":"0x0000000000000000000000000000000000000000"},"amount":{"type":"string","description":"Amount in smallest unit (wei for ETH, or raw token units for ERC20). Example: 100000000000000000 = 0.1 ETH. Required."},"tradeType":{"type":"string","enum":["EXACT_INPUT","EXPECTED_OUTPUT"],"description":"EXACT_INPUT = amount is what you send. EXPECTED_OUTPUT = amount is what you want to receive. Default: EXACT_INPUT."}},"required":["recipient","originChainId","amount"],"description":"sap phoenix get cross chain quote input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_deposit_status","description":"Check the status of a cross-chain deposit via Relay.link. Returns the current status (pending/success/failed/refunded), transaction hashes, and chain IDs. Use the requestId from sap_phoenix_get_cross_chain_quote. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"requestId":{"type":"string","description":"Request ID from the cross-chain quote response. Required."}},"required":["requestId"],"description":"sap phoenix get deposit status input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_exchange","description":"Get Phoenix exchange snapshot: all markets, status, configuration. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"sap phoenix get exchange input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_funding_history","description":"Get Phoenix funding rate history for a symbol. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol"}},"required":["symbol"],"description":"sap phoenix get funding history input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_market","description":"Get Phoenix market metadata for a symbol (e.g. SOL, BTC). Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol (e.g. SOL, BTC, ETH)"}},"required":["symbol"],"description":"sap phoenix get market input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_market_fills","description":"Get recent fills for a Phoenix market. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol"},"limit":{"type":"number","description":"Max fills (default 100)","minimum":1,"maximum":500}},"required":["symbol"],"description":"sap phoenix get market fills input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_market_stats","description":"Get Phoenix market stats history (24h volume, OI, funding). Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol"},"limit":{"type":"number","description":"Max data points (default 100)","minimum":1,"maximum":1000}},"required":["symbol"],"description":"sap phoenix get market stats input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_markets","description":"List all Phoenix perp markets WITH live stats merged: symbol, mark price, oracle price, 24h volume, open interest, funding rates, leverage tiers. Sorted data source for opportunity ranking and dashboards. Free read — stats come from one batched /v1/markets/stats/latest call.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"sap phoenix get markets input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_orderbook","description":"Get Phoenix orderbook for a symbol. Use depth to limit the number of bid/ask levels returned (default 20, max 100). Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol (e.g. SOL)"},"depth":{"type":"number","description":"Number of bid/ask levels to return (default 20, max 100)","minimum":1,"maximum":100}},"required":["symbol"],"description":"sap phoenix get orderbook input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_supported_chains","description":"List all chains supported by Relay.link for cross-chain deposits to Solana. Returns chain IDs, names, and native currency info. Use this to show users which chains they can deposit from. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"sap phoenix get supported chains input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_trader","description":"Get Phoenix trader state (positions, orders, collateral). You MUST provide the trader's wallet address (base58 public key). If querying your own positions, use your own wallet address. Free read.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader wallet authority public key (base58). This is REQUIRED — the tool will fail without it."}},"required":["authority"],"description":"sap phoenix get trader input schema. Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_trader_pnl","description":"Get Phoenix trader PnL history. You MUST provide the trader's wallet address (base58 public key). Free read.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader wallet authority public key (base58). REQUIRED."}},"required":["authority"],"description":"sap phoenix get trader pnl input schema. Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_get_trader_state","description":"Get Phoenix trader state snapshot (subaccounts, positions, collateral). You MUST provide the trader's wallet address (base58 public key). Free read.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"authority":{"type":"string","description":"Trader wallet authority public key (base58). REQUIRED."},"traderPdaIndex":{"type":"number","description":"Trader PDA index (default 0)","minimum":0}},"required":["authority"],"description":"sap phoenix get trader state input schema. Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_phoenix_submit_onboard_trader","description":"Submit a user-signed Phoenix activation transaction through Phoenix's co-signing API (send-register-ixs): Phoenix validates it, adds the onboarder signature, simulates, verifies the onboarder pays nothing, and broadcasts. Pair with sap_phoenix_build_onboard_trader. After success verify with sap_phoenix_get_trader_state (state leaves \"frozen\", depositCollateral.immediate=true) before building deposits.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"transaction":{"type":"string","description":"Base64-encoded transaction assembled from build_onboard_trader instructions and signed by the fee payer."},"traderAuthority":{"type":"string","description":"Trader authority wallet public key (base58) — same as used in build_onboard_trader."},"txFeePayer":{"type":"string","description":"Fee payer wallet public key (base58) — same as used in build_onboard_trader."}},"required":["transaction","traderAuthority","txFeePayer"],"description":"sap phoenix submit onboard trader input schema. Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_activate_session","description":"Activates a pending premium session with a verified x402/pay.sh payment receipt. This tool is FREE — it does not charge x402. The paymentReceipt must be the actual Solana transaction signature (tx hash) from the x402 facilitator settlement, NOT \"pending\" or any placeholder. Flow: 1) sap_premium_session_start creates a pending session (free). 2) The x402 challenge is settled via the local bridge (sap_payments_call_paid_tool or direct facilitator payment) — the facilitator returns a tx signature. 3) Pass that tx signature as paymentReceipt to this tool. Do NOT pass \"pending\" — it will always be rejected and waste a tool call.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"Premium session id returned by sap_premium_session_start."},"paymentReceipt":{"type":"string","description":"The Solana transaction signature (tx hash) from the x402 facilitator settlement. NOT \"pending\" — must be the real tx hash like \"3ozKaRujGGymu3s9q67qfwfG21s2BpjJQ5zEEFCWen1u...\". Get this by settling the payment challenge first, then pass the returned signature here."},"payerAddress":{"type":"string","description":"Optional Solana payer public key for audit binding."}},"required":["sessionId","paymentReceipt"],"additionalProperties":false,"description":"Activate Premium Session input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_close_session","description":"Closes an active premium session, stopping all stream and webhook delivery. Use this when the buyer wants to stop delivery before the unit quota is exhausted. No refund is issued — the session is simply closed.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"The active premium session id to close."},"reason":{"type":"string","description":"Human-readable reason for closing the session."}},"required":["sessionId","reason"],"additionalProperties":false,"description":"Close Premium Session input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_metrics","description":"Returns a point-in-time metrics snapshot of the premium subsystem: active/pending/blocked sessions, total events delivered, estimated revenue, active streams, active webhooks, and provider health status. Use this for monitoring and operational insights.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false,"description":"Premium Subsystem Metrics input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_plugin_catalog","description":"Free premium capability discovery. Lists SAP MCP stream, webhook, and premium tool plugin manifests with strict schemas, x402/pay.sh pricing contracts, provider readiness, and private enterprise plugin loader guidance. This tool never returns fake live data.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"includeSchemas":{"type":"boolean","description":"When true, include full input/output JSON Schemas for every capability so agent runtimes can validate calls before payment."}},"additionalProperties":false,"description":"Premium Plugin Catalog input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_plugin_template","description":"Free premium plugin manifest builder. Generates a strict, data-only stream/webhook/tool manifest template that teams can place in a private plugin subrepo, validate, plug, and unplug without executing untrusted code or exposing provider secrets.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pluginId":{"type":"string","description":"Lowercase premium plugin id, for example sap-premium-custom-alpha. This becomes the manifest id."},"capabilityId":{"type":"string","description":"Lowercase capability id, for example custom.signal.stream or custom:tool:score."},"capabilityType":{"type":"string","enum":["stream","webhook","tool"],"description":"Capability type to template: stream, webhook, or tool."},"title":{"type":"string","description":"Human-readable plugin and capability title shown to agent runtimes."},"description":{"type":"string","description":"Full agent-facing description explaining the use case, provider boundary, pricing model, and what the capability delivers."},"publisher":{"type":"string","description":"Publisher name used for enterprise review and marketplace metadata."},"visibility":{"type":"string","enum":["public","private","enterprise"],"description":"Discovery visibility. Use private or enterprise for non-public provider contracts."},"unitPriceUsd":{"type":"number","description":"Suggested x402/pay.sh unit price in USD. Agents should see pricing before activation."},"providerEnv":{"type":"array","description":"Uppercase provider env var names required to make the capability live. Do not pass secret values.","items":{"type":"string","description":"Environment variable name, for example SAP_MCP_PREMIUM_CUSTOM_STREAM_URL."}}},"required":["pluginId","capabilityId","capabilityType"],"additionalProperties":false,"description":"Build Premium Plugin Template input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_session_start","description":"Free premium session planner. Creates a bounded session plan for a stream, webhook, or premium tool capability before any x402 charge. Use it to validate plugin id, capability id, requested units, TTL, provider readiness, and estimated price; paid activation happens only on the delivery rail.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pluginId":{"type":"string","description":"Premium plugin id from sap_premium_plugin_catalog, for example sap-premium-market-data."},"capabilityId":{"type":"string","description":"Capability id from sap_stream_catalog or sap_webhook_catalog, for example jupiter.quote.delta."},"capabilityType":{"type":"string","enum":["stream","webhook","tool"],"description":"Capability type being planned: stream, webhook, or tool."},"requestedUnits":{"type":"number","description":"Requested paid units for the session. Streams use minutes, webhooks use events, tools use sessions."},"ttlSeconds":{"type":"number","description":"How long the unpaid planning object should remain valid. Clamped between 60 and 3600 seconds."},"maxPriceUsd":{"type":"number","description":"Optional buyer budget cap in USD. Agents should compare this to estimatedPriceUsd before paid activation."},"consumer":{"type":"string","description":"Optional runtime, agent id, wallet, or application identifier requesting the premium session plan."}},"required":["pluginId","capabilityId","capabilityType"],"additionalProperties":false,"description":"Plan Premium Session input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_session_status","description":"Free premium session status lookup. Returns the current planning status for a premium stream/webhook/tool session id, or lists recent in-memory session plans when no id is provided. It does not expose secrets or stream payload data.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"Optional premium session id returned by sap_premium_session_start."}},"additionalProperties":false,"description":"Premium Session Status input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_stream_flush","description":"Flush all buffered premium stream events for a session with cursor-based pagination. Unlike sap_premium_stream_poll (which returns a small batch for periodic polling), flush returns all events up to the cursor limit in a single call. Use this when an agent reconnects after a disconnection and needs to catch up on missed events. The nextCursor can be used as sinceEventId in subsequent calls to fetch only newer events.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"Active or recently active premium session id whose buffered events should be flushed."},"sinceEventId":{"type":"string","description":"Optional event id cursor. Only events delivered after this event id are returned. Use nextCursor from the previous flush call."},"limit":{"type":"number","description":"Maximum number of events to return. Default: 50, max: 500."},"eventType":{"type":"string","description":"Optional event type filter."}},"required":["sessionId"],"additionalProperties":false,"description":"Flush Premium Stream Events input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_stream_poll","description":"Long-poll buffered premium stream events for an active session. Returns events that have been delivered to the server-side event buffer since the last poll. This is the MCP-compatible alternative to holding open an SSE connection — call this tool periodically to drain the event buffer. This tool is transport-agnostic: because it is a standard MCP tool call (request/response), it works over any MCP transport including stdio, streamable-http, and WebSocket-based MCP transports. There is no need for a separate WebSocket endpoint — this poll tool IS the WebSocket-compatible consumption path. Events are returned oldest-first. Use the sinceEventId cursor from the last poll to fetch only new events. If no events are available, the tool will wait up to waitMs (default 15s, max 30s) for events to arrive before returning an empty array — this gives near-real-time delivery without repeated polling. Set waitMs=0 for instant return.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"Active premium session id whose stream events should be polled."},"sinceEventId":{"type":"string","description":"Optional event id cursor. Only events delivered after this event id are returned. Use the last event id from the previous poll to paginate."},"maxEvents":{"type":"number","description":"Maximum number of events to return in a single poll. Default: 10, max: 100."},"waitMs":{"type":"number","description":"Long-poll wait timeout in milliseconds. If no events are available, the tool waits up to this duration for events to arrive before returning. Default: 15000 (15s). Max: 30000 (30s). Set to 0 for instant return.","minimum":0,"maximum":30000},"eventType":{"type":"string","description":"Optional event type filter. Only events matching this type are returned."}},"required":["sessionId"],"additionalProperties":false,"description":"Poll Premium Stream Events input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_validate_plugin_manifest","description":"Free manifest validator for SAP MCP premium plugins. Validates ids, semver, descriptions, strict input/output schemas, x402/pay.sh pricing policies, and delivery contracts. It never executes plugin code or loads provider secrets.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"manifest":{"type":"object","additionalProperties":true,"description":"Premium plugin manifest candidate to validate before publishing or loading from a private plugin directory."}},"required":["manifest"],"additionalProperties":false,"description":"Validate Premium Plugin Manifest input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_webhook_register","description":"Registers an HTTPS webhook target for signed premium event delivery. The session must be active (activated via sap_premium_activate_session). The target URL must be HTTPS, reachable, and not a private/localhost endpoint in production. Events are filtered to the exact event ids listed in the request.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"Active premium session id."},"targetUrl":{"type":"string","description":"HTTPS webhook endpoint owned by the buyer. Localhost and private network URLs are rejected in production."},"events":{"type":"array","minItems":1,"items":{"type":"string","description":"Events parameter for Register Premium Webhook."},"description":"Exact event ids to deliver, from the capability delivery contract."},"signingPublicKey":{"type":"string","description":"Optional buyer public key for webhook signature verification."}},"required":["sessionId","targetUrl","events"],"additionalProperties":false,"description":"Register Premium Webhook input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_webhook_relay","description":"Registers a buffer-only webhook subscription for an active premium session. Unlike sap_premium_webhook_register, this does not require a public HTTPS endpoint — events matching the subscription are buffered server-side in the event store and the agent consumes them via sap_premium_stream_poll or sap_premium_stream_flush. Use this when the agent runs locally or behind NAT and cannot expose a publicly reachable HTTPS callback URL. The session must be active (activated via sap_premium_activate_session). Events are filtered to the exact event ids listed in the request.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"Active premium session id to buffer webhook events for."},"events":{"type":"array","minItems":1,"items":{"type":"string","description":"Event id to buffer, from the capability delivery contract."},"description":"Exact event ids to buffer and deliver via poll/flush. At least one event id is required."},"filters":{"type":"object","additionalProperties":true,"description":"Optional narrow filters applied to the provider subscription, forwarded to the delivery loop."}},"required":["sessionId","events"],"additionalProperties":false,"description":"Register Premium Webhook Relay (Buffer-Only) input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_webhook_relay_status","description":"Returns the status of buffer-only (relay) webhook subscriptions for a session, including the relay configuration, buffered event count, and per-subscription delivery stats. Use this to check how many events are waiting in the server-side buffer before calling sap_premium_stream_poll or sap_premium_stream_flush to consume them.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"Premium session id to inspect relay subscriptions and buffered event counts for."}},"required":["sessionId"],"additionalProperties":false,"description":"Premium Webhook Relay Status input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_webhook_status","description":"Returns the current status of a webhook subscription, including delivery stats and recent delivery attempt records with HTTP status codes and signatures.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"subscriptionId":{"type":"string","description":"Webhook subscription id returned by sap_premium_webhook_register."},"includeDeliveries":{"type":"boolean","description":"When true, include recent delivery attempt records. Default: true."}},"required":["subscriptionId"],"additionalProperties":false,"description":"Premium Webhook Status input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_premium_webhook_unregister","description":"Deactivates and removes a webhook subscription. No further events will be delivered to the target URL.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"subscriptionId":{"type":"string","description":"Webhook subscription id returned by sap_premium_webhook_register."}},"required":["subscriptionId"],"additionalProperties":false,"description":"Unregister Premium Webhook input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_prepare_action","description":"Free intent-level preflight planner for SAP MCP. Call before paid calls, swaps, registry writes, escrow, identity updates, external x402 calls, premium streams, or transaction finalization. It returns the correct hosted/local route, fresh-data requirements, max-price guidance, confirmation policy, retry rules, proof-tape shape, and forbidden actions without charging x402.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"intent":{"type":"string","enum":["connection","paid-call","registry-write","update-agent","transaction-finalize","escrow","identity","swap","external-x402","premium-stream","balance","discovery","general"],"description":"Closest user intent. Use registry-write for agent registration, update-agent for profile/image updates, swap for token swaps, escrow for SAP Escrow V2, external-x402 for third-party x402 agents, and premium-stream for premium plugin streams/webhooks."},"toolName":{"type":"string","description":"Exact hosted or local tool name being planned, such as jupiter_getOrder, sap_update_agent, sap_create_escrow_v2, or sap_payments_register_agent."},"userGoal":{"type":"string","description":"Short user-facing goal in natural language, used only to tailor the plan and proof-tape shape."},"maxPriceUsd":{"type":"number","description":"Optional user or policy x402 spend cap for this planned action. Agents should normally estimate first and use estimate × 1.25."},"estimatedNotionalUsd":{"type":"number","description":"Optional estimated trade, escrow, or value-moving notional in USD for confirmation-policy guidance."},"hasUnsignedTransaction":{"type":"boolean","description":"Set true when a hosted builder already returned unsigned transaction bytes that should be finalized locally."},"hasSubmittedSignature":{"type":"boolean","description":"Set true when a transaction signature was already submitted. The planner will route to verification before any retry."}},"description":"Prepare SAP MCP Action input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_prepare_mandate","description":"Free AP2-style mandate planner for SAP MCP agent commerce. It converts a user intent into a bounded, unsigned planning artifact with spend limits, tool/protocol allow-lists, freshness rules, confirmation thresholds, proof-tape fields, and the correct hosted/local signing route. This tool does not sign, submit, authorize payment, or replace wallet confirmation.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"intent":{"type":"string","description":"Human intent to bind, for example \"check solking.sol\", \"register Solking\", \"swap 0.05 SOL to USDC\", or \"open a $10 BONK short\"."},"operationType":{"type":"string","enum":["paid-tool","swap","perp-trade","registry-write","escrow","external-x402","premium-stream","transaction-finalize","other"],"description":"Closest operation family. Use registry-write for SAP agent registration/update, escrow for SAP Escrow V2, and transaction-finalize when an unsigned hosted transaction is already available."},"profile":{"type":"string","description":"Optional local SAP profile name the user expects the runtime to use. Do not guess wallet/keypair paths from this value."},"wallet":{"type":"string","description":"Optional expected owner/signer wallet public key in base58. Used only as a public constraint, never as a keypair path."},"maxX402Usd":{"type":"number","description":"Maximum x402/pay.sh fee the agent may auto-pay for one hosted tool call under the user policy."},"maxTotalX402Usd":{"type":"number","description":"Maximum total x402/pay.sh spend for this mandate before asking the user again."},"maxTradeUsd":{"type":"number","description":"Maximum value-moving notional in USD for swaps, perps, escrow, or transaction finalization under this mandate."},"maxSlippageBps":{"type":"number","description":"Maximum slippage in basis points for swap or trading routes. 100 means 1%."},"allowedProtocols":{"type":"array","description":"Protocol allow-list such as sap, mcp, x402, jupiter, adrena, pyth, metaplex, sns, magicblock, or custom protocol ids.","items":{"type":"string","description":"Allowed Protocols parameter for Prepare SAP Agent Mandate."}},"allowedTools":{"type":"array","description":"Exact SAP MCP tool allow-list for this mandate. Use exact names from tools/list and do not rewrite hyphenated tools.","items":{"type":"string","description":"Allowed Tools parameter for Prepare SAP Agent Mandate."}},"requireConfirmationAboveUsd":{"type":"number","description":"Require a human preview and explicit confirmation above this USD notional or spend threshold."},"expiresInSeconds":{"type":"number","description":"Mandate TTL in seconds. Defaults to 900 and is capped to 86400."}},"required":["intent"],"description":"Prepare SAP Agent Mandate input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_preview_transaction","description":"Preview a Solana transaction before signing or submission. This is the required preflight step for agent workflows; do not create local signing scripts or read keypair files.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"transaction":{"type":"string","description":"Serialized transaction"},"encoding":{"type":"string","enum":["base64","base58"],"description":"Input encoding"}},"description":"Preview Transaction input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_pricing_catalog","description":"Free machine-readable x402/pay.sh pricing catalog generated from the hosted SAP MCP pricing registry. Use before paid calls to understand free, micro-read, read-premium, builder, value-action, and batch tiers.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Get SAP MCP Pricing Catalog input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_profile_current","description":"Return the currently loaded SAP MCP profile and redacted signer/config metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Show Current SAP MCP Profile input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_profile_list","description":"List available SAP MCP profiles with redacted signer metadata and no wallet paths.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"List SAP MCP Profiles input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_profile_public_key","description":"Return the configured public agent key for a profile without reading or exposing keypair bytes.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"profileName":{"type":"string","description":"Profile name. Defaults to the loaded profile."}},"description":"Show SAP MCP Profile Agent Public Key input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_profile_switch","description":"Switch the live SAP MCP runtime to another existing profile and reload client, signer, connection, and policy.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"profileName":{"type":"string","description":"Existing profile name to load."},"confirm":{"type":"boolean","description":"Must be true because switching profile can change signer, network, and policy."}},"description":"Switch Loaded SAP MCP Profile input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_protocol_invariants","description":"Free read-only protocol invariant card for agents. Returns the current SAP program id, protocol treasury, source-level expected 0.1 SOL registration fee invariant, hosted write routing rules, local sap_payments routes, identity pipeline, and forbidden actions. Use this before SAP registry writes and whenever fee/treasury behavior is unclear. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Get SAP Protocol Invariants input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_publish_tool_by_name","description":"Publish a tool descriptor using SDK ToolsModule.publishByName. SAP MCP context: Use tool registry writes to advertise concrete capabilities that this MCP can serve, including AgentKit bridge tools such as bridging_bridgeWormhole and Metaplex tools such as metaplex-nft_mintNFT. Publish only schemas and descriptions that match the actual MCP tool surface.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"toolName":{"type":"string","description":"Name of the tool to publish"},"protocolId":{"type":"string","description":"Protocol ID the tool belongs to (e.g. \"jupiter\")"},"description":{"type":"string","description":"Human-readable description of the tool"},"inputSchemaJson":{"type":"string","description":"JSON string of the tool input schema"},"outputSchemaJson":{"type":"string","description":"JSON string of the tool output schema"},"httpMethod":{"type":"number","description":"HTTP method code (e.g. 0=GET, 1=POST)"},"category":{"type":"number","description":"Numeric tool category ID"},"paramsCount":{"type":"number","description":"Total number of parameters the tool accepts"},"requiredParams":{"type":"number","description":"Number of required parameters"},"isCompound":{"type":"boolean","description":"Whether the tool is a compound tool (default: false)"}},"description":"Publish SAP Tool By Name input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_quick_context","description":"Free single-call bootstrap aggregator. Returns a compact markdown-like summary with server version, total tools count, tools by category, pricing tiers summary, premium plugins/capabilities count, bundled skills list, and nextAction guidance. Pass agentKnownVersion with the version you currently know to get skillsUpdateRequired + skillsContents (full SKILL.md inline) when the server version differs — this lets you auto-update your local skills in 1 call without a separate sap_skills_bundle. Use this instead of calling sap_agent_start, sap_pricing_catalog, sap_premium_plugin_catalog, sap_skills_list, and sap_get_tool_category_summary separately to reduce bootstrap from 5+ tool calls to 1.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"include":{"type":"array","items":{"type":"string","description":"Include parameter for SAP MCP Quick Context."},"description":"Optional subset of section names to include (version, tools, pricing, premium, skills, nextAction). When omitted, all sections are returned."},"compact":{"type":"boolean","description":"When true (default), the summary string is kept compact. When false, a more readable multi-line summary is returned."},"maxChars":{"type":"number","description":"Maximum character length for the summary string. Defaults to 4000. The summary is truncated if it exceeds this length."},"agentKnownVersion":{"type":"string","description":"The SAP MCP version the agent currently knows about. When this differs from the server version, skillsUpdateRequired is set to true and skillsContents is populated with full SKILL.md contents. Omit to always force a skills update (first bootstrap)."},"intent":{"type":"string","enum":["connection","paid-call","registry-write","update-agent","transaction-finalize","escrow","identity","swap","external-x402","premium-stream","balance","discovery","general"],"description":"Optional user intent for the embedded sessionContextPacket. Use this to route bootstrap toward paid calls, registry writes, swaps, escrow, external x402 agents, premium streams, balance reads, or discovery."}},"description":"SAP MCP Quick Context input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_reactivate_agent","description":"Reactivate the connected wallet SAP agent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Reactivate SAP Agent input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_reactivate_tool","description":"Reactivate a SAP tool descriptor by name. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"toolName":{"type":"string","description":"Name of the tool descriptor to reactivate"}},"description":"Reactivate SAP Tool input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_register_agent","description":"DISABLED: this direct write cannot run in hosted Steve (no server keypair) and fails with \"Explicit user approval is required\" or hosted_local_signer_required. In Steve web the ONLY registration path is sap_build_agent_register_transaction → Steve UI preview → user approval → browser signature → finalize submit. In LOCAL sap_payments setups use sap_payments_register_agent instead. SAP MCP context: Do not use this raw SDK wrapper for production registration. The canonical registration path is sap_payments_register_agent, because it confirms the account, audits the protocol treasury fee, and fails closed when protocolComplete is false. Hosted accountless SAP MCP rejects direct registration before x402 payment because OOBE never custodies user wallet keys. Use sap_agent_identity_plan first, then sap_payments_register_agent with confirm:true.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_register_agent when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Required public display name for the SAP agent. Keep it stable enough for explorers and humans."},"description":{"type":"string","description":"Required public description of what the agent does, which protocols it can use, and its safety/trust boundaries."},"capabilities":{"type":"array","description":"Required capability list. Prefer object form for production; strings are accepted as shorthand.","items":{"oneOf":[{"type":"string","description":"Capability id shorthand, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, or risk:management."},{"type":"object","properties":{"id":{"type":"string","description":"Required stable capability id. Use protocol:action naming, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, x402:payments, or risk:management."},"description":{"type":"string","description":"Optional human-readable capability description for agents and explorers."},"protocolId":{"type":"string","description":"Optional protocol namespace backing this capability, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, or custom."},"version":{"type":"string","description":"Optional capability version string. Use semver when the capability maps to an API contract."}},"required":["id"],"additionalProperties":false,"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}],"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}},"pricing":{"type":"array","description":"Optional pricing tiers advertised by the agent. Use tokenType usdc + settlementMode x402 for pay.sh/x402 agent commerce.","items":{"type":"object","properties":{"tierId":{"type":"string","description":"Stable tier id, for example default, read, premium, value-action, or enterprise."},"pricePerCall":{"type":"string","description":"Price per call in the smallest unit of tokenType: lamports for sol, micro-USDC for usdc, or base units for spl."},"minPricePerCall":{"type":"string","description":"Optional floor price per call in the smallest unit of tokenType."},"maxPricePerCall":{"type":"string","description":"Optional ceiling price per call in the smallest unit of tokenType."},"rateLimit":{"type":"number","description":"Maximum calls per second allowed by this tier. Defaults to 60."},"maxCallsPerSession":{"type":"number","description":"Maximum calls allowed per session for this tier. Defaults to 1000."},"burstLimit":{"type":"number","description":"Optional short-window burst allowance for this tier."},"tokenType":{"type":"string","enum":["sol","usdc","spl"],"description":"Payment token type. Use usdc for x402/pay.sh agent commerce. Use spl only with tokenMint."},"tokenMint":{"type":"string","description":"Optional SPL token mint public key. Required when tokenType is spl. For mainnet USDC use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v."},"tokenDecimals":{"type":"number","description":"Decimals for the payment token. Defaults to 6 for usdc and 9 for sol when omitted."},"settlementMode":{"type":"string","enum":["instant","escrow","batched","x402"],"description":"Settlement strategy. Use x402 for HTTP 402/pay.sh flows, escrow for prepaid SAP usage ledgers, instant for direct pay-per-call, and batched for periodic settlement."},"minEscrowDeposit":{"type":"string","description":"Optional minimum escrow deposit in the smallest unit of tokenType."},"batchIntervalSec":{"type":"number","description":"Optional settlement batch interval in seconds when settlementMode is batched."},"volumeCurve":{"type":"array","description":"Optional volume discounts. Each item lowers pricePerCall after a call threshold.","items":{"type":"object","properties":{"afterCalls":{"type":"number","description":"Call count threshold where this price starts."},"pricePerCall":{"type":"string","description":"Discounted price per call in the smallest unit of tokenType."}},"required":["afterCalls","pricePerCall"],"additionalProperties":false,"description":"Volume Curve parameter for Register SAP Agent (Blocked in hosted Steve — use the builder)."}}},"required":["pricePerCall"],"additionalProperties":false,"description":"Pricing array of x402/pay.sh pricing tiers for the registered agent or tool. Amounts should be denominated explicitly in USDC smallest units when applicable."}},"protocols":{"type":"array","items":{"type":"string","description":"Protocols array of protocol identifiers such as sap, mcp, jupiter, pyth, metaplex, sns, or x402."},"description":"Required protocol tags the agent supports, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, payments."},"agentId":{"type":"string","description":"Optional stable lowercase agent id, for example solking. This is separate from the on-chain agent PDA."},"agentUri":{"type":"string","description":"Optional public HTTPS/IPFS/Arweave/Kommodo URI for the agent profile metadata or profile page. Never use local desktop file paths."},"metadataUri":{"type":"string","description":"Alias for agentUri. Prefer a public JSON metadata document containing name, description, image, external_url, attributes, sap, metaplex, sns, and x402 fields."},"x402Endpoint":{"type":"string","description":"Optional public x402 discovery/payment endpoint, usually https://host/.well-known/x402 for external agent services."}},"description":"Register SAP Agent (Blocked in hosted Steve — use the builder) input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_register_agent when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_report_calls","description":"Report served call count for the connected wallet SAP agent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"callsServed":{"type":"number","description":"Number of calls served to report for the agent"}},"description":"Report Agent Calls input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_report_tool_invocations","description":"Report invocation count for a SAP tool descriptor. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"toolName":{"type":"string","description":"Name of the tool descriptor to report invocations for"},"invocations":{"type":"number","description":"Number of invocations to report"}},"description":"Report SAP Tool Invocations input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_request_unstake","description":"Request unstake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"amount":{"type":"string","description":"Unstake request amount in lamports (as a decimal string)"}},"description":"Request SAP Unstake input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_revoke_attestation","description":"Revoke attestation for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to revoke attestation for"}},"description":"Revoke SAP Attestation input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_revoke_feedback","description":"Revoke feedback for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to revoke feedback for"}},"description":"Revoke SAP Feedback input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_runtime_repair_plan","description":"Free helper that returns the pinned latest-release repair command for hosted SAP MCP plus local sap_payments bridge setup. Use this before asking users to manually edit runtime config.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agent":{"type":"string","enum":["claude","codex","hermes","openclaw","clawpump","custom"],"description":"Optional runtime to focus repair instructions on."}},"description":"Plan SAP Runtime Repair input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_search_tools","description":"Search the SAP MCP tool catalog (420+ tools) by keyword. Returns top-K matching tools with their name, description, and full input schema. Use this to discover tools before calling them via sap_call_tool. Categories: sap_phoenix_ (Phoenix perps), sap_adrena_ (Adrena perps), sap_perp_ (perps risk/signals), sap_steve_launch_ (Steve-native Meteora DBC launches), jupiter_ (swaps), spl_token_ (tokens), staking_ (staking), bridging_ (bridges), meteora_ (liquidity), magicblock_ (ephemeral rollups), sap_backpack_ (Backpack Exchange CeFi: markets, depth, klines, collateral, securities, trading), sap_sunrise_ (Sunrise asset gateway: canonical tokens, swap quotes, cross-chain asset swaps), sap_perpspad_ (external PerpsPad launchpad API). Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural language search query. Example: \"get Phoenix market data\" or \"place limit order\" or \"bridge ETH to Solana\"."},"category":{"type":"string","description":"Optional category filter (tool name prefix). Example: \"sap_phoenix_\", \"sap_adrena_\", \"jupiter_\", \"spl_token_\"."},"limit":{"type":"number","description":"Maximum results to return (default 10, max 25).","minimum":1,"maximum":25}},"required":["query"],"description":"SAP Search Tools input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_session_read_latest","description":"Read latest entries from a high-level SDK session ID. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"High-level session identifier string to read latest entries from"}},"description":"Read Latest SAP Session Entries input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_session_start","description":"Start a high-level SDK session by session ID. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"High-level session identifier string"},"vaultNonce":{"type":"array","description":"Optional vault nonce as a byte array, hex string, or base64 string"}},"description":"Start SAP Memory Session input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_session_status","description":"Fetch high-level SDK session status by session ID. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string","description":"High-level session identifier string to get status for"}},"description":"Get SAP Session Status input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_settle_escrow_v2","description":"Local-signer-only direct settlement against a V2 escrow. Hosted users should call sap_escrow_build_settle_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"},"callsToSettle":{"type":"string","description":"Number of calls to settle (as a decimal string)"},"serviceHash":{"type":"array","description":"32-byte service hash as a byte array, hex string, or base64 string"}},"description":"Settle SAP Escrow V2 input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sign_transaction","description":"Sign a serialized Solana transaction with the configured SAP MCP signer after sap_preview_transaction. This is the supported non-custodial signing path for agents; never read keypair JSON or sign raw message bytes in temporary scripts.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_finalize_transaction when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"transaction":{"type":"string","description":"Unsigned or partially signed transaction"},"encoding":{"type":"string","enum":["base64","base58"],"description":"Input encoding"}},"description":"Sign Transaction input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_finalize_transaction when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_skills_bundle","description":"Return bundled SAP MCP skills as JSON so an agent can load or write them itself. Pass skills: [\"name1\",\"name2\"] to bundle only specific skills (filterNames pattern). Pass includeContents: false to get only file paths without content (metadata-only mode for cheap discovery). Combine both for efficient loading: skills:[\"sap-defi\"], includeContents:true returns only the sap-defi skill files with full content, avoiding context bloat from unused skills.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"skills":{"type":"array","items":{"type":"string","description":"Skills parameter for Bundle SAP MCP Skills."},"description":"Optional subset of bundled skill names to bundle. When omitted, all bundled skills are returned. Use this to load only the skills you need and avoid context bloat."},"includeContents":{"type":"boolean","description":"When false, only file paths are returned without file content (metadata-only). When true (default), full file contents are included. Set to false for cheap discovery, then call again with skills:[\"name\"] and includeContents:true for only the skills you need."}},"description":"Bundle SAP MCP Skills input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_skills_check_updates","description":"Compare the bundled skill version with the latest published npm package and report which local agent skill directories are stale. Read-only. Works in every server mode.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agent":{"type":"string","enum":["claude","codex","hermes","openclaw","clawpump","custom"],"description":"Optional runtime whose default skill directory should be checked."},"targetDir":{"type":"string","description":"Optional explicit local skill directory to check."}},"description":"Check SAP MCP Skills Updates input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_skills_install","description":"Install bundled SAP MCP skills into a local agent skill directory. Requires confirm: true.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agent":{"type":"string","enum":["claude","codex","hermes","openclaw","clawpump","custom"],"description":"Agent parameter for Install SAP MCP Skills."},"targetDir":{"type":"string","description":"Target Dir parameter for Install SAP MCP Skills."},"skills":{"type":"array","items":{"type":"string","description":"Skills parameter for Install SAP MCP Skills."},"description":"Skills parameter for Install SAP MCP Skills."},"confirm":{"type":"boolean","description":"Confirm flag required before local signing, payment, or write execution. Set true only after the user approves the preview/cost."}},"description":"Install SAP MCP Skills input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_skills_list","description":"List bundled SAP MCP skills and their files.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"skills":{"type":"array","items":{"type":"string","description":"Skills parameter for List SAP MCP Skills."},"description":"Skills parameter for List SAP MCP Skills."}},"description":"List SAP MCP Skills input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_skills_self_update","description":"Refresh local agent skill files from the latest published @oobe-protocol-labs/sap-mcp-server package. Local-mode only (hosted MCP cannot write to the caller machine). Requires confirm: true. Uses npm pack + tar extraction; no shell interpolation of paths.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"agent":{"type":"string","enum":["claude","codex","hermes","openclaw","clawpump","custom"],"description":"Agent parameter for Self-Update SAP MCP Skills."},"targetDir":{"type":"string","description":"Target Dir parameter for Self-Update SAP MCP Skills."},"skills":{"type":"array","items":{"type":"string","description":"Skills parameter for Self-Update SAP MCP Skills."},"description":"Skills parameter for Self-Update SAP MCP Skills."},"confirm":{"type":"boolean","description":"Confirm flag required before local signing, payment, or write execution. Set true only after the user approves the preview/cost."}},"description":"Self-Update SAP MCP Skills input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_skills_upgrade_plan","description":"Free helper that returns exact latest-release commands and target directories for upgrading SAP MCP skills. Hosted mode returns a local action plan; local mode can then use sap_skills_install to write files.\n\nSAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agent":{"type":"string","enum":["claude","codex","hermes","openclaw","clawpump","custom"],"description":"Optional target runtime whose default skill directory should be used."},"targetDir":{"type":"string","description":"Optional explicit local skill directory."},"skills":{"type":"array","description":"Optional subset of bundled skill names to upgrade.","items":{"type":"string","description":"Skills parameter for Plan SAP MCP Skills Upgrade."}}},"description":"Plan SAP MCP Skills Upgrade input schema. Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_batch_check_domains","description":"Check availability for multiple .sol domains (up to 25) by deriving each SNS PDA and checking account existence on-chain. This is read-only and safe for hosted mode.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"string","description":"A .sol domain name to check (with or without .sol suffix)"},"description":"Array of .sol domain names to batch-check for availability (1-25 domains)"}},"description":"Batch Check SNS Domains input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_build_manage_record_transaction","description":"Temporarily unavailable. SAP MCP does not currently publish an SNS record write builder because the historical Bonfida SNS npm package is not installable from npmjs. The tool fails fast before payment or signing.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name whose record should be created, updated, or deleted"},"recordType":{"type":"string","description":"The SNS record type to manage (e.g. TXT, Url, IPFS, ETH, BTC, etc.)"},"value":{"type":["string","null"],"description":"The new record value as a string, or null to delete the record"},"owner":{"type":"string","description":"The Solana public key (base58) of the domain owner authorizing the record change"}},"description":"Build SNS Manage Record Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_build_set_primary_domain_transaction","description":"Temporarily unavailable. Setting primary SNS domains is disabled in SAP MCP until the SNS write path is migrated to a current installable SDK and covered by end-to-end tests.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_finalize_transaction when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to set as primary for the owner"},"owner":{"type":"string","description":"The Solana public key (base58) of the domain owner setting their primary domain"}},"description":"Build SNS Set Primary Domain Transaction input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_finalize_transaction when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_check_domain","description":"Check whether a .sol domain is available by deriving its Solana Name Service PDA and checking whether the account exists on-chain. This is a read-only helper and does not require the historical Bonfida npm package.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to check for availability (with or without .sol suffix)"}},"description":"Check SNS Domain input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_check_ownership","description":"Check whether a wallet matches the resolved SNS wallet for a .sol domain. This uses the SOL record when present and the domain owner as fallback.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to check ownership of"},"owner":{"type":"string","description":"Canonical field: Solana public key (base58) of the wallet to verify as the domain owner"},"wallet":{"type":"string","description":"Alias for owner, accepted for agent ergonomics when the user says wallet."}},"description":"Check SNS Ownership input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_get_domain_pda","description":"Derive the Solana Name Service domain PDA for a .sol domain. This helper is deterministic, read-only, and does not require any external SNS SDK.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to derive the SNS domain PDA for"}},"description":"Get SNS Domain PDA input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_get_domain_records","description":"Fetch known SNS records for a .sol domain using direct Solana Name Service account reads. Returns a key-value map for records that exist and can be decoded.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to fetch all configured SNS records for"}},"description":"Get SNS Domain Records input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_get_record","description":"Fetch a single SNS record value for a .sol domain using direct Solana Name Service account reads. Returns null if the record account is absent or empty.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to fetch a record from"},"recordType":{"type":"string","description":"The SNS record type to fetch (e.g. SOL, TXT, Url, IPFS, ETH, BTC, etc.)"}},"description":"Get SNS Record input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_get_record_pda","description":"Derive the Solana Name Service record PDA for a root .sol domain and record type such as SOL, TXT, Pic, Url, or IPFS.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to derive the record PDA for"},"recordType":{"type":"string","description":"The SNS record type for the PDA derivation (e.g. SOL, TXT, Url, IPFS, ETH, BTC, etc.)"}},"description":"Get SNS Record PDA input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_register_agent_domain","description":"Temporarily unavailable. SAP MCP does not currently publish an SNS registration write path because the historical Bonfida SNS npm package is not installable from npmjs. Use this tool only to receive the fail-fast status before any payment or signing attempt.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to register for the SAP agent (with or without .sol suffix)"},"agentWallet":{"type":"string","description":"The Solana public key (base58) of the SAP agent wallet that will own the domain"},"pic":{"type":"string","description":"Profile picture URL for the SNS Pic record (required if not provided in records.Pic)"},"records":{"type":"object","description":"Optional map of SNS record key-value pairs to set during registration (e.g. { \"Url\": \"https://...\", \"Twitter\": \"@handle\" }). Note: SOL record is skipped during registration."},"sapData":{"type":"object","description":"Optional structured SAP metadata to embed in the domain TXT record (capabilities, protocols, endpoints, etc.)"},"capabilities":{"type":"array","items":{"type":"string","description":"A SAP capability identifier (e.g. \"jupiter:swap\")"},"description":"Optional list of SAP capability IDs to advertise in the domain TXT record"},"protocols":{"type":"array","items":{"type":"string","description":"A protocol identifier (e.g. \"sap\", \"mcp\")"},"description":"Optional list of protocol IDs the agent supports"},"setAsPrimary":{"type":"boolean","description":"Whether to set this domain as the agent primary .sol domain"},"durationYears":{"type":"number","description":"Registration duration in years (default: 1)"},"space":{"type":"number","description":"Storage space in bytes for the domain name account (default: 600)"}},"description":"Register SAP Agent SNS Domain input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_resolve_domain","description":"Resolve a .sol domain to its wallet/owner and configured SNS records using direct Solana Name Service account reads. Agents should treat TXT/Pic/Url records as optional metadata and fall back to the wallet owner when no SOL record exists.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to resolve to SAP agent identity and SNS records"}},"description":"Resolve SAP SNS Domain input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_resolve_wallet","description":"Resolve a .sol domain to a wallet public key. The tool prefers the SOL record when available and falls back to the domain owner field from the SNS account header.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name to resolve to its owner wallet public key"}},"description":"Resolve SNS Wallet input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sns_validate_records","description":"Validate SNS records for SAP agent compatibility (checks SOL, Pic, TXT records on-chain).\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The .sol domain name whose SNS records should be validated for SAP agent compatibility"}},"description":"Validate SAP SNS Records input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_steve_launch_build_dbc","description":"Build a Steve-native direct Meteora DBC launch: create config, initialize pool, transfer creator authority to the 70/30 escrow PDA, then initialize escrow. A requested initial buy is built separately after pool confirmation with sap_steve_launch_build_dbc_dev_buy and a fresh blockhash. Supports SOL, USDC, and validated SPL/Token-2022 quote mints.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ticker":{"type":"string","description":"Coin ticker, A-Z 0-9 only (e.g. MOON)"},"name":{"type":"string","description":"Coin display name"},"agentWallet":{"type":"string","description":"Agent wallet: receives 70% of claimed trading fees; also the leftover-token receiver"},"payer":{"type":"string","description":"Transaction payer + initial pool creator (signs the returned transactions client-side)"},"devBuyAmount":{"type":"number","description":"Initial buy amount, denominated in the selected quote token"},"devBuySol":{"type":"number","description":"Deprecated alias for devBuyAmount (SOL launches only)"},"latestBlockhash":{"type":"string","description":"FRESH mainnet blockhash fetched by the CALLER (getLatestBlockhash) — guarantees signability from the client. Required."},"metadataUri":{"type":"string","description":"Exact permanent HTTPS URI of the Metaplex JSON (for example an IPFS/Arweave gateway URL). Preferred for production launches."},"metadataBaseUrl":{"type":"string","description":"HTTPS base URL used to build the Metaplex JSON URI"},"underlying":{"type":"string","description":"Perp backing: Phoenix market symbol (e.g. SOL, TSLA, OIL). A-Z 0-9, 1-12 chars. REQUIRED together with leverage and direction (all-or-nothing)."},"leverage":{"type":"number","description":"Perp backing: integer leverage 1-10. REQUIRED together with underlying and direction (all-or-nothing)."},"direction":{"type":"string","enum":["long","short"],"description":"Perp backing: long|short. REQUIRED together with underlying and leverage (all-or-nothing)."},"quote":{"type":"string","description":"Quote token: SOL, USDC, or CUSTOM with quoteMint. Custom SPL/Token-2022 mints are validated on-chain."},"quoteMint":{"type":"string","description":"Required when quote=CUSTOM: SPL or Token-2022 mint with 6-9 decimals and no unsupported transfer behavior."},"quotePriceUsd":{"type":"number","description":"Live USD price of one quote token. Required for non-SOL quotes."},"solPriceUsd":{"type":"number","description":"Live SOL/USD reference. Required for non-SOL quotes."}},"required":["ticker","name","agentWallet","payer","latestBlockhash"],"description":"sap steve launch build dbc input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_steve_launch_build_dbc_dev_buy","description":"Legacy DBC-only initial-buy builder. New integrations must use sap_meteora_build_launchpad_trade, which supports buy/sell, exact decimal amounts, curve-capacity errors, and automatic routing after DAMM v2 graduation.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"poolAddress":{"type":"string","description":"Pool Address public key or address used by sap steve launch build dbc dev buy."},"owner":{"type":"string","description":"Owner address used by sap steve launch build dbc dev buy."},"amount":{"type":"number","exclusiveMinimum":0,"description":"Amount value to use for sap steve launch build dbc dev buy."},"latestBlockhash":{"type":"string","description":"Latest Blockhash parameter for sap steve launch build dbc dev buy."},"slippageBps":{"type":"number","minimum":1,"maximum":5000,"description":"Slippage Bps pagination control for sap steve launch build dbc dev buy."}},"required":["poolAddress","owner","amount","latestBlockhash"],"description":"sap steve launch build dbc dev buy input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_steve_launch_preview_dbc","description":"PRE-LAUNCH DBC economics readout: decodes the exact Meteora DBC config the gateway will sign (scaled per quote decimals) and simulates the dev-buy with the official SDK swap math. Returns migration threshold, start price, curve breakdown, tokens out (supply-capped) and min-out after slippage. Call this instead of estimating locally — the frontend renders these values verbatim.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"quoteMint":{"type":"string","description":"Quote mint address (SOL = wrapped SOL mint, CUSTOM = the verified mint)"},"devBuyAmount":{"type":"number","description":"Human dev-buy amount in quote units (e.g. 1 SOL, 1000 OOBE). 0/omitted = curve facts only."},"slippageBps":{"type":"number","description":"Dev-buy slippage in bps (default 300)"},"quotePriceUsd":{"type":"number","description":"Live USD price of one quote token; required for non-SOL quotes."},"solPriceUsd":{"type":"number","description":"Live SOL/USD reference; required for non-SOL quotes."}},"required":["quoteMint"],"description":"sap steve launch preview dbc input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_strategy_activate","description":"Free local tool. Activates or deactivates a strategy by category and name. Inactive strategies are skipped during agent execution. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"type":"string","description":"Strategy category."},"name":{"type":"string","description":"Strategy name."},"active":{"type":"boolean","description":"True to activate, false to deactivate."}},"required":["category","name","active"],"description":"Activate/Deactivate Strategy input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_strategy_execute","description":"Free local tool. Loads a saved strategy by category and name, resolves trading parameters, validates against trading policy, and returns either a dry-run simulation or a ready-to-sign transaction. When dryRun is true, returns resolved params only. When dryRun is false, builds a transactionBase64. No x402 charge for this tool itself.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"type":"string","description":"Strategy category (e.g. \"trading\")."},"name":{"type":"string","description":"Strategy name (e.g. \"bonk-short-v1\")."},"dryRun":{"type":"boolean","description":"When true, simulate only. When false, build tx. Default true."},"adjustCollateralUsd":{"type":"number","description":"Override collateral USD."},"adjustLeverage":{"type":"number","description":"Override leverage."}},"required":["category","name"],"description":"Execute Strategy input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_strategy_list","description":"Free local tool. Lists all strategies, optionally filtered by category and active status. No x402 charge.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"type":"string","description":"Optional category filter."},"activeOnly":{"type":"boolean","description":"Only return active strategies. Default false."}},"description":"List Strategies input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_strategy_load","description":"Free local tool. Loads a strategy JSON by category and name. Returns the full strategy config including version and active status. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"type":"string","description":"Strategy category."},"name":{"type":"string","description":"Strategy name."}},"required":["category","name"],"description":"Load Strategy input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_strategy_save","description":"Free local tool. Saves or updates a strategy JSON in ~/.config/mcp-sap/strategies/. Strategies persist agent learnings (e.g. buyback rules, slippage thresholds, risk limits) across sessions. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"type":"string","description":"Strategy category (defi, trading, meme, payments, premium)."},"name":{"type":"string","description":"Strategy name (e.g. \"volatility-breakout\")."},"config":{"type":"string","description":"JSON strategy configuration."},"activate":{"type":"boolean","description":"Whether to activate the strategy immediately. Default true."}},"required":["category","name","config"],"description":"Save Strategy input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_stream_buffer","description":"Free local tool. Buffers a premium stream event in the local SQLite database for offline consumption. Deduplicates by (streamType, eventId). No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"streamType":{"type":"string","description":"Stream type (e.g. \"pyth-price\", \"meme-alerts\", \"volatility\")."},"eventId":{"type":"string","description":"Unique event ID from the provider."},"eventType":{"type":"string","description":"Event type (e.g. \"price.tick\", \"volatility.breakout\")."},"payload":{"type":"string","description":"JSON-serialized event payload."}},"required":["streamType","eventId","eventType","payload"],"description":"Buffer Stream Event input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_stream_catalog","description":"Free stream discovery for paid real-time SAP MCP capabilities. Returns only stream contracts, including event names, latency targets, x402 pricing, strict schemas, provider env requirements, and whether each stream is live or waiting for provider configuration.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pluginId":{"type":"string","description":"Optional premium plugin id used to narrow stream discovery, for example sap-premium-market-data."}},"additionalProperties":false,"description":"Premium Stream Catalog input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_stream_consume","description":"Free local tool. Returns unconsumed stream events for a stream type (FIFO order) and marks them consumed. Use this instead of sap_premium_stream_poll for local offline access. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"streamType":{"type":"string","description":"Stream type to consume."},"limit":{"type":"number","description":"Max events to consume. Default 20."}},"required":["streamType"],"description":"Consume Stream Events input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_stream_replay","description":"Free local tool. Returns all events (consumed + unconsumed) for a stream type within a time range. Used for backtest and analysis. No x402 charge.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"streamType":{"type":"string","description":"Stream type to replay."},"since":{"type":"string","description":"ISO 8601 timestamp. Events created after this time."},"limit":{"type":"number","description":"Max events. Default 100."}},"required":["streamType"],"description":"Replay Stream Events input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_submit_signed_transaction","description":"Submit a signed Solana transaction produced by sap_sign_transaction through the configured RPC endpoint. Use this instead of custom sendRawTransaction scripts so policy, retries, and audit stay inside SAP MCP.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"signedTransaction":{"type":"string","description":"Signed serialized transaction"},"encoding":{"type":"string","enum":["base64","base58"],"description":"Input encoding"},"skipPreflight":{"type":"boolean","description":"Skip RPC preflight checks"},"maxRetries":{"type":"number","description":"Maximum RPC send retries"},"confirmationTimeoutMs":{"type":"number","description":"Bounded confirmation wait in milliseconds. Defaults to 90000; maximum 180000."},"commitment":{"type":"string","enum":["processed","confirmed","finalized"],"description":"Desired confirmation status before returning success. Defaults to confirmed."},"submitViaRelay":{"type":"boolean","description":"When true, submit through the hosted OOBE relay. The relay only broadcasts already-signed bytes and never signs. Defaults to false for this local tool."},"submitRelayUrl":{"type":"string","description":"Optional submit relay URL. Must be HTTPS, localhost, or 127.0.0.1."},"intentId":{"type":"string","description":"Optional caller-provided id binding submission, confirmation, and audit output."}},"description":"Submit Signed Transaction input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sunrise_execute_quote","description":"Execute a signed Sunrise swap: submits the user-signed transaction from sap_sunrise_get_quote. Poll by re-calling with IDENTICAL arguments while status is 'SUBMITTED'; stop at 'CONFIRMED' and report the txHash. If polling times out, check the wallet activity FIRST — blind retries cause duplicate swaps. BUILDER tier.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"signedTransaction":{"type":"string","description":"Base64 transaction signed by the user wallet (from the quote unsignedTransaction, signed locally)"},"quoteId":{"type":"string","description":"quoteId from sap_sunrise_get_quote"},"routeName":{"type":"string","description":"routeName from sap_sunrise_get_quote (e.g. titan)"},"providerRequestId":{"type":"string","description":"Optional providerRequestId from the quote"}},"required":["signedTransaction","quoteId","routeName"],"description":"sap sunrise execute quote input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sunrise_get_quote","description":"Get Sunrise swap quotes between two canonical mints. fromToken/toToken are MINT ADDRESSES (resolve symbols first with sap_sunrise_resolve_token); fromAmount is a STRING in base units ('1000000' = 1 USDC at 6 decimals — numbers are rejected). Without wallet addresses you get a price-only quote (no unsignedTransaction); include fromAddress+toAddress to receive a signable transaction. BUILDER tier.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"fromToken":{"type":"string","description":"Input token MINT address (from sap_sunrise_resolve_token)"},"toToken":{"type":"string","description":"Output token MINT address"},"fromAmount":{"type":"string","description":"Input amount as STRING in base units (e.g. 1000000 for 1 USDC at 6 decimals)"},"fromAddress":{"type":"string","description":"Optional wallet address sending the input token — include to receive unsignedTransaction"},"toAddress":{"type":"string","description":"Optional wallet address receiving the output token"}},"required":["fromToken","toToken","fromAmount"],"description":"sap sunrise get quote input schema. Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sunrise_list_tokens","description":"List all Sunrise-supported tokens on Solana with canonical mint addresses: symbol, name, decimals, assetClass (stock|crypto|commodity), tokenProgram (spl-token|token-2022), issuer, icon. Optional filters: assetClass, symbol substring, limit (max 200), cursor. USDC/USDT/WETH/WBTC are core assets NOT in this list but quotable. Canonical-mint warning: always resolve mints via sap_sunrise_list_tokens or sap_sunrise_resolve_token; never trust mints from social media or DEX search results — spoofed tokens appear within hours of hyped launches. Free read.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"assetClass":{"type":"string","description":"Optional filter: stock, crypto, or commodity","enum":["stock","crypto","commodity"]},"symbol":{"type":"string","description":"Optional case-insensitive symbol substring filter (e.g. MON)"},"limit":{"type":"number","description":"Max tokens per upstream page (1-200, default 200)","minimum":1,"maximum":200},"cursor":{"type":"string","description":"Pagination cursor from a previous call"}},"description":"sap sunrise list tokens input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sunrise_resolve_token","description":"Resolve a Sunrise token by symbol or mint address: returns the canonical mint, decimals, assetClass, and tokenProgram. Knows the core assets (USDC, USDT, WETH, WBTC) even though they are absent from the token list. Use this instead of trusting third-party mint lists. Free read.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbolOrMint":{"type":"string","description":"Token symbol (e.g. MON, USDC) or Solana mint address"}},"required":["symbolOrMint"],"description":"sap sunrise resolve token input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_sunrise_swap_intent","description":"One-call Sunrise swap intent: resolves both token SYMBOLS to canonical mints, then fetches a quote with the user's wallets and returns the unsignedTransaction + quoteId + routeName + providerRequestId. The transaction is NOT broadcast — sign it locally and execute with sap_sunrise_execute_quote. BUILDER tier.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"fromSymbol":{"type":"string","description":"Input token symbol (e.g. USDC, MON)"},"toSymbol":{"type":"string","description":"Output token symbol"},"fromAmount":{"type":"string","description":"Input amount as STRING in base units of the FROM token"},"fromAddress":{"type":"string","description":"Wallet address sending the input token"},"toAddress":{"type":"string","description":"Wallet address receiving the output token"}},"required":["fromSymbol","toSymbol","fromAmount","fromAddress","toAddress"],"description":"sap sunrise swap intent input schema. Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_trade_journal","description":"Free local tool. Appends a trade entry to the journal. Call after every trade open/close/SL/TP/liquidation for tracking and P&L analysis. No x402 charge.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"type":{"type":"string","enum":["open","close","liquidation","sl_triggered","tp_triggered"],"description":"Trade event type."},"market":{"type":"string","description":"Market symbol."},"side":{"type":"string","enum":["long","short"],"description":"Position side."},"collateralUsd":{"type":"number","description":"Collateral in USD."},"leverage":{"type":"number","description":"Leverage multiplier."},"priceUsd":{"type":"number","description":"Entry or exit price."},"stopLossUsd":{"type":"number","description":"Stop loss price."},"takeProfitUsd":{"type":"number","description":"Take profit price."},"txSignature":{"type":"string","description":"Transaction signature."},"positionAddress":{"type":"string","description":"Position PDA address."},"feesPaidUsd":{"type":"number","description":"Fees paid in USD."},"status":{"type":"string","enum":["open","closed","liquidated"],"description":"Position status."},"pnlUsd":{"type":"number","description":"P&L in USD."},"notes":{"type":"string","description":"Optional notes."}},"required":["type","market","side","collateralUsd","leverage","priceUsd","feesPaidUsd","status"],"description":"Append Trade Journal Entry input schema. Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_trade_journal_query","description":"Free local tool. Queries the trade journal with filters. Returns matching entries with count and total P&L. No x402 charge.\n\nSAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"type":"string","description":"Filter by market."},"type":{"type":"string","enum":["open","close","liquidation","sl_triggered","tp_triggered"],"description":"Filter by type."},"status":{"type":"string","enum":["open","closed","liquidated"],"description":"Filter by status."},"from":{"type":"string","description":"Start date ISO 8601."},"to":{"type":"string","description":"End date ISO 8601."},"limit":{"type":"number","description":"Max results. Default 100."}},"description":"Query Trade Journal input schema. Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_update_agent","description":"Local-signer-only: update the connected wallet SAP agent using SDK AgentModule.update. Hosted accountless SAP MCP rejects this direct write before x402 payment; hosted users should call sap_payments_update_agent from the local sap_payments bridge. SAP MCP context: Use this after sap_register_agent to refresh name, description, capabilities, pricing, supported protocols, x402 endpoint, or metadataUri. For NFT-backed identity changes, update the Metaplex asset first when needed, then point the SAP agent metadataUri at the current metadata document.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_update_agent when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Optional replacement display name. Omit to keep the current name."},"description":{"type":"string","description":"Optional replacement description. Omit to keep the current description."},"capabilities":{"type":"array","description":"Optional full replacement capability list. Omit to keep current capabilities; do not send only the new item unless replacing the whole list is intended.","items":{"oneOf":[{"type":"string","description":"Capability id shorthand, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, or risk:management."},{"type":"object","properties":{"id":{"type":"string","description":"Required stable capability id. Use protocol:action naming, for example jupiter:swap, pyth:price, metaplex:identity, sns:identity, x402:payments, or risk:management."},"description":{"type":"string","description":"Optional human-readable capability description for agents and explorers."},"protocolId":{"type":"string","description":"Optional protocol namespace backing this capability, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, or custom."},"version":{"type":"string","description":"Optional capability version string. Use semver when the capability maps to an API contract."}},"required":["id"],"additionalProperties":false,"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}],"description":"Capabilities array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes."}},"pricing":{"type":"array","description":"Optional full replacement pricing tier list. Omit to keep current pricing.","items":{"type":"object","properties":{"tierId":{"type":"string","description":"Stable tier id, for example default, read, premium, value-action, or enterprise."},"pricePerCall":{"type":"string","description":"Price per call in the smallest unit of tokenType: lamports for sol, micro-USDC for usdc, or base units for spl."},"minPricePerCall":{"type":"string","description":"Optional floor price per call in the smallest unit of tokenType."},"maxPricePerCall":{"type":"string","description":"Optional ceiling price per call in the smallest unit of tokenType."},"rateLimit":{"type":"number","description":"Maximum calls per second allowed by this tier. Defaults to 60."},"maxCallsPerSession":{"type":"number","description":"Maximum calls allowed per session for this tier. Defaults to 1000."},"burstLimit":{"type":"number","description":"Optional short-window burst allowance for this tier."},"tokenType":{"type":"string","enum":["sol","usdc","spl"],"description":"Payment token type. Use usdc for x402/pay.sh agent commerce. Use spl only with tokenMint."},"tokenMint":{"type":"string","description":"Optional SPL token mint public key. Required when tokenType is spl. For mainnet USDC use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v."},"tokenDecimals":{"type":"number","description":"Decimals for the payment token. Defaults to 6 for usdc and 9 for sol when omitted."},"settlementMode":{"type":"string","enum":["instant","escrow","batched","x402"],"description":"Settlement strategy. Use x402 for HTTP 402/pay.sh flows, escrow for prepaid SAP usage ledgers, instant for direct pay-per-call, and batched for periodic settlement."},"minEscrowDeposit":{"type":"string","description":"Optional minimum escrow deposit in the smallest unit of tokenType."},"batchIntervalSec":{"type":"number","description":"Optional settlement batch interval in seconds when settlementMode is batched."},"volumeCurve":{"type":"array","description":"Optional volume discounts. Each item lowers pricePerCall after a call threshold.","items":{"type":"object","properties":{"afterCalls":{"type":"number","description":"Call count threshold where this price starts."},"pricePerCall":{"type":"string","description":"Discounted price per call in the smallest unit of tokenType."}},"required":["afterCalls","pricePerCall"],"additionalProperties":false,"description":"Volume Curve parameter for Update SAP Agent."}}},"required":["pricePerCall"],"additionalProperties":false,"description":"Pricing array of x402/pay.sh pricing tiers for the registered agent or tool. Amounts should be denominated explicitly in USDC smallest units when applicable."}},"protocols":{"type":"array","items":{"type":"string","description":"Protocols array of protocol identifiers such as sap, mcp, jupiter, pyth, metaplex, sns, or x402."},"description":"Optional full replacement protocol list. Omit to keep current protocols."},"agentId":{"type":"string","description":"Optional replacement stable agent id. Omit to keep current agentId."},"agentUri":{"type":"string","description":"Optional replacement public URI for agent metadata/profile. Use this to update pictures after uploading metadata to IPFS, Arweave, Kommodo, or HTTPS."},"metadataUri":{"type":"string","description":"Alias for agentUri. Use a public metadata JSON URI; never use a desktop file path."},"x402Endpoint":{"type":"string","description":"Optional replacement x402 discovery/payment endpoint. Omit to keep current endpoint."}},"description":"Update SAP Agent input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_update_agent when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_update_feedback","description":"Update existing on-chain feedback for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58) to update feedback for"},"score":{"type":"number","description":"New feedback score (numeric, e.g. 1–5)"},"tag":{"type":"string","description":"Optional new feedback tag/category"},"commentHash":{"type":"array","description":"Optional 32-byte comment hash as a byte array, hex string, or base64 string"}},"description":"Update SAP Feedback input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_update_reputation_metrics","description":"Update self-reported latency and uptime metrics for the connected wallet SAP agent. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"avgLatencyMs":{"type":"number","description":"Average response latency in milliseconds to report"},"uptimePercent":{"type":"number","description":"Uptime percentage (0–100) to report for the agent"}},"description":"Update Reputation Metrics input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_update_tool","description":"Update tool descriptor hashes using SDK ToolsModule.update. SAP MCP context: Use tool registry writes to advertise concrete capabilities that this MCP can serve, including AgentKit bridge tools such as bridging_bridgeWormhole and Metaplex tools such as metaplex-nft_mintNFT. Publish only schemas and descriptions that match the actual MCP tool surface.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{},"toolName":{"type":"string","description":"Name of the tool to update"},"additionalProperties":true,"description":"Object containing optional update fields: descriptionHash, inputSchemaHash, outputSchemaHash (32-byte arrays), httpMethod, category, paramsCount, requiredParams (numbers) Update SAP Tool input schema. Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_webhook_catalog","description":"Free webhook discovery for paid SAP MCP event delivery. Returns webhook event contracts, signed-delivery expectations, replay windows, x402/pay.sh pricing, provider readiness, and strict subscription schemas.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"pluginId":{"type":"string","description":"Optional premium plugin id used to narrow webhook discovery, for example sap-premium-market-data."}},"additionalProperties":false,"description":"Premium Webhook Catalog input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_withdraw_escrow_v2","description":"Local-signer-only direct withdrawal from a V2 escrow. Hosted users should call sap_escrow_build_withdraw_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"nonce":{"type":"string","description":"Escrow nonce (as a decimal string, default: 0)"},"amount":{"type":"string","description":"Withdrawal amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."}},"description":"Withdraw SAP Escrow V2 input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_x402_build_headers_from_escrow","description":"Build SAP x402 HTTP headers by fetching escrow data for an agent wallet with SDK X402Registry.buildPaymentHeadersFromEscrow. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"network":{"type":"string","description":"Optional network identifier for X-Payment-Network"}},"description":"Build SAP x402 Headers From Escrow input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_x402_build_payment_headers","description":"Build SAP x402 HTTP headers from a public PaymentContext returned by sap_x402_prepare_payment. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"escrowPda":{"type":"string","description":"Escrow PDA (base58)"},"agentPda":{"type":"string","description":"Agent PDA (base58)"},"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"pricePerCall":{"type":"string","description":"Price per call in token base units"},"maxCalls":{"type":"string","description":"Max calls as a decimal string"},"nonce":{"type":"string","description":"Escrow nonce as a decimal string. Defaults to 0."},"txSignature":{"type":"string","description":"Escrow creation transaction signature"},"networkIdentifier":{"type":"string","description":"x402 network identifier stored in the payment context"},"network":{"type":"string","description":"Optional override for X-Payment-Network"}},"description":"Build SAP x402 Payment Headers input schema. Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_x402_calculate_cost","description":"Pure local cost calculation using SDK X402Registry.calculateCost; does not read chain state. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"basePrice":{"type":"string","description":"Base price per call in token base units"},"calls":{"type":"number","description":"Number of calls to calculate"},"totalCallsBefore":{"type":"number","description":"Cumulative settled calls before this calculation (default: 0)"},"volumeCurve":{"type":"array","description":"Array of { afterCalls, pricePerCall } pricing breakpoints"}},"description":"Calculate SAP x402 Cost input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_x402_estimate_cost","description":"Estimate cost for a number of calls using SDK X402Registry.estimateCost. Reads escrow/pricing when available and supports optional volume curve overrides. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"calls":{"type":"number","description":"Number of calls to estimate"},"pricePerCall":{"type":"string","description":"Optional base price per call override in token base units"},"totalCallsBefore":{"type":"number","description":"Optional cumulative settled calls before this estimate"},"volumeCurve":{"type":"array","description":"Optional array of { afterCalls, pricePerCall } pricing breakpoints"}},"description":"Estimate SAP x402 Cost input schema. Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_x402_fetch_escrow","description":"Fetch raw x402 escrow account data using SDK X402Registry.fetchEscrow. Resolves V2 first, then V1 fallback. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositor":{"type":"string","description":"Optional depositor wallet (base58); defaults to caller in SDK"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."}},"description":"Fetch SAP x402 Escrow input schema. Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_x402_get_balance","description":"Fetch x402 escrow balance using SDK X402Registry.getBalance. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositor":{"type":"string","description":"Optional depositor wallet (base58) to filter balance by"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."}},"description":"Get SAP x402 Balance input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_x402_has_escrow","description":"Check whether an x402 escrow exists for an agent/depositor pair. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"depositor":{"type":"string","description":"Optional depositor wallet (base58); defaults to caller in SDK"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."}},"description":"Check SAP x402 Escrow input schema. Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_x402_prepare_payment","description":"Prepare an x402 payment context using SDK X402Registry.preparePayment. New production escrow funding should use Escrow V2 fields and nonce-aware flows. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agentWallet":{"type":"string","description":"Agent wallet public key (base58)"},"pricePerCall":{"type":"string","description":"Price per call as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"deposit":{"type":"string","description":"Initial deposit as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token."},"maxCalls":{"type":"string","description":"Optional maximum number of calls covered"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"expiresAt":{"type":"string","description":"Optional expiry timestamp in unix seconds"},"volumeCurve":{"type":"array","description":"Optional array of { afterCalls, pricePerCall } pricing breakpoints"},"tokenMint":{"type":"string","description":"Optional SPL token mint; omit/null for SOL. Use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v for mainnet USDC."},"tokenDecimals":{"type":"number","description":"Optional token decimals. Defaults to 6 for USDC/SPL flows when supplied by the SDK and 9 for native SOL."},"networkIdentifier":{"type":"string","description":"Optional x402 network identifier written into headers"}},"description":"Prepare SAP x402 Payment input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_x402_settle","description":"Settle served x402 calls through SDK X402Registry.settle. Must be called by the agent owner wallet. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"callsToSettle":{"type":"number","description":"Number of calls to settle"},"serviceData":{"type":"string","description":"Service data to hash into the settlement proof"},"priorityFeeMicroLamports":{"type":"number","description":"Optional priority fee in microlamports per compute unit"},"computeUnits":{"type":"number","description":"Optional compute-unit limit"},"skipPreflight":{"type":"boolean","description":"Optional skip preflight flag"},"commitment":{"type":"string","description":"Optional processed|confirmed|finalized commitment"},"maxRetries":{"type":"number","description":"Optional RPC retry limit"}},"description":"Settle SAP x402 Calls input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sap_x402_settle_batch","description":"Batch-settle served x402 calls through SDK X402Registry.settleBatch. Must be called by the agent owner wallet. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"depositorWallet":{"type":"string","description":"Depositor wallet public key (base58)"},"nonce":{"type":"string","description":"Optional escrow nonce as a decimal string. Defaults to 0."},"entries":{"type":"array","description":"Array of { calls, serviceData } settlement entries"},"priorityFeeMicroLamports":{"type":"number","description":"Optional priority fee in microlamports per compute unit"},"computeUnits":{"type":"number","description":"Optional compute-unit limit"},"skipPreflight":{"type":"boolean","description":"Optional skip preflight flag"},"commitment":{"type":"string","description":"Optional processed|confirmed|finalized commitment"},"maxRetries":{"type":"number","description":"Optional RPC retry limit"}},"description":"Batch Settle SAP x402 Calls input schema. Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"send-arcade_listGames","description":"List available games on Send Arcade. SAP MCP context: Protocol send-arcade; operation class write. Use for Send Arcade game listing and play flows. Confirm account, wager or spend, and game rules before writes. Keep gaming activity separate from SAP identity unless it is intentionally part of an agent profile.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"status":{"type":"string","enum":["active","upcoming","ended"],"description":"Status parameter for Send-arcade List Games."}},"additionalProperties":false,"description":"Send-arcade List Games input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"send-arcade_playGame","description":"Enter and play a game on Send Arcade (pays entry fee via transaction). SAP MCP context: Protocol send-arcade; operation class write. Use for Send Arcade game listing and play flows. Confirm account, wager or spend, and game rules before writes. Keep gaming activity separate from SAP identity unless it is intentionally part of an agent profile.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"gameId":{"type":"string","description":"Game ID parameter for Send-arcade Play Game."},"betAmount":{"type":"string","description":"Raw token amount (smallest unit)"}},"required":["wallet","gameId"],"additionalProperties":false,"description":"Send-arcade Play Game input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sns_resolveDomain","description":"Resolve a .sol domain to its owner wallet address. SAP MCP context: Protocol sns; operation class read. Use to resolve a .sol domain through AgentKit SNS helpers. For SAP-linked domains, prefer sap_sns_resolve_domain because it returns SAP MCP-shaped context.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Full domain name (e.g. \"myname.sol\")"}},"required":["domain"],"additionalProperties":false,"description":"Sns Resolve Domain input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sns_reverseLookup","description":"Reverse-lookup all .sol domains owned by a wallet. SAP MCP context: Protocol sns; operation class read. Use to find the SNS domain associated with a wallet. For SAP profile checks, pair this with sap_sns_resolve_wallet or sap_sns_check_ownership.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet address to reverse-lookup"}},"required":["wallet"],"additionalProperties":false,"description":"Sns Reverse Lookup input schema. Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"sol_get_balance","description":"Fetch the SOL balance for a wallet or account using the configured Solana RPC endpoint.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"type":"string","description":"Wallet or account public key in base58"},"pubkey":{"type":"string","description":"Alias for address"},"commitment":{"type":"string","enum":["processed","confirmed","finalized"],"description":"Optional commitment override"}},"description":"Get SOL Balance input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"spl-token_burn","description":"Burn SPL tokens from the owner's token account. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)"},"owner":{"type":"string","description":"Token account owner"},"amount":{"type":"string","description":"Amount to burn"}},"required":["mint","owner","amount"],"additionalProperties":false,"description":"Spl-token Burn input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"spl-token_closeAccount","description":"Close a token account and reclaim the rent SOL. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"account":{"type":"string","description":"Token account to close"},"owner":{"type":"string","description":"Token account owner"},"destination":{"type":"string","description":"Solana public key (base58)"}},"required":["account","owner"],"additionalProperties":false,"description":"Spl-token Close Account input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"spl-token_deployToken","description":"Deploy a new SPL token with Metaplex metadata. Returns the mint address and an unsigned transaction. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"owner":{"type":"string","description":"Token owner / mint authority wallet"},"name":{"type":"string","description":"Token name (stored in Metaplex metadata)"},"symbol":{"type":"string","description":"Token symbol (e.g. \"MYTKN\")"},"decimals":{"type":"number","description":"Token decimals (default: 9)"},"initialSupply":{"type":"string","description":"Raw token amount (smallest unit, no decimals)"},"uri":{"type":"string","description":"URI to off-chain metadata JSON (image, description, etc.)"},"isMutable":{"type":"boolean","description":"Whether metadata is mutable (default: true)"},"freezeAuthority":{"type":"string","description":"Solana public key (base58)"},"mintAuthority":{"type":"string","description":"Solana public key (base58)"},"sellerFeeBasisPoints":{"type":"number","description":"Royalty fee in bps (for fungible with metadata)"}},"required":["owner","name","symbol"],"additionalProperties":false,"description":"Spl-token Deploy Token input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"spl-token_freezeAccount","description":"Freeze a token account (prevents all transfers). Requires freeze authority. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)"},"account":{"type":"string","description":"Token account to freeze"},"freezeAuthority":{"type":"string","description":"Freeze authority wallet"}},"required":["mint","account","freezeAuthority"],"additionalProperties":false,"description":"Spl-token Freeze Account input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"spl-token_getBalance","description":"Get token or SOL balance for a wallet. If mint is omitted, returns native SOL balance. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle. Parameter aliases accepted by SAP MCP for agent ergonomics: owner -> wallet, address -> wallet, pubkey -> wallet. Prefer the canonical schema names in new calls.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Spl-token Get Balance input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"spl-token_getTokenAccounts","description":"List all SPL token accounts for a wallet with balances and metadata. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle. Parameter aliases accepted by SAP MCP for agent ergonomics: owner -> wallet, address -> wallet, pubkey -> wallet. Prefer the canonical schema names in new calls.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"description":"Spl-token Get Token Accounts input schema. Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"spl-token_mintTo","description":"Mint additional tokens to a destination wallet (requires mint authority). SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address"},"mintAuthority":{"type":"string","description":"Mint authority wallet"},"destination":{"type":"string","description":"Wallet to receive minted tokens"},"amount":{"type":"string","description":"Amount to mint (raw, smallest unit)"}},"required":["mint","mintAuthority","destination","amount"],"additionalProperties":false,"description":"Spl-token Mint To input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"spl-token_rugCheck","description":"Check a token for potential rug pull risks: mint/freeze authority, holder concentration, liquidity. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint to analyze"}},"required":["mint"],"additionalProperties":false,"description":"Spl-token Rug Check input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"spl-token_thawAccount","description":"Thaw (unfreeze) a previously frozen token account. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mint":{"type":"string","description":"Token mint address (base58)"},"account":{"type":"string","description":"Token account to thaw"},"freezeAuthority":{"type":"string","description":"Freeze authority wallet"}},"required":["mint","account","freezeAuthority"],"additionalProperties":false,"description":"Spl-token Thaw Account input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"spl-token_transfer","description":"Transfer SPL tokens between wallets. Optionally creates the recipient ATA. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"from":{"type":"string","description":"Sender wallet address"},"to":{"type":"string","description":"Recipient wallet address"},"mint":{"type":"string","description":"Token mint address"},"amount":{"type":"string","description":"Amount to transfer (raw, smallest unit)"},"createAta":{"type":"boolean","description":"Create recipient ATA if needed (default: true)"},"memo":{"type":"string","description":"Optional memo to attach to the transaction"}},"required":["from","to","mint","amount"],"additionalProperties":false,"description":"Spl-token Transfer input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"spl-token_transferSol","description":"Transfer native SOL between wallets via SystemProgram.transfer. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.\n\nSAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"from":{"type":"string","description":"Sender wallet address"},"to":{"type":"string","description":"Recipient wallet address"},"amount":{"type":"string","description":"Amount in lamports (1 SOL = 1_000_000_000 lamports)"},"memo":{"type":"string","description":"Optional memo to attach"}},"required":["from","to","amount"],"additionalProperties":false,"description":"Spl-token Transfer Sol input schema. Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"staking_getStakeAccounts","description":"List all stake accounts for a wallet with delegation status. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet to query stake accounts for"}},"required":["wallet"],"additionalProperties":false,"description":"Staking Get Stake Accounts input schema. Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"staking_stakeJupSOL","description":"Stake SOL for jupSOL (Jupiter liquid staking). Instant liquidity, auto-compounding. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Amount in lamports to stake for jupSOL"}},"required":["wallet","amount"],"additionalProperties":false,"description":"Staking Stake Jup S O L input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"staking_stakeSOL","description":"Stake native SOL to a validator. Creates a stake account and delegates. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Wallet to stake from"},"amount":{"type":"string","description":"Amount in lamports to stake"},"validator":{"type":"string","description":"Solana public key (base58)"}},"required":["wallet","amount"],"additionalProperties":false,"description":"Staking Stake S O L input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"staking_stakeSolayer","description":"Stake SOL for sSOL via Solayer. Re-staking protocol with additional yield. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Amount in lamports to stake for sSOL"}},"required":["wallet","amount"],"additionalProperties":false,"description":"Staking Stake Solayer input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"staking_unstakeJupSOL","description":"Unstake jupSOL back to SOL. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Amount of jupSOL to unstake"}},"required":["wallet","amount"],"additionalProperties":false,"description":"Staking Unstake Jup S O L input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"staking_unstakeSOL","description":"Deactivate and withdraw SOL from a stake account. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"stakeAccount":{"type":"string","description":"Stake account to deactivate and withdraw"}},"required":["wallet","stakeAccount"],"additionalProperties":false,"description":"Staking Unstake S O L input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}},{"name":"staking_unstakeSolayer","description":"Unstake sSOL back to SOL via Solayer. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.\n\nSAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wallet":{"type":"string","description":"Solana public key (base58)"},"amount":{"type":"string","description":"Amount of sSOL to unstake"}},"required":["wallet","amount"],"additionalProperties":false,"description":"Staking Unstake Solayer input schema. Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial. Use exact field names from this schema; do not guess aliases or include private key material."}}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-26T05:10:37.392Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T05:10:37.424Z","components":{"code":{"score":25,"max":25,"notes":["304 source files scanned"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 4759ms"]},"poisoning":{"score":15,"max":15,"notes":["451 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 77 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 2 days ago"]},"identity":{"score":8,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://mcp.sap.oobeprotocol.ai/mcp","reachable":true,"authRequired":false,"latencyMs":4759,"serverInfo":{"name":"sap-mcp-server","version":"0.9.86"}}],"packages":[{"registryType":"npm","identifier":"@oobe-protocol-labs/sap-mcp-server","version":"0.7.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":30,"publishedAt":"2026-07-13T17:19:44.230Z","repositoryUrl":"git+https://github.com/OOBE-PROTOCOL/sap-mcp.git","weeklyDownloads":254}],"repo":{"found":true,"owner":"OOBE-PROTOCOL","repo":"sap-mcp","archived":false,"pushedAt":"2026-09-24T16:24:53Z","stars":3,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/229133429?v=4","ownerCreatedAt":"2025-08-28T13:09:32Z","license":"MIT"},"icon":{"url":"https://mcp.sap.oobeprotocol.ai/favicon.png","source":"registry","width":500,"height":500},"presence":{"stars":3,"forks":0,"downloadsWeek":254,"license":"MIT","lastPushAt":"2026-09-24T16:24:53.000Z","score":41}}}},"grade_history":[],"reviews":[]}