putty
API ReferenceTools

Set up a putty pool

Mines a CREATE2 salt so the hook's address carries its permission bits, then builds the three transactions that stand the pool up: deploy the hook, initialise the pool, add liquidity. The server does not sign and does not send. The order matters — the pool records the hook address, and liquidity cannot exist in a pool that does not — so the transactions are returned in sequence and must be signed in order. Every pool putty sets up charges putty's fee on each swap, so this route refuses while `PUTTY_TREASURY_ADDRESS` is the zero address on a non-fork chain. The fee is fixed at construction: there is no function anywhere that can raise it or redirect the treasury, so a pool's terms are settled the moment it exists.

POST
/pools/setup

Mines a CREATE2 salt so the hook's address carries its permission bits, then builds the three transactions that stand the pool up: deploy the hook, initialise the pool, add liquidity. The server does not sign and does not send. The order matters — the pool records the hook address, and liquidity cannot exist in a pool that does not — so the transactions are returned in sequence and must be signed in order. Every pool putty sets up charges putty's fee on each swap, so this route refuses while PUTTY_TREASURY_ADDRESS is the zero address on a non-fork chain. The fee is fixed at construction: there is no function anywhere that can raise it or redirect the treasury, so a pool's terms are settled the moment it exists.

Authorization

bearerAuth
AuthorizationBearer <token>

A bearer token. The Account routes accept a Privy access token; the MCP transport accepts an sk- API key issued by POST /account/api-keys.

In: header

Request Body

application/json

The pool's currencies, price, hook, and initial liquidity.

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/pools/setup" \  -H "Content-Type: application/json" \  -d '{    "chain": "ethereum",    "currency0": "string",    "currency1": "string",    "initialPrice": "string",    "fee": 0,    "tickSpacing": 0,    "hook": {      "flags": "string",      "initCodeHash": "string",      "creationCode": "string"    },    "liquidity": {      "amount0": "string",      "amount1": "string"    }  }'
{  "poolKey": {    "currency0": "string",    "currency1": "string",    "fee": 0,    "tickSpacing": 0,    "hooks": "string"  },  "poolId": "string",  "sqrtPriceX96": "string",  "salt": "string",  "hookAddress": "string",  "transactions": [    {      "chainId": 0,      "to": "string",      "data": "string",      "value": "string"    }  ],  "fees": [    {      "label": "string",      "bps": 0    }  ],  "steps": [    "string"  ]}