Overview

Etrid is the Allternit-native wallet for autonomous agents and bots. It gives every bot a scoped cryptographic identity and payment capability without requiring users to bring their own wallet. Etrid provisions Ed25519 identity keys for agent authentication and Allternit Communication Protocol (ACP) signatures, with an EVM-compatible key path planned for on-chain operations. The service is designed to be backed by the Allternit vault or an external KMS so private key material is sealed at rest and only unsealed at signing time.
Etrid is currently in phase 1. The local service stores keys in memory for development. Production deployments must plug in a KeyVault implementation backed by the Allternit vault or an external KMS.

When to use Etrid

Wallet kinds

Etrid supports two wallet kinds. Only identity is implemented in phase 1.

Payment methods

Each wallet declares the payment operations it is allowed to perform. If allowed_methods is empty when a wallet is created, Etrid defaults to ["receive", "invoice"].

Architecture

  • WalletStore — in-memory scaffolding store. Holds wallet metadata and, in phase 1, raw private key bytes.
  • KeyVault trait — production backend contract for sealing and unsealing keys.
  • InMemoryVault — local development implementation of KeyVault.
Wallet IDs are generated as etrid-{agent_prefix}-{segments}. The wallet address is derived by taking the first 20 bytes of the SHA-256 hash of the Ed25519 public key and hex-encoding them with an 0x prefix.

Run locally

The service binds to:
Local health check:

HTTP API

Base URL

Endpoints

Health

Response:

Create a wallet

Request body

Response:

List agent wallets

Response:

Sign a message

The wallet_id field in the request body is overwritten by the :id path parameter.
Response:

Create an invoice

Request body

Response:
The wallet must have invoice or receive in its allowed_methods, otherwise Etrid returns a method not allowed error.

Error handling

Errors are returned as HTTP 400 with a JSON body:

Vault integration

Etrid defines a KeyVault trait in src/vault.rs so production deployments can replace the in-memory store with a sealed backend:
A sealed key contains a vault reference, ciphertext, and nonce. In production, plug in the Allternit vault service or an external KMS so keys are never held in application memory.

Bot integration

Bots declare an Etrid wallet by setting:
During bot creation the Allternit platform calls POST /wallets and writes the returned key_vault_ref and address back into the agent record.