← 返回
沟通协作

Basecred ERC-8004 Registration

Interactive ERC-8004 agent registration via chat. Guides users through a prefill form, shows draft, confirms, then registers on-chain using agent0-sdk.
通过聊天交互式注册ERC‑8004代理。引导用户填写预填表单、显示草稿、确认后使用agent0‑sdk链上注册。
callmedas69
沟通协作 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 1,352
下载
💾 23
安装
1
版本
#latest

概述

Basecred ERC-8004 Registration

Register AI agents on the ERC-8004 on-chain registry through a guided chat experience.

Registration Flow

Step 1: Auto-Prefill

When the user triggers registration, auto-fill every field you can from:

  • Agent identity files (IDENTITY.md, SOUL.md, USER.md)
  • Environment (.env — wallet address derived from private key)
  • Previous context (A2A endpoint, description, image, etc.)
  • Sensible defaults (version: 1.0.0, license: MIT, chain: Base, storage: onchain)

Do NOT ask questions one by one. Prefill first, ask later.

Step 1.5: Explain Config Defaults

Before showing the draft, briefly explain the config so users understand what's pre-selected and what alternatives exist:

⚙️ Config defaults (you can change these later):

Chain:    Base (8453) — where your agent lives on-chain
          Others: Ethereum, Polygon, BNB, Arbitrum, Celo, Gnosis, Scroll

Storage:  Fully onchain — agent data stored directly on-chain
          Alternative: IPFS — data pinned to IPFS, hash stored on-chain

Trust:    Reputation — other agents/users rate your agent on-chain
          Others: Crypto-Economic (staking/slashing guarantees)
                  TEE Attestation (hardware-level trust proof)

x402:     Off — no payment protocol
          On: agent can charge for services via x402 payment protocol

Active:   On — agent is discoverable and accepting requests
          Off: registered but hidden from discovery

Wallet:   Your agent's on-chain identity address
          Two ways to set it:

          Option A: Paste your wallet address
          → Just paste your 0x... address
          → Agent will be linked to this address on-chain

          Option B: Add private key to .env (for signing)
          → Set PRIVATE_KEY=0x... in your .env file
          → Wallet auto-detected + can sign transactions
          → Enables setWallet() via EIP-712 after registration

          💡 Option A is easier. Option B is needed if you want
             the agent to sign transactions on your behalf.

Show this once at the start, not repeated on every draft.

Step 2: Show Full Draft with Buttons (Single Message)

Send the entire draft + buttons as one message using the message tool. This keeps buttons directly below the draft.

Important: Use message action=send with both message (the draft text) and buttons (inline buttons). Do NOT split into reply + separate button message. After sending, reply with NO_REPLY to avoid duplicate.

Use ✅ (filled) and ⚠️ (missing/needs attention):

📋 Agent Registration Draft

── Basic Info ──
✅ Name:        Mr. Tee
✅ Description: AI agent with a CRT monitor...
✅ Image:       pbs.twimg.com/...
✅ Version:     1.0.0
✅ Author:      0xdas
✅ License:     MIT

── Endpoints ──
✅ A2A:         a2a.teeclaw.xyz/a2a
⚠️ MCP:         (none)

── Skills & Domains ──
✅ Skills (5):  natural_language_processing/natural_language_processing, 
                natural_language_processing/natural_language_generation/summarization,
                natural_language_processing/information_retrieval_synthesis/question_answering,
                analytical_skills/coding_skills/coding_skills,
                images_computer_vision/images_computer_vision
✅ Domains (5): technology/blockchain/blockchain, technology/blockchain/defi,
                technology/technology, technology/software_engineering/software_engineering,
                technology/software_engineering/devops
✅ Custom:      agent_orchestration/agent_coordination, 
                social_media/content_management

── Config ──
✅ Chain:       Base (8453)
✅ Storage:     Fully onchain
✅ Active:      true
✅ Trust:       reputation
✅ x402:        false
✅ Wallet:      0x1348...e41 (auto .env)

Tap to edit a section or register:

Buttons (attached to same message):

Row 1: [✏️ Basic Info] [✏️ Endpoints]
Row 2: [✏️ Skills & Domains] [✏️ Config]
Row 3: [✅ Register] [❌ Cancel]

Step 3: Section Editing (on button tap)

Instant feedback: When any button is tapped, immediately acknowledge before doing anything else:

ButtonInstant Feedback
-------------------------
✏️ Basic Info"📝 Editing Basic Info..."
✏️ Endpoints"🔗 Editing Endpoints..."
✏️ Skills & Domains"🏷️ Editing Skills & Domains..."
✏️ Config"⚙️ Editing Config..."
✅ Register"⏳ Starting registration on Base..."
❌ Cancel"❌ Registration cancelled."
↩️ Back to Draft"📋 Back to draft..."

