🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

ERCData

by @0xreisearch

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.

Versionv1.0.0
Downloads1,945
Installs3
Stars⭐ 1
TERMINAL
clawhub install ercdata

πŸ“– About This Skill


name: ercdata description: 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.

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

    | Command | What 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
  • πŸ’‘ Examples

    # 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.