API keys are minted through the wallet-service (Documentation Index
Fetch the complete documentation index at: https://docs.dojifunded.com/llms.txt
Use this file to discover all available pages before exploring further.
doji-auth-backend/apps/wallet-service). You can create them from the dashboard’s Developer page or directly over HTTP.
Key format
Endpoints
These endpoints use the wallet-service base URL, not the trading engine.List keys
Create a key
Human-readable name for the key.
One or more permission scopes. See Permission scopes below.
Optional list of allowed source IPs. Requests from other IPs return
403.Optional HTTPS URL to receive trade lifecycle events. Must start with
https://.Optional ISO 8601 expiry timestamp (must be in the future).
- Maximum 10 active keys per user — revoke before creating an 11th.
webhookUrlmust usehttps://.expiresAtmust be an ISO 8601 timestamp in the future.
Revoke a key
Permission scopes
| Scope | Grants access to |
|---|---|
READ_ONLY | All GET endpoints — account, positions, market data |
TRADE | POST /v1/order, close-position |
MANAGE_ORDERS | Cancel orders, modify TP/SL, full order management |
["TRADE", "READ_ONLY"].
Authenticating requests
Send both headers on every/v1/* call:
POST /api/api-keys/validate against the wallet-service. Validation checks:
- Key exists and is active
- Secret hash matches
- Key has not expired
- Source IP is in
ipWhitelist(if configured) - Key permissions cover the endpoint being called
Testnet caveat: current testnet endpoints accept calls without headers while enforcement is being wired at the gateway. Build your client with headers attached from day one — production will return
401 without them.
