API reference
Trading
Build a trade for a wallet to sign, follow a transaction, and read the SOL price.
How a trade works
- 1Build it: send the trade to
/api/v1/transaction/build. You get an unsigned transaction. - 2Sign it in the wallet. Zpad never signs and never sees a key.
- 3Send it to Solana, with your own connection or through the Solana relay.
- 4Follow it with
/api/v1/transaction/statusuntil it issuccessorfailed.
Build a trade
POST
/api/v1/transaction/buildNo sign in, CSRF headerBuilds an unsigned buy or sell for a wallet, with PumpPortal's local transaction API. Only coins launched on Zpad. While a coin is on its curve the trade goes to the curve; once graduated it goes to PumpSwap. No sign in needed: the wallet signs the result itself.
PumpPortal takes 0.5% of the trade and pump.fun its own trading fee.
- Sign in
- Not needed
- CSRF header
- Needed:
x-zpad: zpad - Cached
- Never
- Rate limit
- 20 a minute per address (IP)
Body
Response
{
"success": true,
"message": "Transaction built",
"data": {
"tx": "<unsigned transaction, base64>"
}
}Errors
Example
curl -s -X POST "/api/v1/transaction/build" \
-H "x-zpad: zpad" \
-H "content-type: application/json" \
-d '{"mint":"<coin address>","side":"buy","amount":0.1,"denominatedInSol":true,"slippage":2,"wallet":"<wallet address>"}'Transaction status
GET
/api/v1/transaction/statusNo sign inWhere a transaction is, read from Solana. success means confirmed or finalized.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- Never
- Rate limit
- 60 a minute per address (IP)
Query
Response
{
"success": true,
"message": "Transaction status fetched",
"data": {
"signature": "<transaction signature>",
"status": "processing" | "success" | "failed" | "not_found"
}
}Errors
Example
curl -s "/api/v1/transaction/status?signature=<transaction signature>"SOL price
GET
/api/v1/price/solNo sign inThe price of 1 SOL in USD, from Jupiter with DexScreener as the fallback.
- Sign in
- Not needed
- CSRF header
- Not needed
- Cached
- 15 seconds at the edge
- Rate limit
- None of its own
Response
{
"success": true,
"message": "SOL price fetched successfully",
"data": number
}Errors
Example
curl -s "/api/v1/price/sol"