privy_get_transaction_status
Get the current status of a Privy transaction by id. Hits `GET /v1/transactions/{transaction_id}`. The handler does the same ownership check as `privy_get_transaction`: a transaction whose `wallet_id`'s `owner_id` does not match the caller's DID returns a 403-style isError. Returns the full `PrivyTransaction` record. The agent typically calls this after the user has signed a `privy_prepare_transaction` request, to poll for `status === 'mined'` (or similar) and report confirmation. The status string is provider-specific; the schema accepts whatever Privy returns.
Get the current status of a Privy transaction by id. Hits GET /v1/transactions/{transaction_id}. The handler does the same ownership check as privy_get_transaction: a transaction whose wallet_id's owner_id does not match the caller's DID returns a 403-style isError.
Endpoint
GET /v1/transactions/{transaction_id}
Input
The tool takes a single JSON object. Every field, its type, and an example are on the generated reference at GET /mcp/tools, under this tool's name.
Calling it
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "privy_get_transaction_status", "arguments": {} }
}Put your arguments in place of the empty object. A call that fails comes back as a normal result carrying isError: true and a message naming what went wrong, not as a JSON-RPC protocol error.
Notes
Returns the full PrivyTransaction record. The agent typically calls this after the user has signed a privy_prepare_transaction request, to poll for status === 'mined' (or similar) and report confirmation. The status string is provider-specific; the schema accepts whatever Privy returns.
The full request and response shape, and a live playground, live on the generated reference at GET /mcp/tools.
privy_get_transaction
Get a single transaction by id. Hits `GET /v1/transactions/{transaction_id}`. The handler does an ownership check: a transaction whose `wallet_id`'s `owner_id` does not match the caller's DID returns a 403-style isError. Returns the full `PrivyTransaction` record with passthrough on every field. Use this for a single-transaction lookup; for a per-wallet history, use `privy_list_wallet_transactions`.
privy_prepare_transaction
Prepare an EVM transaction for signing, and return the unsigned transaction. **putty never signs and never sends** — the backend holds no key for any user. How the signature is produced depends on how you authenticated: - **Privy access token** (a dashboard user): pass `fromWalletId`, and the handler does an ownership check on that wallet (a wallet you do not own 403s). The result is `delivery: "dashboard"` — the website's sign-request modal picks it up, the user signs with their Privy wallet via `useSendTransaction`, and the website posts the hash back. - **`sk-` API key** (an external agent): you have no Privy wallet, so pass `from` — the address you will sign with. The result is `delivery: "unsigned"` and carries a persisted `TxRequest` with `unsignedTx` (the exact `chainId` / `to` / `data` / `value` to sign), a plain-English `summary` of what it does, and the `simulation`. Nothing is queued for the dashboard: you sign with your own wallet and may report the hash with `POST /tx-requests/{id}/submitted`. Use this as the entry point for any value-moving agent action; write a clear `description` so the user knows what they are signing. To check what a transaction would do first, use `simulate_transaction`; to follow a request to its receipt, use `tx_request_status`.