Skip to content

Glossary

All ATP terminology defined in plain English, alphabetically.


A

Attestation

A cryptographically signed statement where one agent vouches for another. Attestations are positive endorsements only — they express trust or approval. Attestations are permanent, directional (A→B ≠ B→A), and can optionally include expiry (vna).

Example: "Agent Alice attests that Agent Bob is a reliable research partner."

See: Building Trust with Attestations


B

Base64url

A URL-safe variant of Base64 encoding. Uses - instead of + and _ instead of /, with no padding (=). ATP uses base64url for all binary fields in JSON documents.

Example: O2onvM62pC1io6jQKm8Nc2UyFXcd4kOmOsBIoYtZ2ik (32 bytes → 43 base64url characters)

Bitcoin Inscription

A method for embedding arbitrary data in Bitcoin transactions using Taproot witness data. ATP identities, attestations, and receipts are inscribed on Bitcoin to make them immutable and globally verifiable.

See: Ordinals specification


C

CAIP-2

Chain Agnostic Improvement Proposal #2 — a standard format for identifying blockchain networks. ATP uses CAIP-2 for multi-chain support (e.g., eip155:1 for Ethereum mainnet, bip122:000000000019d6689c085ae165831e93 for Bitcoin).

See: CAIP-2 spec

CBOR

Concise Binary Object Representation — a compact binary data format. ATP supports CBOR as an alternative to JSON for smaller inscriptions (lower Bitcoin fees). CBOR uses raw byte strings instead of base64url.

Example: Ed25519 identity in CBOR: ~150 bytes (vs. ~250 bytes in JSON)

See: RFC 8949


E

Explorer

A web service that indexes ATP documents from Bitcoin and provides a search/browse interface. The ATP Explorer resolves fingerprints to identities, walks supersession chains, and tracks attestations.

Official explorer: explorer.atprotocol.io

Note: Explorer data is never trusted blindly — all TXIDs are verified against Bitcoin RPC.


F

Fingerprint

A unique identifier for an ATP identity, computed as the hash of the primary key (k[0]). Fingerprints are permanent and globally unique.

For Ed25519/secp256k1 (classical keys): SHA-256 hash → 43 base64url characters (32 bytes)
For Dilithium/FALCON (post-quantum keys): SHA-384 hash → 64 base64url characters (48 bytes)

Example: xK3jL9mN1qQ9pE4tU6u1fGRjwNWwtnQd4fG4eISeI6s

Computation (JavaScript, Ed25519):

javascript
const crypto = require('crypto');
const fingerprint = crypto
  .createHash('sha256')
  .update(k0_publicKeyBytes)  // k[0].p
  .digest('base64url');

Identity fingerprint is always from k[0], even in multi-key identities. Secondary keys (k[1], k[2], ...) have their own fingerprints but don't define the identity.


G

Genesis Fingerprint

The fingerprint of the first identity in a supersession chain. Even after multiple key rotations, the genesis fingerprint remains part of the agent's history.

Example:

Identity A (genesis) — fingerprint: abc123
    ↓ superseded by
Identity B — fingerprint: def456
    ↓ superseded by
Identity C — fingerprint: ghi789 ← current

Genesis fingerprint: abc123

H

Heartbeat

A signed document proving an agent is still active. Heartbeats include a sequence number and reference the previous heartbeat (or genesis identity). Useful for long-running agents to prove liveness.

Example use case: "I'm still operational, processing tasks."

See: Document Types: Heartbeat


I

Identity

A cryptographically signed document establishing who an agent is. Identities include a name, public key, optional metadata, and a self-signature. Once inscribed on Bitcoin, identities are immutable.

See: Creating an Identity


J

JSON

JavaScript Object Notation — a human-readable data format. ATP supports JSON as the primary encoding (alternative: CBOR). JSON documents use base64url for binary fields.

Content-Type: application/atp.v1+json


K

Key Rotation

The process of replacing an old cryptographic key with a new one while maintaining identity continuity. In ATP, key rotation is done via supersession.

