Skip to main content

Base URL

All API requests use the following base URL:

Authentication

Authenticate all requests with your API key in the x-api-key header:
There are two types of API keys:
  • 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.
See Authentication for details on generating each type.
Keep your API key secure. Never expose it in client-side code or commit it to version control.

Response Format

Success Responses

Successful responses return data directly (no envelope):
HTTP status codes:
  • 200 OK - Request succeeded
  • 201 Created - Resource created
  • 202 Accepted - Request accepted for processing

Error Responses

Error responses include a message and error code:
HTTP status codes:
  • 400 Bad Request - Invalid parameters
  • 401 Unauthorized - Invalid or missing API key
  • 403 Forbidden - API key disabled
  • 404 Not Found - Resource not found
  • 429 Too Many Requests - Rate limit exceeded
  • 500 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:
Sandbox API keys have the prefix 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:
The SDK provides:
  • Full TypeScript types
  • Wallet registration and management
  • Automatic error handling with RebelfiError
  • Flexible wallet identification (walletId, walletAddress, or userId)
See the SDK documentation for details.