Use this file to discover all available pages before exploring further.
Vela uses ECDSA (secp256k1) signatures for all authentication. There are no API keys or passwords. Your Ethereum wallet is your identity, and your signatures prove you control it.
Vela uses the same elliptic curve as Ethereum: secp256k1. Signatures follow the EIP-191 personal sign standard, which prepends a standard prefix to prevent signed messages from being mistaken for Ethereum transactions:
Every order submitted to Vela must be signed by the account’s private key. The signing payload is the canonical JSON serialization of the order parameters:
The field order in the JSON matters for signature verification. Always use the canonical field order shown above: market_id, side, price, quantity, order_type, time_in_force, nonce.
The engine recovers the signer address from the signature and verifies it matches the address field. If verification fails, the order is rejected with INVALID_SIGNATURE.
The nonce field in each order is a per-account monotonic integer. The engine tracks a nonce high-water mark per account and rejects any order with nonce ≤ high_water_mark.This prevents replay attacks: a signed order cannot be re-submitted by a third party who intercepts it, because the nonce has already been consumed.Nonce management best practices:
class NonceManager { constructor(startNonce) { this.nonce = startNonce; } next() { return this.nonce++; }}// Seed from server on startupconst { nonce_high_water } = await fetchBalances(address);const nonces = new NonceManager(nonce_high_water + 1);