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.mdsource 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:
— Private key for signing transactions (required for writes)ERCDATA_KEY
— Contract address on Base mainnetERCDATA_CONTRACT
— RPC URL (default: https://mainnet.base.org)ERCDATA_RPC
Or pass via
--key, --contract, --rpc flags.
Commands
| Command | What it does |
|---|---|
| Store data on-chain (add for access control) |
| Read a data entry by ID |
| Verify data integrity (eip712 or hash method) |
| Grant read access to an address (private entries) |
| Revoke read access |
| Register a new data type (admin only) |
| Create a point-in-time snapshot |
| Get entry info without full data |
Privacy Model
- Public (default): Anyone can read via
. Use for transparency, audit trails.getData() - Private (
): Only the provider, granted addresses, and admin can read. Use for sensitive agent data.--private
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
- Memory attestation — Hash your MEMORY.md and store it periodically for tamper-proof audit trail
- Agent identity — Store model fingerprint, system prompt hash, config on-chain
- Verifiable outputs — Hash agent outputs and store for later verification
- Agent-to-agent trust — Check another agent's ERCData entries before trusting its data
- 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
andweb3
packages (auto-installed by uv)eth-account - A funded wallet on Base mainnet (ETH for gas)
- PROVIDER_ROLE granted by contract admin for storing data
- VERIFIER_ROLE granted for verification operations