Authentication

This article explains how to authenticate your API requests to the WaaS service using Openweb3 Auth.

{
  "X-Api-Key": `{YOUR_API_KEY}`,
  "X-Request-time": `{timestamp}`,
  "X-Signature": `{YOUR_API_SIGNATURE}.hex()`,
}
  • X-Api-Key: The key you generate in Generate an API key
  • X-Request-time: the current time in Unix timestamp format, measured in milliseconds.
  • X-Signature: The API signature. To learn how to calculate an API signature, see Calculate API Signature.

Calculate API Signature

  1. First, concatenate a string based on your request as follows:

str_to_sign = {BODY}{URI}{TIMESTAMP}


FieldDescriptionRequiredExample
BODYThe raw request body in string format.false
{
  "name":"Default",
  "type":"custodial"
}
URIThe API path, with querytrue/api/v1/transactions/transfer
TIMESTAMPThe current time in Unix timestamp format, measured in milliseconds. This value must be the same as the x-request-time in the request header.true1707476227132
  1. Perform SHA-256 hashing on the string as follows:
import (
	"crypto/sha256"
)
contentHash := sha256.Sum256(data)
  1. Use the private key of your API key to sign the string as follows:
sk := ed25519.PrivateKey(privateKeyBytes)
signature := ed25519.Sign(sk, contentHash[:])

Now you’ve calculated an API signature.