Notarize AT Protocol records on Ethereum using EAS (experiment)
TypeScript 75.7%
JavaScript 24.3%
16 1 0

Clone this repository

https://tangled.org/tree.fail/atnotary
git@tangled.org:tree.fail/atnotary

For self-hosted knots, clone URLs may differ based on your setup.

README.md

AT Protocol Notary (atnotary)#

Create permanent, verifiable attestations of AT Protocol records using Ethereum Attestation Service (EAS).

Why#

  • Standardized attestations - interoperable format used across ecosystem
  • On-chain verification - stored on Ethereum/Base, immutable and public
  • Composable - other projects can reference and build on attestations
  • Infrastructure - explorers, indexers, and tooling already exist
  • Multi-chain - works on Ethereum, Base, Optimism, Arbitrum

What Gets Attested#

  • recordURI - Full AT Protocol URI
  • cid - AT Protocol's content identifier
  • contentHash - DAG-CBOR hash
  • pds - Personal Data Server URL
  • timestamp - When attested

Install#

npm install -g atnotary

Setup#

  1. Create config file:
atnotary config
  1. Edit .atnotary.yaml:
privateKey: "0x..."       # private key for writing
network: base-sepolia     # default network
  1. Get testnet ETH:

That's it! Default schemas are provided for all networks.

Custom Schema (Optional)#

If you want to deploy your own schema:

atnotary init --network sepolia

Then add the schemaUID to your .atnotary.yaml file.

Usage#

# notarize
atnotary notarize "at://did:plc:xxx/app.bsky.feed.post/abc"

# verify
atnotary verify "0xabc..." --network sepolia

# compare with current state
atnotary verify "0xabc..." --compare

Library Usage#

import { ATProtocolNotary } from 'atnotary';

const notary = new ATProtocolNotary({
  privateKey: "0x...", // optional, just for writing
}, 'sepolia');

const result = await notary.notarizeRecord('at://...');
const attestation = await notary.verifyAttestation('0x...');
const comparison = await notary.compareWithCurrent(attestation);

Networks#

  • Ethereum Sepolia (testnet)
  • Base Sepolia (testnet)
  • Base (mainnet)

Use Cases#

  • Political accountability
  • Journalism evidence
  • Open source governance
  • Content authorship proof
  • Legal documentation

License#

MIT