Base URL
All API requests use the following base URL:Authentication
Authenticate all requests with your API key in thex-api-key header:
- Profile-scoped keys — Tied to a Wallet Profile. Can read and write (register wallets, plan operations, submit transactions) within that profile.
- Admin keys — Organization-wide, read-only. Can list wallets and view aggregate data across all profiles. Cannot create wallets or operations.
Response Format
Success Responses
Successful responses return data directly (no envelope):200 OK- Request succeeded201 Created- Resource created202 Accepted- Request accepted for processing
Error Responses
Error responses include a message and error code:400 Bad Request- Invalid parameters401 Unauthorized- Invalid or missing API key403 Forbidden- API key disabled404 Not Found- Resource not found429 Too Many Requests- Rate limit exceeded500 Internal Server Error- Server error
Error Codes
Rate Limits
API requests are rate limited per API key:
When rate limited, you’ll receive a
429 response with RATE_LIMIT_EXCEEDED code. Implement exponential backoff for retries.
Amount Convention
All monetary amounts in the API are represented as strings in base units (smallest denomination).
Amounts are always strings, never numbers, to preserve precision.
Transaction Submission
After signing a transaction, you have two options:
Most integrations should use
submit-signed for simplicity. Use submit-hash if you need control over the broadcast (e.g., priority fees, custom RPC endpoints).
Sandbox Environment
For testing, use the sandbox base URL:rfk_sandbox_. See the Sandbox guide for details.
Supported Blockchains
Request Examples
cURL
JavaScript (fetch)
Python (requests)
Available Resources
SDK Recommendation
For TypeScript/JavaScript projects, we recommend using the official SDK:- Full TypeScript types
- Wallet registration and management
- Automatic error handling with
RebelfiError - Flexible wallet identification (
walletId,walletAddress, oruserId)