Skills ercdata

Store, verify, and manage AI data on the Ethereum blockchain (Base network) using the ERCData standard. Use when an agent needs to store data fingerprints on-chain, verify data integrity, create audit trails, manage access control for private data, or interact with the ERCData smart contract. Supports public and private storage, EIP-712 verification, snapshots, and batch operations.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/0xreisearch/ercdata" ~/.claude/skills/clawdbot-skills-ercdata && rm -rf "$T"
manifest: skills/0xreisearch/ercdata/SKILL.md
source content

ERCData

Store and verify AI-related data on Base mainnet. Public or private, with cryptographic integrity proofs.

Quick Start

# Store public data
uv run {baseDir}/scripts/ercdata-cli.py store \
  --type AI_AGENT_MEMORY \
  --data "memory hash: abc123" \
  --metadata '{"agent":"MyBot","ts":"2026-01-31"}' \
  --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT

# Store private data (only you + granted addresses can read)
uv run {baseDir}/scripts/ercdata-cli.py store \
  --type AI_AGENT_MEMORY \
  --data "secret memory data" \
  --private \
  --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT

# Read entry
uv run {baseDir}/scripts/ercdata-cli.py read --id 1 --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT

# Verify entry (EIP-712 signature check)
uv run {baseDir}/scripts/ercdata-cli.py verify --id 1 --method eip712 --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT

# Grant access to private entry
uv run {baseDir}/scripts/ercdata-cli.py grant-access --id 2 --to 0xSomeAddress --key $ERCDATA_KEY --contract $ERCDATA_CONTRACT

Configuration

Set via environment or skill config:

  • ERCDATA_KEY
    — Private key for signing transactions (required for writes)
  • ERCDATA_CONTRACT
    — Contract address on Base mainnet
  • ERCDATA_RPC
    — RPC URL (default: https://mainnet.base.org)

Or pass via

--key
,
--contract
,
--rpc
flags.

Commands

CommandWhat it does
store
Store data on-chain (add
--private
for access control)
read
Read a data entry by ID
verify
Verify data integrity (eip712 or hash method)
grant-access
Grant read access to an address (private entries)
revoke-access
Revoke read access
register-type
Register a new data type (admin only)
snapshot
Create a point-in-time snapshot
info
Get entry info without full data

Privacy Model

  • Public (default): Anyone can read via
    getData()
    . Use for transparency, audit trails.
  • Private (
    --private
    ):
    Only the provider, granted addresses, and admin can read. Use for sensitive agent data.

Private entries store the same data on-chain but gate

getData()
access. Note: raw transaction calldata is still visible on-chain explorers. For maximum privacy, encrypt data before storing.

Use Cases for AI Agents

  1. Memory attestation — Hash your MEMORY.md and store it periodically for tamper-proof audit trail
  2. Agent identity — Store model fingerprint, system prompt hash, config on-chain
  3. Verifiable outputs — Hash agent outputs and store for later verification
  4. Agent-to-agent trust — Check another agent's ERCData entries before trusting its data
  5. Model provenance — Store model hashes, benchmark scores, architecture metadata

API Reference

See references/api.md for full contract API, roles, events, and limits.

Requirements

  • Python 3.10+ with
    web3
    and
    eth-account
    packages (auto-installed by uv)
  • A funded wallet on Base mainnet (ETH for gas)
  • PROVIDER_ROLE granted by contract admin for storing data
  • VERIFIER_ROLE granted for verification operations