Skip to content

Participants

Directory has three roles. They map cleanly onto roles that already exist in email.

Operator

The domain that runs a Directory node. Gmail, Chase, Coinbase, your employer, your personal domain.

The operator is the equivalent of a mail server administrator. They control DNS for the domain, run the routing service, manage user preferences, and sign every routing contract with the domain’s private key.

When someone resolves alice@gmail.com, Gmail is the operator. Gmail decides what currencies it supports, what destinations to return for Alice, how long contracts are valid, and whether to rotate Alice’s deposit addresses between requests.

The domain itself can also be a payable address. Resolving gmail.com pays Google. Resolving alice@gmail.com pays Alice. The domain is the building; the local part is the suite.

An operator can be:

  • A consumer platform — Gmail, Yahoo, Outlook running nodes so all their users can receive money at their email address — and the domain itself is payable.
  • A bank — Chase running a node so customers receive at you@chase.com. Pay chase.com to pay the institution.
  • An exchange — Coinbase running a node so you@coinbase.com routes to your trading account.
  • A business — your employer running a node so you@company.com receives payroll.
  • An individual — you, running a node on your personal domain so mydomain.com routes to your wallet.

The only requirement is DNS control. If you own the domain, you can run a node. No registration, no approval.

Recipient

The person at the address. alice in alice@gmail.com.

The recipient never touches the protocol directly. They configure their preferences through the operator’s product — the same way you configure email forwarding through Gmail’s settings. Alice tells Gmail “route my USDC to this Ethereum wallet” and Gmail handles the rest.

The recipient can change preferences at any time. Switch wallets, switch chains, add fiat, remove crypto. Since every routing contract is generated fresh on each request, changes take effect immediately. There’s no stale state to update.

Sender

The wallet, app, or agent sending value. The sender has the recipient’s Directory address and wants to deliver money.

The sender’s job:

  1. Resolve the address through the operator’s node.
  2. Verify the signature against the DNS-published Ed25519 key.
  3. Send to the destination in the contract.
  4. Discard the contract.

The sender never caches routing contracts. Every contract is ephemeral — valid for seconds, generated for that specific request. If the sender doesn’t act on it, it expires and a new one must be requested.

A sender can be a wallet app, a payroll system, a payment button on a website, or an AI agent. Anything that can make an HTTPS request and send value.

RoleWhat they doReal-world analogy
OperatorRuns the node, manages routing, signs contractsMail server administrator
RecipientConfigures preferences through the operatorEmail user with forwarding rules
SenderResolves addresses, verifies contracts, sends valueEmail client sending a message