Getting Started
API Wallet Authentication
API Wallets provide secure, programmatic access to the Strike Perpetuals trading API using Ed25519 digital signatures.
Overview
API wallets use asymmetric cryptography (Ed25519 key pairs):
Public Key - Stored on server, used to verify your signatures
Private Key - Kept by you (never shared), used to sign requests
Benefits:
Private key never leaves the client
No shared secrets stored on server
Non-repudiation (signatures prove authenticity)
Can perform trading operations but cannot withdraw funds
Quick Start
1. Generate Key Pair
Generate an Ed25519 key pair on the API Wallets page or locally using the examples below.
2. Register Your Public Key
Save your public key on the API Wallets page.
3. Sign Requests
Every authenticated request requires these headers:
X-API-Wallet-Public-Key- Your public key (64 hex chars)X-API-Wallet-Signature- Ed25519 signature of the messageX-API-Wallet-Timestamp- Unix timestamp (seconds)X-API-Wallet-Nonce- Unique UUID per request
Key Format
Public Key: 64 hex characters (32 bytes), Raw Ed25519
Private Key: 64 or 128 hex characters, Seed or Full key
Note: SSH key format (
ssh-ed25519 AAAA...) is NOT compatible. Use raw Ed25519 hex keys.
Signature Message Format
METHOD - HTTP method (uppercase):
GET,POST,DELETEPATH - Full path with query string:
/v2/orderTIMESTAMP - Unix timestamp in seconds:
1704067200NONCE - UUID v4:
550e8400-e29b-41d4-a716-446655440000BODY_HASH - SHA-256 of JSON body (empty string hash for GET)
Complete Examples
Permissions
Allowed: View account, balances, positions, place/cancel orders, modify leverage, view history
Not Allowed: Withdraw funds, deposit funds (requires JWT)
Security Validation
The server validates each request:
Timestamp - Must be within 3 minutes of server time
Nonce - Must be unique (prevents replay attacks)
Signature - Must be valid Ed25519 signature
Wallet status - Must be active (not revoked/expired)
Error Reference
missing API wallet authentication headers- Include all 4 required headerssignature expired or invalid timestamp- Use current Unix timestampauthentication failed- Check signing algorithm and key formatwallet expired or revoked- Create a new walletnonce already used- Generate new UUID for each request
Best Practices
Key Management
Store private keys in environment variables or secure key management systems
Never commit private keys to version control
Use different wallets for different bots/environments
Request Handling
Generate a fresh UUID nonce for every request
Sync your system clock with NTP servers
Rotation & Monitoring
Rotate API wallets every 90-180 days
Revoke immediately if compromised
Last updated

