协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
blockchain_attestation【开发与工程】Create verifiable attestations of agent work using Ethereum Attestation Service (EAS), with Base as the default chain.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
This skill creates onchain or offchain attestations of completed work using the Ethereum Attestation Service (EAS).
Opinionated defaults:
Required for signing (offchain or onchain):
EAS_PRIVATE_KEYRequired for onchain transactions and onchain reads:
EAS_RPC_URL (an RPC endpoint for the selected chain)Optional:
EAS_CHAIN (base or base_sepolia, default is base)CLAWDBOT_AGENT_ID (overrides the agentId field)Install Node dependencies once:
cd {baseDir} && npm install
This skill uses a single schema:
bytes32 taskHash, bytes32 outputHash, string agentId, string metadata
Register it (onchain transaction) and persist the resulting schema UID into schemas.json:
cd {baseDir} && node attest.mjs schema register --chain base
For Base Sepolia:
cd {baseDir} && node attest.mjs schema register --chain base_sepolia
Best default workflow:
Example:
cd {baseDir} && node attest.mjs attest \
--mode offchain \
--chain base \
--task-text "Summarize Q4 board deck into 1 page memo" \
--output-file ./deliverables/memo.pdf \
--recipient 0x0000000000000000000000000000000000000000 \
--metadata '{"hashAlg":"sha256","artifact":"memo.pdf"}' \
--save ./attestations/latest.offchain.json
cd {baseDir} && node attest.mjs timestamp --chain base --uid <uid>
cd {baseDir} && node attest.mjs attest \
--mode onchain \
--chain base \
--task-text "..." \
--output-file ./path/to/output \
--metadata '{"hashAlg":"sha256"}'
Verify an onchain UID:
cd {baseDir} && node attest.mjs verify --chain base --uid <uid>
Verify an offchain attestation JSON file (as produced by this skill):
cd {baseDir} && node attest.mjs verify --offchain-file ./attestations/latest.offchain.json
If you need hashes without creating an attestation:
cd {baseDir} && node attest.mjs hash --file ./deliverables/memo.pdf
All commands print a single JSON object to stdout.
{ "success": true, ... }{ "success": false, "error": { "code": "...", "message": "...", "details": ... } }This is deliberate so the agent can reliably parse results.