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.
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_CONTRACTStore 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_CONTRACTRead entry
uv run {baseDir}/scripts/ercdata-cli.py read --id 1 --key $ERCDATA_KEY --contract $ERCDATA_CONTRACTVerify entry (EIP-712 signature check)
uv run {baseDir}/scripts/ercdata-cli.py verify --id 1 --method eip712 --key $ERCDATA_KEY --contract $ERCDATA_CONTRACTGrant 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 mainnetERCDATA_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
getData(). Use for transparency, audit trails.--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
web3 and eth-account packages (auto-installed by uv)π‘ 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_CONTRACTStore 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_CONTRACTRead entry
uv run {baseDir}/scripts/ercdata-cli.py read --id 1 --key $ERCDATA_KEY --contract $ERCDATA_CONTRACTVerify entry (EIP-712 signature check)
uv run {baseDir}/scripts/ercdata-cli.py verify --id 1 --method eip712 --key $ERCDATA_KEY --contract $ERCDATA_CONTRACTGrant 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 mainnetERCDATA_RPC β RPC URL (default: https://mainnet.base.org)Or pass via --key, --contract, --rpc flags.