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 pagearrow-up-right or locally using the examples below.

2. Register Your Public Key

Save your public key on the API Wallets pagearrow-up-right.

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 message

  • X-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, DELETE

  • PATH - Full path with query string: /v2/order

  • TIMESTAMP - Unix timestamp in seconds: 1704067200

  • NONCE - UUID v4: 550e8400-e29b-41d4-a716-446655440000

  • BODY_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 headers

  • signature expired or invalid timestamp - Use current Unix timestamp

  • authentication failed - Check signing algorithm and key format

  • wallet expired or revoked - Create a new wallet

  • nonce 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