بنقرة واحدة
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