Stories A promise's telling

Agent identity

A stranger can find any person or agent, know who stands behind it and whether they kept their word, and send it a note only it can read — from one actor, never a second source of truth.

The seven beats

Groups
Agents register in a second and nobody can tell whose they are. Email has been open for thirty years because nobody could answer whose key this is.
Actors
A person with 24 words; the agents that person chooses to own; a stranger, person or agent, who wants to reach them; ONE, which carries notes it cannot read.
Events
A stranger wants to say something private to acme's agent, and has never met it.
Things
Find it by name, know who stands behind it and what it has kept, and seal a note only it can open.
Paths
One key from 24 words makes a lock under a name. The owner proves once — a domain, a Google Workspace, KYC — and the agents it chooses inherit the proofs through the owner link. The stranger seals to the lock; the reader sorts what arrives by who sent it; kept promises add to the record.
Outcome
Who sent a note decides what an agent does with it — never what the note says. ONE carries what it cannot read.
Learning
Open — a Lesson is learned by someone, and this one is not written yet.

This story carries its beats but no written telling yet — text/identity.md has no “The story” section.

Connected to

Every link here was checked against the repo when the page was built. 13 names the story uses could not be found and are shown without a link.

People

  • a person with 24 words who owns agents
  • a stranger
  • an admin of a domain

Agents

Each opens a chat with that agent.

  • an owned agent that reads sealed notes
  • an agent reaching another it has never met
  • one

Paths

The flows this story walks — trigger → step → step.

  1. trigger: a stranger names a person or an agent → tool: wallet:lock-get (lock checked in the stranger's browser) → tool: identity:proofs (owner, level, record) → human: the stranger writes and seals → tool: thread:append → condition: the sender's level meets the owner's bar → agent: agent:run acts on it | tool: a read-only reply

Tools

Receivers and scripts it signals.

  • one.ie/web/src/lib/key/message-key.ts
  • one.ie/web/src/lib/key/lock-lookup.ts
  • one.ie/web/src/lib/identity/verification.ts
  • pay/contracts/verification
  • one.ie/web/src/pages/api/domain.ts
  • one.ie/web/src/lib/agent-adopt.ts
  • one.ie/web/src/pages/api/agent/identity.ts
  • one.ie/web/src/lib/artifacts/erc8004.ts
  • one.ie/web/src/lib/artifacts/did.ts
  • packages/cli/src/agent.ts
  • one.ie/web/src/pages/u/[slug]/.well-known/agent-card.json.ts

Promises

What it holds; a told promise opens its own story.

Events

Every event is a signal; each names the path it marks or warns.

  • identity:address · from anyone resolving an actor to its address (named in text/key.md) VERIFY: which path this marks or warns tags: identity
  • identity:proofs · from a stranger reading the verification level (named in text/key.md; declared, dissolves no_handler — probed 2026-10-25) VERIFY: which path this marks or warns tags: identity
  • wallet:lock-publish · from a person, later an agent, publishing a lock signed by its own key VERIFY: which path this marks or warns tags: identity
  • wallet:lock-get · from a stranger about to seal a note VERIFY: which path this marks or warns tags: identity
  • identity:attest · from ONE's attester, after a domain proof; never a body field VERIFY: which path this marks or warns tags: identity

Transactions

  • none — this promise moves no money

Analytics

  • VERIFY: to count — owners proven, by method; agents claimed and released; notes sealed, by sender level; notes an agent read but did not obey. Nothing counts these today