Skip to main content
This guide explains how to authenticate with the Ekiden API using either a JWT or an API key.

1. Obtain a JWT

Request a JWT access token from the authorization endpoint.
Example request:
Where:
  • public_key – Your Canton Party ID.
  • signature – "".
  • timestamp_ms – Current Unix timestamp in milliseconds.
  • nonce – A unique random string.
Example response:

2. API Key Authentication

For server-to-server integrations, you can authenticate requests directly using an API key. Required headers:
  • X-API-KEY – Your API public key.
  • X-SIGNATURE – Ed25519 signature of EKIDEN_API|{method}|{uri}|{timestamp_ms}|{nonce}.
  • X-TIMESTAMP-MS – Current Unix timestamp in milliseconds.
  • X-NONCE – A unique random string.

3. Authenticate REST Requests

Include the JWT as a Bearer token in the Authorization header.

4. Authenticate a Private WebSocket Connection

Connect to the private WebSocket endpoint:
Authenticate immediately after connecting. Client → Server
Server → Client
After successful authentication, subscribe to private topics.
Public topics such as:
  • orderbook.1.BTC-USDCx
  • trade.BTC-USDCx
  • ticker.BTC-USDCx
are available on /ws/public without authentication.

Timestamp and Nonce Requirements

  • timestamp_ms must represent the current Unix time in milliseconds.
  • Each authorization request must use a unique nonce.
  • Requests with expired timestamps or reused nonces may be rejected.

Example (curl)

Request a JWT:
Call a private endpoint:

Troubleshooting