一键导入
weft-ens
Update ENS text records after milestone verification — portable onchain reputation
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Update ENS text records after milestone verification — portable onchain reputation
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Generate a multi-chapter Builder Journey narrative from Weft milestone attestations using Kimi — each milestone is a thread woven into the project's fabric
Conversational demo coordinator — chains verification, chronicle, and animation into a single natural-language-driven flow. Tries real data first, clearly labels demo fallback.
Generate a Manim animation visualising the Weft verification flow as a weaving — threads appear (evidence), interlace (peer consensus), and form fabric (verified milestone card)
Generate a human-readable narrative from a Weft attestation using Kimi (moonshot-v1-128k)
Verify a Weft milestone — collect evidence, check deployment, count unique callers, build attestation, and optionally submit onchain verdict
Autonomous multi-step milestone verification workflow. Hermes plans, executes, reasons, and reports across evidence collection, peer consensus, onchain verdict, narrative generation, and ENS reputation — with failure recovery at every step.
| name | weft-ens |
| description | Update ENS text records after milestone verification — portable onchain reputation |
| version | 1.0.0 |
| metadata | {"hermes":{"tags":["web3","ens","identity","reputation","ethereum"],"category":"devops","requires_toolsets":["terminal"]}} |
| required_environment_variables | [{"name":"ETH_RPC_URL","prompt":"0G Chain RPC URL","help":"Default: https://evmrpc-testnet.0g.ai","required_for":"writing ENS records"},{"name":"PRIVATE_KEY","prompt":"Verifier private key","help":"Must own or control the target ENS name","required_for":"signing ENS transactions"}] |
Weft writes these ENS text records to the builder's name:
| Record | Example | Description |
|---|---|---|
weft.projects | ["0xabc..."] | JSON array of project IDs |
weft.milestones.verified | 3 | Count of verified milestones |
weft.earned.total | 5000000000000000000 | Total earned in wei |
weft.cobuilders | ["alice.eth","bob.eth"] | JSON array of co-builder ENS names |
weft.reputation.score | 85 | Computed reputation score |
weft.milestone.0xabc.status | released | Per-milestone status |
weft.milestone.0xabc.evidence | 0xdef... | Per-milestone evidence root |
weft.milestone.0xabc.timestamp | 1777408911 | Verification timestamp |
When --builder-ens is set, the daemon writes ENS records after verification:
cd "$WEFT_ROOT"
export ETH_RPC_URL="https://evmrpc-testnet.0g.ai"
export PRIVATE_KEY="<verifier_key>"
python3 agent/scripts/weft_daemon.py --once \
--builder-ens "mybuilder.eth" \
--contract-address 0x0000000000000000000000000000000000000001 \
--measurement-window-seconds 86400 \
--unique-caller-threshold 1
cd "$WEFT_ROOT"
export ETH_RPC_URL="https://evmrpc-testnet.0g.ai"
export PRIVATE_KEY="<verifier_key>"
python3 -c "
from agent.lib.ens_client import EnsClient
client = EnsClient(
rpc_url='$ETH_RPC_URL',
wallet_key='$PRIVATE_KEY',
)
# Update profile
client.update_builder_profile(
'mybuilder.eth',
add_project='0xabc123...',
increment_verified=True,
add_earnings=3500000000000000000, # 3.5 ETH in wei
)
print('ENS records updated')
"
python3 -c "
from agent.lib.ens_client import EnsClient
client = EnsClient(
rpc_url='$ETH_RPC_URL',
wallet_key='',
)
profile = client.read_builder_profile('mybuilder.eth')
print(f'Projects: {profile.projects}')
print(f'Verified: {profile.milestones_verified}')
print(f'Earned: {profile.earned_total / 1e18} ETH')
print(f'Cobuilders: {profile.cobuilders}')
print(f'Reputation: {profile.reputation_score}')
"
After updating ENS records, present:
ENS Reputation Updated
━━━━━━━━━━━━━━━━━━━━━━
Builder: mybuilder.eth
Records written:
• weft.milestones.verified → 3
• weft.earned.total → 3.5 ETH
• weft.projects → ["0xabc..."]
• weft.milestone.0x0f93... → verified
View profile: weft.build/builder/mybuilder.eth
View on ENS: app.ens.domains/name/mybuilder.eth
--skip-ownership for demos.setText is a separate transaction. Budget gas for multiple writes.setText. The default public resolver does.After updating, read back the records:
cast call <resolver> "text(bytes32,string)" <namehash> "weft.milestones.verified" --rpc-url $ETH_RPC_URL