Billing Model
Nodius uses a prepaid credit system with per-method pricing. No subscriptions, no invoices. Deposit USDC (SPL) on Solana mainnet (minimum $0.01), receive credits, spend credits on RPC calls.
How It Works
- Send USDC (SPL) on Solana mainnet to the deposit wallet (minimum $0.01). Credits appear within seconds.
- Credits are applied automatically (~30 seconds after finalization)
- Each RPC method deducts credits based on its computational weight
- When credits reach 0, requests return 402 Payment Required
โ ๏ธ Token & chain: Only SPL USDC on Solana mainnet is accepted. USDC mint:
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. Do not send SOL or other tokens โ they will be permanently lost. Obtain the deposit address programmatically viaGET /account/infoor the402responsedata.deposit_address.
Credit Rate
| Purchase | Credits |
|---|---|
| 1 USDC | 10000 credits |
Credits expire after 10 days from the deposit date. Monitor via GET /account/info and the credit_batches field.
Method Costs
READ_CHEAP โ 1 Credit
getSlot,getBalance,getAccountInfo,getMultipleAccounts(1 per account),getLatestBlockhash,getEpochInfo,getHealth,getVersion,getTransactionCount,getBlockHeight,getBlockTime,isBlockhashValid,getTokenAccountBalance,getPriorityFeeEstimate,suggestPriorityFee- Other lightweight reads
READ_MEDIUM โ 5 Credits
simulateTransaction,getTransaction,getSignaturesForAddress,getAssetsByOwner- Medium-weight account/transaction queries
ARCHIVE_HISTORY โ 5 Credits, Profile-Gated
getEnrichedTransaction,explainTransaction,getConfirmedTransaction,getConfirmedSignaturesForAddress2- These require a dedicated archive endpoint. The hot-node endpoint returns a deterministic no-charge service-gate error when the archive profile is disabled.
READ_HEAVY โ 25 Credits
simulateBundle,getBlock,getBlocks,getBlocksWithLimit,getTokenAccountsByOwner,getTokenAccountsByDelegate- getBlock methods are served from hot-node retention (~3.7h of history); slots outside retention return the upstream node's native error.
SEND โ 2 Credits
sendTransaction,sendSmartTransaction
SEND_BUNDLE โ 10 Credits
sendBundle(Jito integration)
Jito Tips: Nodius charges credits for the API call, but Jito tips are paid by the customer on-chain. Your transaction/bundle must include a tip instruction to a Jito tip account. Nodius does not add, modify, or pay tips. Use
GET /jito/getTipAccountsandGET /jito/tipFloorto determine the appropriate tip amount before submitting.
Jito Endpoints
| Endpoint | Cost |
|---|---|
| POST /jito/sendBundle | 10 credits |
| POST /jito/getBundleStatuses | 2 credits |
| GET /jito/getTipAccounts | 1 credit |
| GET /jito/tipFloor | 1 credit |
WebSocket Billing
| Event | Cost |
|---|---|
| Creating a subscription | 5 credits (WS_SUBSCRIBE) |
| Each notification received | 1 credit (WS_NOTIFICATION) |
| Unsubscribing | Free |
| Connection / disconnection | Free |
Connection requirements:
- Minimum 100 credits to connect
- Auto-disconnect below 10 credits (close code 4002)
Cost estimates per hour:
slotSubscribe: ~9,000 credits/hour (~2.5 notifications/sec)accountSubscribe(active): varies by activitylogsSubscribe("all"): ~360,000 credits/hourprogramSubscribe(Token Program): ~1,800,000 credits/hour
Yellowstone gRPC Billing
| Usage | Cost |
|---|---|
| Active gRPC connection | 60 credits per minute |
Yellowstone gRPC connections are billed at a flat rate per minute while connected. There is no per-notification charge. This makes it cost-effective for high-throughput streaming use cases.
Connection billing:
- Charge starts when the gRPC stream is established
- Billed every 60 seconds while connected
- No charge for the initial connection handshake
- Partial minutes are billed as full minutes
- Disconnecting stops billing โ you are not charged for the remainder of the minute after disconnection, but any partial minute already started before the disconnection is counted as a full minute
Batch Requests
Batch JSON-RPC requests are supported. Each method in the batch is billed individually by method cost. A batch of 5 getBalance calls costs 5 credits (5 x 1). Batch requests count as 1 request for rate limiting.
Monitoring Your Balance
Every HTTP response includes: X-Credits-Remaining: 84521
When balance drops below 1000: X-Credits-Low: true
At 0 credits: HTTP 402 Payment Required
Refund Policy
- Credits are non-refundable
- No withdrawals, chargebacks, or credit transfers between accounts
- Expired credit batches (10-day TTL) are not refunded
- Requests that fail before reaching the upstream do not consume credits
- Upstream transport failures are refunded automatically
- Only SPL USDC on Solana mainnet is supported (mint:
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v). Do not send SOL or other tokens to the deposit wallet. - Minimum deposit is $0.01 USDC. Deposits below this amount are recorded but not credited.
Lifecycle Webhooks
In addition to on-chain signature watching, Nodius supports lifecycle event webhooks that fire on account-level events. Create a webhook with filter_type: "lifecycle" and specify which events to subscribe to via the lifecycle_events array.
Available Events
| Event | Fires When | Payload Fields |
|---|---|---|
low_balance |
Balance drops below 1,000 credits | balance, credits_per_usdc |
deposit.credited |
A deposit is processed and credits granted | amount_usd, credits_awarded, new_balance, tx_signature |
credits.expiring |
A credit batch is within 24h of expiry | batch_id, credits_remaining, expires_at |
api_key.rotated |
API key is rotated via POST /account/api-key | old_key_prefix, new_key_prefix |
Dedup Behavior
low_balance: One notification per hour per account while balance remains below threshold. Cleared when balance recovers above 1,000.credits.expiring: One notification per batch per hour. Fires every reaper cycle (60s) if not already notified.deposit.creditedandapi_key.rotated: Fire once per event (no dedup needed).
Creating a Lifecycle Webhook
POST /webhooks
{
"url": "https://your-server.com/webhook",
"filter_type": "lifecycle",
"lifecycle_events": ["low_balance", "deposit.credited"]
}
All webhooks (on-chain and lifecycle) use the same delivery infrastructure: HMAC-signed payloads, exponential backoff retry, per-delivery billing, and SSRF protection.