Then show the edit form. Always include ↩️ Back to Draft button.

Edit Basic Info

Current values:
• Name: Mr. Tee
• Description: AI agent with a CRT...
• Image: pbs.twimg.com/...
• Version: 1.0.0
• Author: 0xdas
• License: MIT

Type field name and new value, e.g. "name: CoolBot"
Or type "done" to go back.

Buttons: [↩️ Back to Draft]

Edit Endpoints

Current:
• A2A: https://a2a.teeclaw.xyz/a2a
• MCP: (none)

Paste a URL to set, or "clear mcp" / "clear a2a" to remove.

Buttons: [↩️ Back to Draft]

Edit Skills & Domains

Toggleable inline buttons (multi-select). Each button shows a human-readable label but stores the full OASF taxonomy path as the value.

Skills: (OASF taxonomy paths)

[NLP ✅] → natural_language_processing/natural_language_processing
[Summarization ✅] → natural_language_processing/natural_language_generation/summarization
[Q&A ✅] → natural_language_processing/information_retrieval_synthesis/question_answering
[Code Gen ✅] → analytical_skills/coding_skills/coding_skills
[CV ✅] → images_computer_vision/images_computer_vision
[Data Analysis] → analytical_skills/data_analysis/data_analysis
[Web Search] → natural_language_processing/information_retrieval_synthesis/web_search
[Image Gen] → images_computer_vision/image_generation/image_generation
[Translation] → natural_language_processing/natural_language_generation/translation
[Task Automation] → tool_interaction/workflow_automation
[+ Custom] [↩️ Back to Draft]

Domains: (OASF taxonomy paths)

[Blockchain ✅] → technology/blockchain/blockchain
[DeFi ✅] → technology/blockchain/defi
[Technology ✅] → technology/technology
[SE ✅] → technology/software_engineering/software_engineering
[DevOps ✅] → technology/software_engineering/devops
[Finance] → finance/finance
[Healthcare] → healthcare/healthcare
[Education] → education/education
[Entertainment] → entertainment/entertainment
[Science] → science/science
[Creative Arts] → creative_arts/creative_arts
[Dev Tools] → technology/software_engineering/development_tools
[+ Custom] [↩️ Back to Draft]

Display behavior:

  • Buttons show short labels (e.g., "NLP", "Blockchain") for readability
  • Values stored are full OASF paths (e.g., natural_language_processing/natural_language_processing)
  • Tapping toggles ✅ on/off
  • + Custom prompts user to type a custom OASF path or label

Edit Config

Trust models (multi-select):

[Reputation ✅] [Crypto-Economic] [TEE Attestation]

Other config:

[Chain: Base ▼] [Storage: Onchain ▼] [x402: Off ▼]
[↩️ Back to Draft]
Trust ModelDescription
--------------------------
ReputationOn-chain feedback & scoring. Default for most agents.
Crypto-EconomicStaking/slashing guarantees. For financial agents.
TEE AttestationHardware-level trust proof. For high-security agents.

Step 4: Back to Draft

After any edit, re-send the updated full draft as a single message with buttons (same as Step 2). Repeat until user taps ✅ Register.

Step 5: Execute

Only after explicit ✅ Register confirmation.

  1. Write the registration JSON to a temp file
  2. Run the script:
source /path/to/.env
node scripts/register.mjs --json /tmp/registration.json --chain 8453 --yes

The script handles: register()setA2A()/setMCP()addSkill()/addDomain()setWallet()

Step 5.5: Progress Updates

Send progress updates during registration:

⏳ Step 1/3: Minting agent NFT on Base...
✅ Agent minted! ID: 8453:42

⏳ Step 2/3: Setting endpoints & metadata...
✅ Endpoints configured

⏳ Step 3/3: Linking wallet via EIP-712...
✅ Wallet linked!

Step 6: Report Result

✅ Agent Registered on Base!

  Agent ID:    8453:42
  Wallet:      0x1348...e41
  A2A:         a2a.teeclaw.xyz/a2a
  TX:          0xabc...def

  View: https://8004.org/agent/8453:42

Error Handling

Missing Required Fields

If Name or Description are empty after prefill, mark them ⚠️ and block registration. Show: "Please fill required fields first."

No Wallet

⚠️ No wallet detected. You need one to register:
  Option A: Paste your 0x... address
  Option B: Add PRIVATE_KEY to your .env file

Transaction Failures

Show error clearly and offer retry:

