Plans and limits
Three plans. Free needs no key and no account: trade, launch, move tokens and read live data straight away, at 0.25% per trade. Lite and Developer are monthly, paid in SOL, and take the trade fee to 0%. Compare them side by side on the pricing page, and get a plan from the dashboard.
| Free | Lite | Developer | |
|---|---|---|---|
| Price | free | see pricing | see pricing |
| Trade fee | 0.25% | 0% | 0% |
| API key | not needed (live candles: a free key) | yes | yes |
These plans are for Solana. The APIs for BNB Chain, Robinhood Chain and Arc stay free to use, with a fee per trade and no subscription.
The key
Everything on Free works without a key, except live candles: for those, ask for a free key in the Telegram group. Elsewhere a key is optional: add your plan's key and the same request runs at your plan's limits, at 0%. Paid features need it.
You get one key per account, on the dashboard, once you have a plan. Send it with every request:
- REST: the
x-api-keyheader. - WebSocket (Socket.IO):
auth: { api_key }in the handshake. - Ultra Fast Shred Stream:
?key=on the URL, or thex-api-keyheader.
// REST
await fetch("https://sol.shrine.trade/api/local-trade", {
method: "POST",
headers: { "content-type": "application/json", "x-api-key": "sk_…" },
body: JSON.stringify({ /* … */ }),
});
// WebSocket
const socket = io("https://sol.shrine.trade", { auth: { api_key: "sk_…" } });
Keep it secret: anyone with the key uses your plan. Make a new one on the dashboard and the old one stops working.
Trading
| Free | Lite | Developer | |
|---|---|---|---|
| Local Trade API | 3 req/s, 0.25% | 3 req/s, 0% | 10 req/s, 0% |
| Create token | 1 req/s | 3 req/s | 5 req/s |
| Claim creator fees | 1 req/s | 5 req/s | 10 req/s |
| Wallet utilities | 1 req/s | 3 req/s | 10 req/s |
| Jito bundles | – | 1 req/s | 10 req/s |
| Multi-action transactions | – | 3 req/s | 10 req/s |
A launch is free; its dev buy is a trade and pays the plan's trade fee.
Lightspeed
| Free | Lite | Developer | |
|---|---|---|---|
| Shrine staked lane, ~100 ms | – | 3 req/s, 0% | 10 req/s, 0% |
| Provider racing: all 8 SWQoS lanes, ~50 ms | – | – | 10 req/s, 0% |
| Block 0 lane | – | – | ✓ |
Tips you set go to the landing provider, not to us. A trade goes out from a wallet made on the dashboard (its ls_ key in x-api-key), or from your own wallet: your plan's key in x-api-key, its privateKey in the body. See Trade.
Data
| Free | Lite | Developer | |
|---|---|---|---|
| Metadata | 1 req/s | 5 req/s | 20 req/s |
| SOL price | 1 req/s | 10 req/s | 20 req/s |
| Price, trades, SOL price, new tokens and migrations streams | 2 sockets | 5 sockets | 50 sockets |
| Wallet stream | 1 wallet, 20 tokens, 24 h back | 3 wallets, 100 tokens each, 72 h back | 20 wallets, 500 tokens each, 168 h back |
| Live candles | 1 token, 1 socket, free key from Telegram | every token, 3 sockets | every token, 10 sockets |
| Candle history | 1 a minute | 1 a second | 5 a second |
| Advanced Data Stream | – | 2 sockets | 5 sockets |
| 24-hour replay | – | 1 socket | 3 sockets |
| Ultra Fast Shred Stream | – | – | 3 sockets |
| Hourly archive | ✓ | ✓ | ✓ |
Developer only
- Every region: Frankfurt, Amsterdam and New York. Free and Lite run on Frankfurt.
- Private link: your server in our datacenter, wired straight to the API.
- A private Telegram group with the team.
When you reach a limit
Every refusal is JSON: what was refused, the plan, and where the plans are.
// 403: not in your plan
{ "error": "plan_required", "plan": "lite", "message": "Jito bundles come with Lite and Developer", "upgrade": "https://shrine.trade/api/pricing/" }
// 429: past your plan's rate (also the Retry-After header)
{ "error": "rate_limited", "plan": "free", "message": "3 requests a second on this endpoint on Free - slow down and retry", "retryAfterMs": 1000, "upgrade": "https://shrine.trade/api/pricing/" }
// WebSocket ack: every socket your plan allows for this stream is in use
{ "error": "limit_exceeded", "plan": "lite", "message": "…", "upgrade": "https://shrine.trade/api/pricing/" }
plan: onplan_required, the cheapest plan that has it; otherwise the plan you are on.upgrade: the pricing page; left out on Developer.401 unknown_key/key_disabled: the key is not one of ours, or a new one replaced it. Send no key to use Free.
Paying
On the dashboard: log in with Phantom or Telegram, pick a plan and pay in SOL. The plan starts as soon as the payment arrives and runs for a calendar month; pay again to add another. A discount code, if you have one, goes in the field under the plans.