Skip to main content
The Veto API is the same one veto.fun runs on. Everything is public and JSON, with no API key.

Conventions

  • Amounts are decimal numbers (0.42), not base units. Every coin has a pair asset (quote): SOL, USDC, a tokenized stock or another token. Plain amount fields like amount, pots.jackpot and totals.paid are in that pair asset.
  • Fields ending in Sol are always SOL: the SOL value at the time of the payout, or at current prices for pots. For SOL-paired coins they match the plain fields.
  • Token amounts are whole tokens (1500000), not base units. Every Veto coin has 6 decimals and a supply of 1,000,000,000.
  • Percentages in splits are basis points: 7000 is 70%. Other percentages, like weightPct, are plain percents.
  • Times are ISO 8601 strings in UTC.
  • Addresses are base58 Solana public keys. Coins are identified by their mint address.

Errors

Errors return a non-2xx status and a message you can show to users as-is:

Rate limits

Read endpoints aren’t rate limited. Write endpoints are limited per IP address:

Transactions

Launch and trade endpoints return an unsigned or partly signed transaction as base64. Deserialize it with VersionedTransaction.deserialize, sign it with the user’s wallet, and either send it yourself (trades) or post it back (launches). The API never asks for a private key.