API Credits

Stackup uses an API credit system to provide fair usage-based pricing.

Stackup uses an API credit system to provide you the best prices for account abstraction services.

Not all API calls are created equal - some have much higher load on our systems than others. Most usage-based node providers have a similar API credit system, but we've always wondered how they chose them. Some seem to be arbitrary.

Open source pricing

We think everyone benefits most from transparency in our pricing, just like everyone benefits from our open source software. Any RPC methods not listed here are free. These prices are subject to change, but don't worry, we'll notify you.

📘

How are API credits determined?

We run a standard suite of benchmark tests on each RPC method and rank the results based on their P95 latency. We then group them logarithmically to create a 5 tier credit system.

Credits per API CallRPC Methods
1eth_getBalance
eth_blockNumber
eth_chainId
eth_maxPriorityFeePerGas
eth_gasPrice
eth_getBlockByNumber
eth_getBlockByHash
eth_supportedEntryPoints
2eth_getTransactionReceipt
eth_getCode
eth_call
3eth_feeHistory
eth_getLogs
eth_getUserOperationByHash
eth_getUserOperationReceipt
eth_estimateGas
4eth_sendUserOperation
5eth_estimateUserOperationGas
pm_sponsorUserOperation

Example: UserOperation Price

Here is the RPC call stack from running yarn run simpleAccount transfer in the Quickstart Example:

  • eth_call: to get sender address (2 credits)
  • eth_call: to get sender nonce (2 credits)
  • eth_maxPriorityFeePerGas: to determine the fee tip for the current block (1 credit)
  • eth_getBlockByNumber: to derive maxFeePerGas using the current basefee (1 credit)
  • eth_estimateUserOperationGas: to derive gas limits for a userOp (5 credits)
  • eth_sendUserOperation: to send to the bundler (4 credits)
  • eth_getBlockByNumber: to determine range for querying UserOperationEvent (1 credit)
  • eth_getLogs: to check for UserOperationEvent (3 credits)
  • eth_getLogs: to check for UserOperationEvent (3 credits)

Additionally there are 9 calls to eth_chainId. That's approximately 31 credits for a transfer.

Credit Limits

Each month you are given free credits based on your plan. You aren't charged for usage until you hit the monthly credit limit.

PlanMonthly Credit LimitWhat happens when I hit the limit?
Free3,500Service stops until next monthly cycle
Developer35,000Your service will continue, and you will be automatically charged for your next 35,000 credits.
Startup350,000Your service will continue, and you will be automatically charged for the next 35,000 credits.

So on a Startup plan, you can send ~10,000 UserOperations per month before usage-based pricing kicks in.