putty
API ReferenceArtifacts

Create a drop

Registers a drop: a collection rendered with one of your brand kits, with a fixed supply and a price per edition. **The drop renders with your brand kit; it does not copy it.** `brandKitId` must be a kit you own, and the drop reads its colours and fonts from that kit on every render — so editing the brand edits every drop that renders with it. A kit id belonging to another creator is refused with the same answer as one that does not exist, so this route cannot be used to find out whose kits exist. **`supply` is fixed here and can never be changed.** Every buyer of an edition was promised a collection of a given size, and a collection that grows after the fact is not that. **A drop priced above zero needs `creatorAddress` — your own wallet.** putty never holds a creator's takings: the address is handed to the payment provider so the money goes from the collector straight to you. There is no default address and no fallback, so a paid drop with no address is refused rather than quietly pointed somewhere putty controls. A `priceUsd` of "0.00" is a free mint and needs no address.

POST
/creator/drops

Registers a drop: a collection rendered with one of your brand kits, with a fixed supply and a price per edition. The drop renders with your brand kit; it does not copy it. brandKitId must be a kit you own, and the drop reads its colours and fonts from that kit on every render — so editing the brand edits every drop that renders with it. A kit id belonging to another creator is refused with the same answer as one that does not exist, so this route cannot be used to find out whose kits exist. supply is fixed here and can never be changed. Every buyer of an edition was promised a collection of a given size, and a collection that grows after the fact is not that. A drop priced above zero needs creatorAddress — your own wallet. putty never holds a creator's takings: the address is handed to the payment provider so the money goes from the collector straight to you. There is no default address and no fallback, so a paid drop with no address is refused rather than quietly pointed somewhere putty controls. A priceUsd of "0.00" is a free mint and needs no address.

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 drop to create.

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/creator/drops" \  -H "Content-Type: application/json" \  -d '{    "brandKitId": "string",    "name": "string",    "symbol": "string",    "supply": 1,    "priceUsd": "string"  }'
{  "id": "string",  "name": "string",  "symbol": "string",  "description": "string",  "brandKitId": "string",  "brand": {    "id": "string",    "name": "string",    "tagline": "string",    "palette": {      "property1": "string",      "property2": "string"    },    "fonts": {      "heading": {        "family": "string",        "weights": [          0        ]      },      "body": {        "family": "string",        "weights": [          0        ]      }    }  },  "imageUrl": "string",  "priceUsd": "string",  "creatorAddress": "string",  "status": "draft",  "supply": {    "supply": 0,    "minted": 0,    "remaining": 0,    "soldOut": true  },  "mintPageUrl": "string",  "createdAt": "string",  "updatedAt": "string"}