Skip to main content

Authentication

Prysmatic is a prepaid API. Before you can call anything you need two things: an API key (your identity) and a credit balance (what you spend per call). Both are set up from the dashboard, so you never have to handle private keys or write any signing code.

1. Connect your wallet

Open the dashboard at prysmatic-sol.xyz and connect your Phantom wallet. You sign a one-time login message in the wallet popup to prove ownership. Nothing leaves your wallet and no transaction is sent. That wallet becomes your account identity. The Demo app page walks through the same flow if you want to see it first.

2. Get your API key

Once connected, go to the Account page in the dashboard (prysmatic-sol.xyz). Your API key is shown when it is created or rotated. Store it then; after that the dashboard only shows the last characters. This single key authenticates every request you make.

  • Keep it secret. Anyone with the key can spend your credits.
  • You can rotate it from the dashboard at any time. Rotating immediately invalidates the old key.

3. Load credits

Credits are bought with USDT. From the dashboard you send USDT to the displayed store address from your connected wallet, then hit verify. The deposit is detected and converted to credits at the published rate (for example, 1 USDT = 1000 credits). Your payment history and current balance are shown on the same page.

A few rules worth knowing:

  • The deposit must come from your connected wallet. That is how it is matched to your account.
  • Each deposit is credited exactly once.
  • Your live balance and rate are always visible on the dashboard.

4. Use the key

REST

Send your API key as a Bearer token:

Authorization: Bearer <API_KEY>

WebSocket

The key does not go in the URL. Send the same Bearer header used by REST:

Authorization: Bearer <API_KEY>

See WebSocket for the full connection flow.

What spends credits

ActionCost
GET /wallets, /wallets/holdings, and /wallets/{alias}/*light (1)
GET /tokens/{mint}/* and /tokens/heldheavier (3)
Each live-feed message you receive1 per message

When your balance cannot cover a call, REST returns 402 insufficient_credits and the WebSocket closes after telling you the balance is exhausted. Top up from the dashboard to continue.

Rate limits

Requests are rate limited per client IP. The login endpoints are capped tightly; the rest of the API has a higher budget. Over the limit, the API returns 429 rate_limited. Spread out bursts and retry after a short pause; for steady workloads you will not hit it under normal use.

Error codes

  • 401 unauthorized: missing or invalid API key.
  • 402 insufficient_credits: not enough balance for this call.
  • 404 wallet_not_found: the alias does not resolve to a tracked wallet.
  • 429 rate_limited: too many requests from your IP; back off and retry.