putty
API ReferenceTools

Create a signing request

Persists an **unsigned** transaction and returns it as a `TxRequest`. The server does not sign and does not broadcast: the caller signs with its own wallet, then reports the hash to `POST /tx-requests/{id}/submitted`. Which of the two signing paths applies is decided by the caller's bearer, not by the request — a Privy access token yields `delivery: "dashboard"` (the dashboard's sign-request modal picks it up) and an `sk-` API key yields `delivery: "unsigned"` (nothing is queued for the dashboard). The response carries the decoded plain-English `summary` and the `simulation` so the caller can show the user what they are approving before signing.

POST
/tx

Persists an unsigned transaction and returns it as a TxRequest. The server does not sign and does not broadcast: the caller signs with its own wallet, then reports the hash to POST /tx-requests/{id}/submitted. Which of the two signing paths applies is decided by the caller's bearer, not by the request — a Privy access token yields delivery: "dashboard" (the dashboard's sign-request modal picks it up) and an sk- API key yields delivery: "unsigned" (nothing is queued for the dashboard). The response carries the decoded plain-English summary and the simulation so the caller can show the user what they are approving before signing.

Request Body

application/json

The unsigned transaction to persist.

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/tx" \  -H "Content-Type: application/json" \  -d '{    "chainSlug": "ethereum",    "to": "string",    "source": "string"  }'
{  "id": "string",  "ownerId": "string",  "chainSlug": "ethereum",  "unsignedTx": {    "chainId": 0,    "to": "string",    "data": "string",    "value": "string"  },  "summary": [    "string"  ],  "simulation": {    "ok": true,    "balanceChanges": [      {        "token": "string",        "symbol": "string",        "delta": "string"      }    ],    "events": [      "string"    ]  },  "fees": [    {      "label": "string",      "bps": 0    }  ],  "delivery": "dashboard",  "status": "pending",  "txHash": "string",  "dependsOn": "string",  "createdAt": "string",  "expiresAt": "string"}