Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

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.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 760 · 1 current installs · 1 all-time installs
byMr. TeeClaw@Callmedas69
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The skill's name/description (ERC‑8004 registration) aligns with the included scripts (register, update, search, feedback) and use of agent0‑sdk. However the registry metadata claims no required env vars or binaries while the shipped README and scripts clearly expect Node >=18, npm, and PRIVATE_KEY / AGENT_PRIVATE_KEY / MAIN_WALLET_PRIVATE_KEY (and optionally PINATA_JWT and RPC_URL). That metadata omission is an incoherence (likely sloppy packaging) but the requested capabilities themselves are consistent with the stated purpose.
!
Instruction Scope
SKILL.md explicitly instructs the agent to "auto-fill every field you can" from identity files (IDENTITY.md, SOUL.md, USER.md), the environment (.env), and prior context. For registration this is functionally reasonable, but it means the agent will read local identity files and environment variables (including private key in .env if present). The SKILL.md also tells the agent to prefill everything before asking the user, increasing the chance of reading more sensitive context without explicit per-field confirmation.
Install Mechanism
The registry lists no install spec (instruction-only), but the package contains a scripts/setup.sh that runs npm install agent0-sdk@1.5.2. Installing agent0-sdk via npm is a normal approach for this functionality; it is moderate-risk (third‑party package install). There are no downloads from unknown personal servers or shorteners in the manifest.
!
Credentials
The code requires a private key env var for write operations (PRIVATE_KEY / AGENT_PRIVATE_KEY / MAIN_WALLET_PRIVATE_KEY) and optionally PINATA_JWT and RPC_URL. Requesting private key material is proportionate for signing on‑chain transactions, but the registry metadata did not declare these requirements and SKILL.md encourages storing a private key in .env. That combination (undeclared sensitive env access + instruction to auto‑detect a private key) raises a practical safety concern: the skill will access and use a sensitive secret if present.
Persistence & Privilege
The skill is not always:true and does not request to persist or modify other skills or system settings. It does not demand permanent inclusion or elevated platform privileges. It will perform on‑chain operations only when a private key is provided and when the user confirms actions (scripts prompt for confirmation unless --yes is used).
What to consider before installing
This package appears to implement ERC‑8004 registration as claimed, but review these before installing: - Private key handling: the scripts will use PRIVATE_KEY (or AGENT_PRIVATE_KEY / MAIN_WALLET_PRIVATE_KEY) from your environment to sign transactions. Only use this with a wallet whose funds you can afford to risk (use an ephemeral/test wallet if you want to try). Prefer pasting a public address rather than putting a private key in .env when possible. - Metadata mismatch: the registry metadata says "no required env vars / binaries", but the code needs Node >=18, npm (setup.sh runs npm install), and the private key env var for write operations. Treat that as a packaging oversight and verify prerequisites yourself. - Prefill behavior: the SKILL.md instructs automatic prefill from local identity files and environment. If you want tighter control, ask the agent to run a dry‑run first (scripts support --dry-run and the register script supports --template) so you can inspect the draft before any signing. - Install origin: setup uses npm to install agent0‑sdk@1.5.2. If you plan to run setup, verify the package and its version (check the agent0‑sdk source) and consider running the install in a sandbox/container. - Review code: if you are not comfortable, inspect scripts/register.mjs and setup.sh yourself (they are present). Confirm the RPC URLs and chain targets are as expected (this skill targets mainnets only — there is no testnet support by default). If you proceed: run in a controlled environment, perform dry runs, avoid placing your main wallet private key in .env, and verify package sources for agent0‑sdk.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk975j38rpftdk6h5w7mjvy550580v5v1

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

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

Files

11 total
Select a file
Select a file to preview.

Comments

Loading comments…