API key
Authenticate server-side requests to Circle’s RESTful APIs. Required for
backend services.
Client key
Authenticate client applications with domain or app binding. Required for
frontend SDKs.
Kit key
Authenticate kit access with a single key that works on both testnet and
mainnet.
Purpose of keys
The table below highlights the purpose of each key type.| Purpose | API key | Client key | Kit key |
|---|---|---|---|
| Usage | Authenticates server access to Circle’s RESTful APIs | Authenticates client applications with limited API access | Authenticates Kit access |
| Ideal for | Backend services that call Circle’s APIs | Frontend applications (web or mobile) using Circle’s client-side SDKs | Using Circle’s Kits with reduced code requirements |
| Where to use | Server-side API calls from secure backend environments | Client applications bound to specific domains or app identifiers | Integrating using Circle’s Kits; the same key works for both testnet and mainnet |
Products and keys
The table below lists which Circle products require each key type.| Product/Service | API key | Client key | Kit key |
|---|---|---|---|
| Wallets: Modular | ✅ For retrieving transfer and UserOps data from Circle Indexing Service | ✅ For modular wallets SDKs | ❌ |
| Wallets: User-Controlled | ✅ | ❌ | ❌ |
| Wallets: Dev-Controlled | ✅ | ❌ | ❌ |
| Contracts | ✅ | ❌ | ❌ |
| Circle Kits | ❌ | ❌ | ✅ |
API keys
An API key is a unique string used to authenticate and enable access to privileged operations on Circle’s APIs. It’s required for any RESTful API requests to Circle services. Without it, requests will fail.Keep your API keys safe
API keys allow access to sensitive operations, so you must secure them.- Avoid public exposure: Never share API keys or include them in client-side code, public repositories, or other public mediums.
- Manage securely: Use your Circle Developer account to generate and manage API keys. When generating a key, copy it exactly as displayed.
API key authentication
Use the headers below to authenticate requests on testnet or mainnet.Testnet authorization header example
Mainnet authorization header example
Test authentication
To verify your API key setup, use the followingcurl command to retrieve
wallets:
Client keys
A client key is a unique string used to authenticate and authorize API access for apps using Circle’s SDKs. A client key is linked to either a specific host domain (websites), bundle ID (iOS), or package name (Android). This restricts access to pre-configured apps.A client key must be included in the headers of all modular wallets SDK API
calls.
Best practices for client keys
Client keys enable access to sensitive application operations, so protecting them is critical. Follow these best practices:- Use separate keys for each application: Create separate keys for web and mobile apps (iOS, Android) to prevent shared vulnerabilities.
- Monitor for misuse: Set up alerts for unusual activity, such as unexpected spikes in API calls, and use monitoring tools to detect anomalies.
- Rotate keys regularly: Regenerate client keys periodically and update them in your apps to reduce risk if a key is compromised.
- Store keys securely: Use secure storage options like Local Storage or Secure Storage for mobile apps, and avoid unnecessary exposure.
- Restrict access: Limit the scope of client keys by associating them with specific apps or domains to minimize potential misuse.
Kit keys
A kit key is a unique string used to authenticate access for Circle’s developer kits. Kit keys simplify integration by providing a single credential that works across both testnet and mainnet environments, reducing configuration overhead when building with Circle’s Kits.Testnet and mainnet compatibilityUnlike API keys and client keys, kit keys work on both testnet and mainnet. You
can use the same key during development and in production.
Keep your kit keys safe
Kit keys enable access to SDK features, so protecting them is essential.- Avoid public exposure: Never share kit keys or include them in client-side code, public repositories, or other public mediums.
- Manage securely: Use your Circle Developer account to generate and manage kit keys. When generating a key, copy it exactly as displayed.