Build SAP Agent Registration Transaction
sap_build_agent_register_transactionHosted-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.
SAP 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.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Public display name for the SAP agent. | |
| agentId | No | Optional stable lowercase agent id (off-chain, separate from the on-chain PDA). | |
| pricing | No | Optional pricing tiers advertised by the agent. | |
| agentUri | No | Optional public HTTPS/IPFS/Arweave metadata URI. | |
| protocols | No | Protocol tags the agent supports (sap, mcp, jupiter, sns, x402...). | |
| description | No | Public description of what the agent does. | |
| ownerWallet | No | Agent owner wallet public key (base58) — also the transaction fee payer and sole required signer. | |
| capabilities | No | Capability list: [{ id, description, protocolId, version }] (strings accepted as shorthand). | |
| x402Endpoint | No | Optional public x402 discovery/payment endpoint. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | MCP content blocks returned to the caller. | |
| isError | No | True when the tool result represents an application-level error. |