❌ Registration failed: insufficient funds for gas
[🔄 Retry] [❌ Cancel]

setWallet Failure

Public RPCs (e.g. mainnet.base.org) don't support eth_signTypedData_v4. If setWallet fails:

⚠️ Wallet linking failed (public RPC limitation).
You can link your wallet manually at https://8004.org

This is non-blocking — the agent is registered, just wallet isn't linked on-chain yet.

Duplicate Registration Prevention

The script checks if the wallet already owns agent(s) on the target chain before submitting. If detected:

⚠️ Warning: This wallet already owns 1 agent(s) on Base.
   Registering again will create a duplicate.
   Use update.mjs to modify an existing agent instead.

In chat flow, warn the user and suggest updating instead of re-registering. The check is non-blocking if --yes is passed.

Already Registered

If the agent already has an agentId, offer to update instead of register.

Technical Notes

Registry Overrides

The SDK only ships with Ethereum Mainnet registry addresses. For Base and other chains, the script passes registryOverrides with deterministic contract addresses:

  • Identity Registry: 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432
  • Reputation Registry: 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63

Transaction Handling

The SDK returns TransactionHandle objects. Use .waitMined() (not .wait()) to await confirmation.

All Fields Reference

Basic Info

FieldRequiredDefaultAuto-source
---------------------------------------
Agent NameIDENTITY.md
Agent Addressauto.env private key or pasted
DescriptionIDENTITY.md / SOUL.md
ImageNoProfile image URL
VersionNo1.0.0
AuthorNoUSER.md
LicenseNoMIT

Endpoints

FieldRequiredDefaultAuto-source
---------------------------------------
A2A EndpointNoIDENTITY.md
MCP EndpointNo

Skills & Domains

FieldRequiredDefault
--------------------------
Selected SkillsNo[]
Selected DomainsNo[]
Custom SkillsNo[]
Custom DomainsNo[]

Advanced Config

FieldRequiredDefault
--------------------------
Trust ModelsNo[] (suggest: reputation)
x402 SupportNofalse
StorageNohttp (fully onchain)
ActiveNotrue
ChainNo8453 (Base)

Supported Chains

ChainIDDefault
---------------------
Base8453
Ethereum1
Polygon137
BNB Chain56
Arbitrum42161
Celo42220
Gnosis100
Scroll534352

All chains use the same deterministic contract addresses.

JSON Template (8004.org format)

{
  "basicInfo": {
    "agentName": "",
    "agentAddress": "",
    "description": "",
    "image": "",
    "version": "1.0.0",
    "author": "",
    "license": "MIT"
  },
  "endpoints": {
    "mcpEndpoint": "",
    "a2aEndpoint": ""
  },
  "skillsDomains": {
    "selectedSkills": [],
    "selectedDomains": [],
    "customSkills": [],
    "customDomains": []
  },
  "advancedConfig": {
    "supportedTrusts": [],
    "x402support": false,
    "storageMethod": "http",
    "active": true
  },
  "version": "1.0.0"
}

Environment Variables

VariableRequiredDescription
---------------------------------
PRIVATE_KEY / AGENT_PRIVATE_KEY / MAIN_WALLET_PRIVATE_KEYYesWallet private key
RPC_URLNoCustom RPC (auto-detected per chain)
CHAIN_IDNoDefault chain (8453)

Other Operations

# Search agents
node scripts/search.mjs --name "AgentName" --chain 8453

# Update agent
node scripts/update.mjs --agent-id "8453:42" --name "NewName" --yes

# Give feedback
node scripts/feedback.mjs --agent-id "8453:42" --value 5 --tag1 "reliable" --yes

Setup

bash scripts/setup.sh

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-29 01:20 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

communication-collaboration

Himalaya

lamelas
{"answer":"通过IMAP/SMTP管理邮件的CLI。可在终端使用 `himalaya` 收发、回复、转发、搜索及整理邮件。支持多账户与MML(MIME元语言)编写邮件。"}
★ 68 📥 45,581
security-compliance

Credential Manager

callmedas69
OpenClaw 必须的安全基础。将分散的 API 密钥和凭证统一到具备正确权限的 .env 文件中。在部署 OpenClaw、迁移凭证、进行安全审计或强制执行 .env 标准时使用。不可省略——集中凭证管理是安全部署的核心要求。扫描常见位
★ 3 📥 5,558
communication-collaboration

imap-smtp-email

gzlicanyi
使用IMAP/SMTP读取和发送邮件;检查新/未读邮件、获取内容、搜索邮箱、标记已读/未读、发送带附件的邮件。支持...
★ 113 📥 52,397