#ecdh #pairing #protocols #x25519

auths-pairing-protocol

Transport-agnostic pairing protocol for auths identity system

1 unstable release

Uses new Rust 2024

new 0.0.1-rc.8 Mar 8, 2026

#22 in Magic Beans


Used in 6 crates (via auths-core)

Apache-2.0

94KB
2K SLoC

Auths

Decentralized identity for individuals, AI agents, and their organizations.

One identity, multiple devices, Git-native storage.

Install

Homebrew:

brew install auths-dev/auths-cli/auths

Install from source:

cargo install --git https://github.com/auths-dev/auths.git auths_cli

This installs auths, auths-sign, and auths-verify.

Quick Start

1. Initialize your identity (30 seconds)

auths init

Follow the prompts. This creates your cryptographic identity and stores the key securely in your system keychain.

2. See what you created

auths status

Output:

Identity: did:keri:EBf...
Key Alias: controller
Devices: 1 linked

Ready to sign commits.

3. Sign your first commit

Configure Git to use Auths:

auths git setup

Now sign a commit:

git commit -S -m "My first signed commit"

Verify it:

auths verify-commit HEAD

Output:

Commit abc123 is valid
  Signed by: did:keri:EBf...
  Device: did:key:z6Mk...
  Status: VALID

That's it. Your commits are now cryptographically signed with your decentralized identity.


What can you do with Auths?

Link multiple devices to one identity

# On your laptop
auths device link --device-did did:key:z6Mk...

# Now both devices can sign as the same identity

Revoke a compromised device

auths device revoke --device-did did:key:z6Mk...

Verify any attestation

auths verify attestation.json

Export allowed-signers for Git verification

auths git allowed-signers >> ~/.ssh/allowed_signers

Agent & Workload Identity

Auths treats AI agents and CI/CD runners as first-class identity holders — not borrowers of human credentials.

Give an agent its own identity:

# Create a dedicated agent identity
auths init --profile agent

# Issue a scoped, time-limited attestation from a human to the agent
auths attestation issue \
  --subject did:key:z6MkAgent... \
  --signer-type Agent \
  --capabilities "sign:commit,deploy:staging" \
  --delegated-by did:keri:EHuman... \
  --expires-in 24h

The agent now holds a cryptographic attestation chain traceable back to the human who authorized it. Every action the agent takes is signed under its own key, scoped to only the capabilities it was granted, and verifiable by anyone — offline, without contacting a central authority.

How delegation works: A human creates a signed attestation granting specific capabilities to an agent. The agent can further delegate a subset of those capabilities to sub-agents. Verifiers walk the chain back to the human sponsor. Capabilities can only narrow at each hop, never widen. See the Delegation Guide for a full walkthrough.

Cloud integration via OIDC: The OIDC bridge verifies an agent's attestation chain and issues a standard JWT consumable by AWS STS, GCP Workload Identity, and Azure AD — no cloud provider changes required.

MCP compatibility: Auths attestations serve as the cryptographic identity layer behind MCP's OAuth-based authorization, providing verifiable delegation chains from human principals to AI agents.


How it works

Auths stores your identity and device attestations in a Git repository (~/.auths by default). Each device link is a cryptographically signed attestation stored as a Git ref.

  • Identity: A did:keri derived from your Ed25519 key
  • Devices: did:key identifiers linked via signed attestations
  • Keys: Stored in your OS keychain (macOS Keychain, or encrypted file fallback)
  • Attestations: Stored in Git refs under refs/auths/

No central server. No blockchain. Just Git and cryptography.


Commands

Command Description
auths init Initialize identity with guided setup
auths status Show identity and device overview
auths id show Display identity details
auths device link Link a new device
auths device revoke Revoke a device
auths key list List stored keys
auths verify Verify an attestation
auths verify-commit Verify a signed commit
auths git setup Configure Git for signing
auths git allowed-signers Generate allowed-signers file

Run auths --help for full documentation.


License

Apache 2.0


lib.rs:

Transport-agnostic pairing protocol for the auths identity system.

This crate implements the cryptographic pairing protocol that allows cross-device identity linking. It is intentionally free of transport dependencies (no axum, tower-http, mdns-sd, reqwest) so that mobile apps can use it with their own transport layer.

Dependencies

~10–23MB
~376K SLoC