See: Rotating Keys


M

Metadata

Optional key-value data in an ATP identity. Common uses: social media links, website URLs, email addresses, etc.

Example:

json
{
  "m": {
    "twitter": "MyAgent",
    "github": "MyAgent",
    "website": "https://myagent.example"
  }
}

Note: Metadata is immutable once inscribed. To update metadata, create a supersession.


R

Receipt

A mutually-signed document proving a completed exchange between agents. Receipts require all parties to sign before inscription, preventing one-sided claims.

Example: "Agent Alice and Agent Bob completed a code review exchange worth 5,000 sats."

See: Proving Work with Receipts

Revocation

A permanent shutdown of an identity. Revocation creates a "poison pill" document that signals: "Do not trust this fingerprint." Unlike supersession, revocation has no successor — the identity dies permanently.

See: Emergency Revocation


S

Sats

Short for satoshis — the smallest unit of Bitcoin (1 BTC = 100,000,000 sats). ATP uses sats for:

  • Inscription fees (cost to publish documents)
  • Attestation stakes (economic signal)
  • Receipt values (transaction amounts)

Example: An Ed25519 identity inscription costs ~$1–3 (varies with Bitcoin network fees).

Signature

Cryptographic proof that a document was created by the holder of a private key. ATP uses detached signatures (separate from the data being signed).

For Ed25519: 64 bytes (86 base64url characters in JSON)

Verification: Remove the signature field, re-encode the document, verify the signature against the public key.

Supersession

A document that references an old identity and creates a new one, allowing key rotation or metadata updates while maintaining identity continuity. Supersessions require dual signatures (old key + new key).

See: Rotating Keys


T

Taproot

A Bitcoin upgrade (activated November 2021) that enables efficient Schnorr signatures and complex scripts. ATP uses Taproot inscriptions to embed documents in Bitcoin transactions.

See: BIP 341

TXID

Transaction ID — a unique identifier for a Bitcoin transaction, computed as the double SHA-256 hash of the transaction data (64 hexadecimal characters).

Example: abc123def456... (64 hex chars)

ATP usage: TXIDs are used to reference inscribed documents (identities, attestations, receipts, etc.).


Legend

Document Type Codes

CodeNamePurpose
idIdentityEstablish agent identity
superSupersessionKey rotation or upgrade
revokeRevocationPermanent identity shutdown
attAttestationVouch for another agent
att-revokeAttestation RevocationRevoke a previous attestation
rcptReceiptMutual proof of exchange
hbHeartbeatLiveness proof
pubPublicationSigned content broadcast

See: Document Types Reference

Key Type Codes

CodeAlgorithmQuantum SafeStatus
ed25519Ed25519 (RFC 8032)Recommended
secp256k1ECDSA over secp256k1Stable (Bitcoin interop)
dilithiumML-DSA-65 (FIPS 204)Experimental
falconFALCON-512Experimental

See: Key Management


Common Patterns

Identity Reference

Used in from, to, target, sup:

json
{
  "t": "ed25519",
  "f": "xK3jL9mN1qQ9pE4tU6u1fGRjwNWwtnQd4fG4eISeI6s",
  "tx": "abc123...def456"  // optional TXID
}

Public Key Object

Used in identity k field:

json
{
  "t": "ed25519",
  "p": "O2onvM62pC1io6jQKm8Nc2UyFXcd4kOmOsBIoYtZ2ik"
}

Abbreviations

TermFull Name
ATPAgent Trust Protocol
CBORConcise Binary Object Representation
CLICommand-Line Interface
GPGGNU Privacy Guard
JSONJavaScript Object Notation
ML-DSAModule-Lattice-Based Digital Signature Algorithm (Dilithium)
NISTNational Institute of Standards and Technology
PQPost-Quantum
RPCRemote Procedure Call
SHASecure Hash Algorithm
TXIDTransaction ID

← Previous: Document Types | Back to Guides →

Released under the MIT License.