Credits & Billing
Inodra uses a credit-based billing system. Every API call, webhook delivery, and stream event consumes credits from your monthly quota.
Credit Costs
API Calls (gRPC, JSON-RPC, REST)
| Operation | Credits |
|---|---|
| Any read (getObject, getBalance, getCheckpoint, etc.) | 1 |
| Batch/list reads (multiGetObjects, queryEvents, etc.) | 1 |
| Transaction execution (executeTransactionBlock) | 5 |
| Transaction simulation (dryRun, devInspect) | 5 |
1 credit = 1 API call, regardless of whether it's a single read or a batch operation. This applies to all protocols: gRPC, JSON-RPC, and REST.
Transaction execution and simulation cost 5 credits due to the higher computational resources required.
GraphQL
| Operation | Credits |
|---|---|
| Any GraphQL query or mutation | 20 |
GraphQL operations are charged a flat 20 credits because queries can be arbitrarily complex with nested fields and multiple operations.
Webhooks
| Action | Credits |
|---|---|
| Successful delivery | 2 |
| Each retry attempt (on failure) | 1 |
| Manual replay | 2 |
Maximum cost per webhook event: 11 credits (2 for initial delivery + 9 retries at 1 credit each).
Warp Streams (WebSocket & SSE)
| Action | Credits |
|---|---|
| Event delivered | 2 |
| Connection time | ~48/min |
Connection time is charged at 4 credits per 5-second interval to account for the persistent connection resources.
gRPC Checkpoint Streaming (SubscribeCheckpoints)
| Action | Credits |
|---|---|
| Per MB of data streamed | 20 |
| Minimum per message | 1 |
Checkpoint streaming is billed based on data volume. A typical mainnet checkpoint averages ~950 KB (~19 credits). Using field masks to request only the fields you need significantly reduces costs.
Example costs for different field masks:
| Field mask | Avg message size | Credits/message |
|---|---|---|
| Full checkpoint (no mask) | ~950 KB | ~19 |
| Cursor only | ~0.1 KB | 1 (minimum) |
Tip: If you only need specific events, use Warp streams or Webhooks instead of the checkpoint firehose. They cost only 2 credits per event and include field-level filtering.
Monthly Quotas
| Plan | Credits/month | RPS | Webhooks | Warp Streams |
|---|---|---|---|---|
| Free | 1,000,000 | 10 | 1 | 1 |
| Team ($49) | 10,000,000 | 50 | 5 | 5 |
| Professional ($499) | 100,000,000 | 200 | 50 | 50 |
| Business ($999) | 200,000,000 | 500 | 100 | 100 |
| Enterprise | Custom | Custom | Custom | Custom |
Overage
Paid plans (Team and above) can purchase additional credit packs:
- $10 per 1,000,000 credits
- Available as one-time purchases from the billing dashboard
- Added to your current billing period quota
- Resets on billing period rollover
What Counts as a Credit
- 1 API call = 1 credit for reads (single or batch)
- 1 API call = 5 credits for transaction execution/simulation
- 1 GraphQL request = 20 credits
- 1 webhook/stream event = 2 credits
- 1 MB of checkpoint stream data = 20 credits
Credits are not charged for:
- Failed requests that return server errors (5xx)
- Authentication failures
- Rate-limited requests (429)
Monitoring Usage
Track your credit consumption in real-time:
- Dashboard: The billing page shows current usage, remaining credits, and usage percentage
- API headers: Every response includes
X-Inodra-Credit-RemainingandX-Inodra-Credit-Limit - Alerts: Dashboard warns when usage exceeds 70% and 90% of your quota
Quota Exceeded
When your monthly credit quota is exhausted:
- API responses return
429with"Credit quota exceeded" - Rate limits are reduced to free-tier levels
- Purchase a credit pack or wait for the next billing period
Your webhooks and Warp streams will continue to deliver events, but the credits consumed will count against your next period if you don't top up.