P

API

The grid is public. Launches are persisted and served through a small REST API; aggregate stats are summed live from the database. Tokens are minted and creator fees collected with pump.fun local transactions that are built server-side, signed in your own wallet, and broadcast from your own browser. No API keys, no custody.

Grid

GET/api/stats

real-time aggregate grid totals, summed from the database

200 { "stats": { "nodes": 128, "total_tflops": 39936,
  "total_tokens_served": 4120553, "nodes_live": 94 } }

Launches

GET/api/launches?limit=50&offset=0

paginated launches, newest first; returns total count

200 { "launches": [ … ], "total": 128, "limit": 50, "offset": 0 }
GET/api/launches?creator=<wallet>

every node launched by one wallet

GET/api/launches/<mint>

a single node by its mint address

POST/api/launches

persist a confirmed launch (called after the mint lands)

body { "name", "ticker", "mint", "creator",
  "description?", "image_url?", "website?",
  "twitter?", "telegram?", "signature?" }

Minting

POST/api/metadata

multipart upload of token image + metadata JSON to IPFS

200 { "image": "ipfs://…", "metadataUri": "ipfs://…" }
POST/api/pump-create

build the unsigned pump.fun create tx (mint partially signs)

body { "publicKey", "name", "symbol", "uri", "amount?" }
200 { "transaction": "<base64>", "mint": "<pubkey>" }
POST/api/collect-fees

build the unsigned collectCreatorFee tx for a creator wallet

body { "publicKey", "priorityFee?" }
200 { "transaction": "<base64>" }

A launch flows in four calls: upload metadata → build create tx → sign & send in-wallet → persist. Fee collection is one call: build → sign → send. The mint keypair is generated server-side and partially signs; your wallet always adds the final signature.