> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nikiwa.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Credits & Pricing

> What Tools API and MCP calls cost, when credits are charged and refunded, and per-plan key limits.

Tools API and [MCP](/mcp/overview) calls are paid with credits from the key owner's plan. Credits are one monthly pool per account, shared with chat and everything else in the app; keys do not have their own balances. Calls through an [MCP OAuth connection](/mcp/connect-oauth) draw on the same pool. See [Plans & Billing](/product/plans-and-billing) for monthly allowances and [Credits](/product/credits) for app pricing.

## Price per tool

Each tool has a fixed price per call, from 1 to 40 credits. The price does not depend on the size of the result. A tool costs the same through the Tools API and MCP.

| Tool | Credits |
| - | - |
| [`analyze_transaction`](/api-reference/tools/analyze_transaction) | 40 |
| [`get_wallet_stablecoin_compliance`](/api-reference/tools/get_wallet_stablecoin_compliance) | 40 |
| [`analyze_token_developer`](/api-reference/tools/analyze_token_developer) | 25 |
| [`get_wallet_counterparties`](/api-reference/tools/get_wallet_counterparties) | 25 |
| [`get_wallet_counterparties_analysis`](/api-reference/tools/get_wallet_counterparties_analysis) | 25 |
| [`get_wallet_pnl`](/api-reference/tools/get_wallet_pnl) | 25 |
| [`get_wallet_transactions`](/api-reference/tools/get_wallet_transactions) | 25 |
| [`get_token_flow_intelligence`](/api-reference/tools/get_token_flow_intelligence) | 15 |
| [`get_token_flows`](/api-reference/tools/get_token_flows) | 15 |
| [`get_token_holders_traders`](/api-reference/tools/get_token_holders_traders) | 15 |
| [`get_wallet_risk_overview`](/api-reference/tools/get_wallet_risk_overview) | 15 |
| [`get_wallet_transaction_patterns`](/api-reference/tools/get_wallet_transaction_patterns) | 15 |
| [`analyze_token_website`](/api-reference/tools/analyze_token_website) | 8 |
| [`get_contract_source_code`](/api-reference/tools/get_contract_source_code) | 8 |
| [`get_token_market_analysis`](/api-reference/tools/get_token_market_analysis) | 8 |
| [`get_wallet_address_profile`](/api-reference/tools/get_wallet_address_profile) | 8 |
| [`get_wallet_deployed_contracts`](/api-reference/tools/get_wallet_deployed_contracts) | 8 |
| [`get_wallet_portfolio_breakdown`](/api-reference/tools/get_wallet_portfolio_breakdown) | 8 |
| [`get_wallet_risk_score`](/api-reference/tools/get_wallet_risk_score) | 8 |
| [`get_wallet_stats`](/api-reference/tools/get_wallet_stats) | 8 |
| [`get_wallet_token_holdings`](/api-reference/tools/get_wallet_token_holdings) | 8 |
| [`get_contract_creation`](/api-reference/tools/get_contract_creation) | 3 |
| [`get_token_info`](/api-reference/tools/get_token_info) | 3 |
| [`get_token_risk_traits`](/api-reference/tools/get_token_risk_traits) | 3 |
| [`is_address_blacklisted_by_stablecoin`](/api-reference/tools/is_address_blacklisted_by_stablecoin) | 3 |
| [`get_wallet_account_meta`](/api-reference/tools/get_wallet_account_meta) | 1 |
| [`get_wallet_osint_record`](/api-reference/tools/get_wallet_osint_record) | 1 |
| [`resolve_name`](/api-reference/tools/resolve_name) | 1 |
| [`resolve_ens`](/api-reference/tools/resolve_ens) | 1 |
| [`resolve_token_symbol`](/api-reference/tools/resolve_token_symbol) | 1 |

Tools available only through MCP, such as market data, Polymarket, and Hyperliquid tools, are priced in the [tool catalog](/mcp/tools).

### Read prices at runtime

[`GET /api/tools`](/api-reference/discovery) returns a `credits` field for each tool: its current price per call. Use it rather than hard-coding the table above. `credits` is `null` if prices are temporarily unavailable.

### Free endpoints

Discovery is not charged: `GET /api/tools` and `GET /api/tools/openapi.json` cost no credits. On MCP, reading resources such as `nikiwa://chains` and `nikiwa://usage` and using prompts are not charged.

## Charges and refunds

A call is charged when it starts and refunded if the tool fails. In practice, you pay only for calls that return a result, including an empty one.

| Outcome | Tools API | MCP | Charged |
| - | - | - | - |
| Tool returns data | `200` with data | Data result | Yes |
| Tool finds nothing | `200` with `{"status": "no_data"}` | `{"status": "no_data"}` | Yes. The lookup ran. |
| Tool returns an error | `200` with `{"status": "error"}` | `{"status": "error"}` | No. Refunded in full. |
| Tool fails on the server | `5xx` | `{"status": "error"}` | No. Refunded in full. A gateway timeout that arrives after the tool finished is still charged. |
| Unknown tool or invalid arguments | `404` or `422` | Not applicable | No. Rejected before any charge. |
| Request rate limit exceeded | `429` with `Rate limit exceeded` | HTTP `429` | No. Rejected before any charge. |
| Not enough credits | `429 PLAN_LIMIT_REACHED` | `{"status": "error"}` with `error_code` | No. |

A call that is refused for credits is refused whole: no partial charge, and the tool does not run. See [Errors & Status](/api-reference/errors#credit-errors) for every credit error and its body.

## Idempotency

On the Tools API, send an `Idempotency-Key` header (1 to 64 characters) to make sure a retried request is not charged twice:

```bash theme={null}
curl -X POST https://pro-api.nikiwa.com/api/tools/get_wallet_pnl \
  -H "Authorization: Bearer nkw_live_YOUR_KEY" \
  -H "Idempotency-Key: 7f3c2a90-pnl-0xd8da" \
  -H "Content-Type: application/json" \
  -d '{"wallet_address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "network": "ethereum"}'
```

* Each key is charged at most once. Reusing a key whose request has completed, or is still running, returns `409 DUPLICATE_REQUEST`. Nothing is charged and the tool does not run again.
* The original result is not returned again. Store results on your side if you may need them after a retry.
* If the earlier request was refunded because the tool failed, reusing its key runs and charges the call again.
* Without the header, every request is a new, separately charged call.

MCP calls do not take an idempotency key. Each MCP tool call is charged separately.

## Price changes

Prices can change. To make sure you are never charged a price you did not expect, send the price version you last read in the optional `X-Credit-Catalog-Version` header. If prices have changed since that version, the request is refused with `409 PRICE_CHANGED`, nothing is charged, and the response contains the new version and prices. Without the header, calls are charged at the current price.

## Plan limits for developer keys

| Plan | Developer keys | Rate limit per key |
| - | - | - |
| Free | 1 | 10 requests per minute |
| Plus | 1 | 10 requests per minute |
| Pro | 2 | 10 requests per minute |
| Max | 5 | 60 requests per minute |
| Business | 10 | 120 requests per minute |
| Custom | Contact sales | Contact sales |

The key limit counts MCP keys and API keys together; revoked keys do not count. The rate limit that applies to a key is the lower of the key's own limit and its plan's limit. If you move to a plan with fewer keys, your existing keys keep working, but you cannot create new ones. See [Rate Limits & Metering](/api-reference/rate-limits).
