Authentication

Signing a request

Code example for creating and signing a request header:

from nacl import signing
import requests

def signed_request(request: requests.PreparedRequest, api_access_key, api_signing_key):
    timestamp = timestamp = str(int(time.time()))
    message = b"".join(
        [bytearray(timestamp, "utf-8"), bytearray(request.method, "utf-8"),
         bytearray(request.path_url, "utf-8"), request.body]
    )
    signing_key = signing.SigningKey(api_signing_key)
    signature = signing_key.sign(message).signature.hex()

    request.headers["Api-Access-Key"] = api_access_key
    request.headers["Api-Signature"] = signature
    request.headers["Api-Timestamp"] = timestamp
    return request

To initiate a WebSocket connection to Anchorage Digital, the initial connection request header must be authenticated by including your API access key in the Api-Access-Key header and by providing an Ed25519 signature specifying the Api-Signature and Api-Timestamp headers.

You can register a new API key from the web dashboard and assigning the Execute trades (TRADE) permission.


Did this page help you?