---
title: "Request signing"
description: "Coming soon. Ed25519 signatures over each request, so a leaked log line or database cannot be used to forge or replay your calls."
canonical: "https://docs.nimbusmint.bot/authentication/request-signing/"
---
> Index: https://docs.nimbusmint.bot/llms.txt

# Request signing

> **Coming soon:** Request signing is not live yet. Today every request uses the [private key](https://docs.nimbusmint.bot/authentication.md) alone. This
> page describes what is coming so you can plan for it; details can change before it ships, and the
> [changelog](https://docs.nimbusmint.bot/changelog.md) will announce it.

## What changes

On top of the private key, each request carries an **Ed25519 signature**:

- **You generate the key pair** on your server and give us only the **public half**. The signing key never
  leaves your server, and we store nothing secret, so even a full copy of our database cannot forge your calls.
- **Each request is signed** over its method, path, a hash of the body, a timestamp and a random nonce.
- **Replays are refused.** We accept a signature only within **60 seconds** of its timestamp (either side), and
  never accept the same nonce twice. A request copied from a log is useless.

## How you will prepare

1. Generate an Ed25519 key pair on the server that calls the API and keep the private half in your secret store.
2. Send us the public half in your ticket when we announce signing; it is not a secret.
3. Keep your server clock synced (NTP); a clock more than 60 seconds off will be refused.

Existing keys keep working while you switch; there is no migration on your side beyond adding the signature.
