Authentication
All requests require a Bearer token in theAuthorization header. If the token is missing or invalid, the API returns 401.
Environments
| Environment | Base URL |
|---|---|
| Sandbox | https://sandbox.trybraid.xyz |
| Production | https://production.trybraid.xyz |
ethereum→ Ethereum Sepoliasolana→ Solana devnet
ethereum, solana) in both environments; sandbox maps them to testnets internally.
Pagination
List endpoints use cursor-based pagination withlimit and cursor parameters.
nextCursor field. Pass it as cursor to fetch the next page:
nextCursor is null, you have reached the end of the result set.
Additional query parameters on list endpoints:
sort: field to sort by (e.g.createdAt)order:desc(default) orasccreatedAtGte: ISO-8601 timestamp filterstatus: repeatable status filter (e.g.status=processing&status=completed)
Idempotency
Create and withdrawal endpoints accept arequestId (UUID v4). Retrying the same request with the same requestId returns the original response without creating duplicates. If the requestId was already used, the API returns 409 Conflict.
409, fetch the existing resource by requestId rather than retrying the create.
Error handling
Errors are returned as JSON with a human-readableerror string and a machine-readable code field.
| HTTP status | Meaning | Action |
|---|---|---|
400 | Validation error | Fix the request and retry |
401 | Authentication failed | Check your Bearer token |
404 | Resource not found | Verify the wallet/withdrawal ID |
409 | Duplicate requestId | Fetch the existing resource instead |
500 | Server error | Log the response and retry with backoff |
code field for programmatic branching. Use the error string for logging and debugging.