{
  "schemaVersion": "1.0",
  "item": {
    "slug": "basecred-8004-registration",
    "name": "Basecred ERC-8004 Registration",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/Callmedas69/basecred-8004-registration",
    "canonicalUrl": "https://clawhub.ai/Callmedas69/basecred-8004-registration",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/basecred-8004-registration",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=basecred-8004-registration",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "package-lock.json",
      "package.json",
      "references/chains.md",
      "references/sdk-reference.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/basecred-8004-registration"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/basecred-8004-registration",
    "agentPageUrl": "https://openagent3.xyz/skills/basecred-8004-registration/agent",
    "manifestUrl": "https://openagent3.xyz/skills/basecred-8004-registration/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/basecred-8004-registration/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Basecred ERC-8004 Registration",
        "body": "Register AI agents on the ERC-8004 on-chain registry through a guided chat experience."
      },
      {
        "title": "Step 1: Auto-Prefill",
        "body": "When the user triggers registration, auto-fill every field you can from:\n\nAgent identity files (IDENTITY.md, SOUL.md, USER.md)\nEnvironment (.env — wallet address derived from private key)\nPrevious context (A2A endpoint, description, image, etc.)\nSensible defaults (version: 1.0.0, license: MIT, chain: Base, storage: onchain)\n\nDo NOT ask questions one by one. Prefill first, ask later."
      },
      {
        "title": "Step 1.5: Explain Config Defaults",
        "body": "Before showing the draft, briefly explain the config so users understand what's pre-selected and what alternatives exist:\n\n⚙️ Config defaults (you can change these later):\n\nChain:    Base (8453) — where your agent lives on-chain\n          Others: Ethereum, Polygon, BNB, Arbitrum, Celo, Gnosis, Scroll\n\nStorage:  Fully onchain — agent data stored directly on-chain\n          Alternative: IPFS — data pinned to IPFS, hash stored on-chain\n\nTrust:    Reputation — other agents/users rate your agent on-chain\n          Others: Crypto-Economic (staking/slashing guarantees)\n                  TEE Attestation (hardware-level trust proof)\n\nx402:     Off — no payment protocol\n          On: agent can charge for services via x402 payment protocol\n\nActive:   On — agent is discoverable and accepting requests\n          Off: registered but hidden from discovery\n\nWallet:   Your agent's on-chain identity address\n          Two ways to set it:\n\n          Option A: Paste your wallet address\n          → Just paste your 0x... address\n          → Agent will be linked to this address on-chain\n\n          Option B: Add private key to .env (for signing)\n          → Set PRIVATE_KEY=0x... in your .env file\n          → Wallet auto-detected + can sign transactions\n          → Enables setWallet() via EIP-712 after registration\n\n          💡 Option A is easier. Option B is needed if you want\n             the agent to sign transactions on your behalf.\n\nShow this once at the start, not repeated on every draft."
      },
      {
        "title": "Step 2: Show Full Draft with Buttons (Single Message)",
        "body": "Send the entire draft + buttons as one message using the message tool. This keeps buttons directly below the draft.\n\nImportant: 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.\n\nUse ✅ (filled) and ⚠️ (missing/needs attention):\n\n📋 Agent Registration Draft\n\n── Basic Info ──\n✅ Name:        Mr. Tee\n✅ Description: AI agent with a CRT monitor...\n✅ Image:       pbs.twimg.com/...\n✅ Version:     1.0.0\n✅ Author:      0xdas\n✅ License:     MIT\n\n── Endpoints ──\n✅ A2A:         a2a.teeclaw.xyz/a2a\n⚠️ MCP:         (none)\n\n── Skills & Domains ──\n✅ Skills (5):  natural_language_processing/natural_language_processing, \n                natural_language_processing/natural_language_generation/summarization,\n                natural_language_processing/information_retrieval_synthesis/question_answering,\n                analytical_skills/coding_skills/coding_skills,\n                images_computer_vision/images_computer_vision\n✅ Domains (5): technology/blockchain/blockchain, technology/blockchain/defi,\n                technology/technology, technology/software_engineering/software_engineering,\n                technology/software_engineering/devops\n✅ Custom:      agent_orchestration/agent_coordination, \n                social_media/content_management\n\n── Config ──\n✅ Chain:       Base (8453)\n✅ Storage:     Fully onchain\n✅ Active:      true\n✅ Trust:       reputation\n✅ x402:        false\n✅ Wallet:      0x1348...e41 (auto .env)\n\nTap to edit a section or register:\n\nButtons (attached to same message):\n\nRow 1: [✏️ Basic Info] [✏️ Endpoints]\nRow 2: [✏️ Skills & Domains] [✏️ Config]\nRow 3: [✅ Register] [❌ Cancel]"
      },
      {
        "title": "Step 3: Section Editing (on button tap)",
        "body": "Instant feedback: When any button is tapped, immediately acknowledge before doing anything else:\n\nButtonInstant 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...\"\n\nThen show the edit form. Always include ↩️ Back to Draft button.\n\nEdit Basic Info\n\nCurrent values:\n• Name: Mr. Tee\n• Description: AI agent with a CRT...\n• Image: pbs.twimg.com/...\n• Version: 1.0.0\n• Author: 0xdas\n• License: MIT\n\nType field name and new value, e.g. \"name: CoolBot\"\nOr type \"done\" to go back.\n\nButtons: [↩️ Back to Draft]\n\nEdit Endpoints\n\nCurrent:\n• A2A: https://a2a.teeclaw.xyz/a2a\n• MCP: (none)\n\nPaste a URL to set, or \"clear mcp\" / \"clear a2a\" to remove.\n\nButtons: [↩️ Back to Draft]\n\nEdit Skills & Domains\n\nToggleable inline buttons (multi-select). Each button shows a human-readable label but stores the full OASF taxonomy path as the value.\n\nSkills: (OASF taxonomy paths)\n\n[NLP ✅] → natural_language_processing/natural_language_processing\n[Summarization ✅] → natural_language_processing/natural_language_generation/summarization\n[Q&A ✅] → natural_language_processing/information_retrieval_synthesis/question_answering\n[Code Gen ✅] → analytical_skills/coding_skills/coding_skills\n[CV ✅] → images_computer_vision/images_computer_vision\n[Data Analysis] → analytical_skills/data_analysis/data_analysis\n[Web Search] → natural_language_processing/information_retrieval_synthesis/web_search\n[Image Gen] → images_computer_vision/image_generation/image_generation\n[Translation] → natural_language_processing/natural_language_generation/translation\n[Task Automation] → tool_interaction/workflow_automation\n[+ Custom] [↩️ Back to Draft]\n\nDomains: (OASF taxonomy paths)\n\n[Blockchain ✅] → technology/blockchain/blockchain\n[DeFi ✅] → technology/blockchain/defi\n[Technology ✅] → technology/technology\n[SE ✅] → technology/software_engineering/software_engineering\n[DevOps ✅] → technology/software_engineering/devops\n[Finance] → finance/finance\n[Healthcare] → healthcare/healthcare\n[Education] → education/education\n[Entertainment] → entertainment/entertainment\n[Science] → science/science\n[Creative Arts] → creative_arts/creative_arts\n[Dev Tools] → technology/software_engineering/development_tools\n[+ Custom] [↩️ Back to Draft]\n\nDisplay behavior:\n\nButtons show short labels (e.g., \"NLP\", \"Blockchain\") for readability\nValues stored are full OASF paths (e.g., natural_language_processing/natural_language_processing)\nTapping toggles ✅ on/off\n+ Custom prompts user to type a custom OASF path or label\n\nEdit Config\n\nTrust models (multi-select):\n\n[Reputation ✅] [Crypto-Economic] [TEE Attestation]\n\nOther config:\n\n[Chain: Base ▼] [Storage: Onchain ▼] [x402: Off ▼]\n[↩️ Back to Draft]\n\nTrust ModelDescriptionReputationOn-chain feedback & scoring. Default for most agents.Crypto-EconomicStaking/slashing guarantees. For financial agents.TEE AttestationHardware-level trust proof. For high-security agents."
      },
      {
        "title": "Step 4: Back to Draft",
        "body": "After any edit, re-send the updated full draft as a single message with buttons (same as Step 2). Repeat until user taps ✅ Register."
      },
      {
        "title": "Step 5: Execute",
        "body": "Only after explicit ✅ Register confirmation.\n\nWrite the registration JSON to a temp file\nRun the script:\n\nsource /path/to/.env\nnode scripts/register.mjs --json /tmp/registration.json --chain 8453 --yes\n\nThe script handles: register() → setA2A()/setMCP() → addSkill()/addDomain() → setWallet()"
      },
      {
        "title": "Step 5.5: Progress Updates",
        "body": "Send progress updates during registration:\n\n⏳ Step 1/3: Minting agent NFT on Base...\n✅ Agent minted! ID: 8453:42\n\n⏳ Step 2/3: Setting endpoints & metadata...\n✅ Endpoints configured\n\n⏳ Step 3/3: Linking wallet via EIP-712...\n✅ Wallet linked!"
      },
      {
        "title": "Step 6: Report Result",
        "body": "✅ Agent Registered on Base!\n\n  Agent ID:    8453:42\n  Wallet:      0x1348...e41\n  A2A:         a2a.teeclaw.xyz/a2a\n  TX:          0xabc...def\n\n  View: https://8004.org/agent/8453:42"
      },
      {
        "title": "Missing Required Fields",
        "body": "If Name or Description are empty after prefill, mark them ⚠️ and block registration. Show: \"Please fill required fields first.\""
      },
      {
        "title": "No Wallet",
        "body": "⚠️ No wallet detected. You need one to register:\n  Option A: Paste your 0x... address\n  Option B: Add PRIVATE_KEY to your .env file"
      },
      {
        "title": "Transaction Failures",
        "body": "Show error clearly and offer retry:\n\n❌ Registration failed: insufficient funds for gas\n[🔄 Retry] [❌ Cancel]"
      },
      {
        "title": "setWallet Failure",
        "body": "Public RPCs (e.g. mainnet.base.org) don't support eth_signTypedData_v4. If setWallet fails:\n\n⚠️ Wallet linking failed (public RPC limitation).\nYou can link your wallet manually at https://8004.org\n\nThis is non-blocking — the agent is registered, just wallet isn't linked on-chain yet."
      },
      {
        "title": "Duplicate Registration Prevention",
        "body": "The script checks if the wallet already owns agent(s) on the target chain before submitting. If detected:\n\n⚠️ Warning: This wallet already owns 1 agent(s) on Base.\n   Registering again will create a duplicate.\n   Use update.mjs to modify an existing agent instead.\n\nIn chat flow, warn the user and suggest updating instead of re-registering. The check is non-blocking if --yes is passed."
      },
      {
        "title": "Already Registered",
        "body": "If the agent already has an agentId, offer to update instead of register."
      },
      {
        "title": "Registry Overrides",
        "body": "The SDK only ships with Ethereum Mainnet registry addresses. For Base and other chains, the script passes registryOverrides with deterministic contract addresses:\n\nIdentity Registry: 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432\nReputation Registry: 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63"
      },
      {
        "title": "Transaction Handling",
        "body": "The SDK returns TransactionHandle objects. Use .waitMined() (not .wait()) to await confirmation."
      },
      {
        "title": "Basic Info",
        "body": "FieldRequiredDefaultAuto-sourceAgent Name✅—IDENTITY.mdAgent Addressauto—.env private key or pastedDescription✅—IDENTITY.md / SOUL.mdImageNo—Profile image URLVersionNo1.0.0—AuthorNo—USER.mdLicenseNoMIT—"
      },
      {
        "title": "Endpoints",
        "body": "FieldRequiredDefaultAuto-sourceA2A EndpointNo—IDENTITY.mdMCP EndpointNo——"
      },
      {
        "title": "Skills & Domains",
        "body": "FieldRequiredDefaultSelected SkillsNo[]Selected DomainsNo[]Custom SkillsNo[]Custom DomainsNo[]"
      },
      {
        "title": "Advanced Config",
        "body": "FieldRequiredDefaultTrust ModelsNo[] (suggest: reputation)x402 SupportNofalseStorageNohttp (fully onchain)ActiveNotrueChainNo8453 (Base)"
      },
      {
        "title": "Supported Chains",
        "body": "ChainIDDefaultBase8453✅Ethereum1Polygon137BNB Chain56Arbitrum42161Celo42220Gnosis100Scroll534352\n\nAll chains use the same deterministic contract addresses."
      },
      {
        "title": "JSON Template (8004.org format)",
        "body": "{\n  \"basicInfo\": {\n    \"agentName\": \"\",\n    \"agentAddress\": \"\",\n    \"description\": \"\",\n    \"image\": \"\",\n    \"version\": \"1.0.0\",\n    \"author\": \"\",\n    \"license\": \"MIT\"\n  },\n  \"endpoints\": {\n    \"mcpEndpoint\": \"\",\n    \"a2aEndpoint\": \"\"\n  },\n  \"skillsDomains\": {\n    \"selectedSkills\": [],\n    \"selectedDomains\": [],\n    \"customSkills\": [],\n    \"customDomains\": []\n  },\n  \"advancedConfig\": {\n    \"supportedTrusts\": [],\n    \"x402support\": false,\n    \"storageMethod\": \"http\",\n    \"active\": true\n  },\n  \"version\": \"1.0.0\"\n}"
      },
      {
        "title": "Environment Variables",
        "body": "VariableRequiredDescriptionPRIVATE_KEY / AGENT_PRIVATE_KEY / MAIN_WALLET_PRIVATE_KEYYesWallet private keyRPC_URLNoCustom RPC (auto-detected per chain)CHAIN_IDNoDefault chain (8453)"
      },
      {
        "title": "Other Operations",
        "body": "# Search agents\nnode scripts/search.mjs --name \"AgentName\" --chain 8453\n\n# Update agent\nnode scripts/update.mjs --agent-id \"8453:42\" --name \"NewName\" --yes\n\n# Give feedback\nnode scripts/feedback.mjs --agent-id \"8453:42\" --value 5 --tag1 \"reliable\" --yes"
      },
      {
        "title": "Setup",
        "body": "bash scripts/setup.sh"
      }
    ],
    "body": "Basecred ERC-8004 Registration\n\nRegister AI agents on the ERC-8004 on-chain registry through a guided chat experience.\n\nRegistration Flow\nStep 1: Auto-Prefill\n\nWhen the user triggers registration, auto-fill every field you can from:\n\nAgent identity files (IDENTITY.md, SOUL.md, USER.md)\nEnvironment (.env — wallet address derived from private key)\nPrevious context (A2A endpoint, description, image, etc.)\nSensible defaults (version: 1.0.0, license: MIT, chain: Base, storage: onchain)\n\nDo NOT ask questions one by one. Prefill first, ask later.\n\nStep 1.5: Explain Config Defaults\n\nBefore showing the draft, briefly explain the config so users understand what's pre-selected and what alternatives exist:\n\n⚙️ Config defaults (you can change these later):\n\nChain:    Base (8453) — where your agent lives on-chain\n          Others: Ethereum, Polygon, BNB, Arbitrum, Celo, Gnosis, Scroll\n\nStorage:  Fully onchain — agent data stored directly on-chain\n          Alternative: IPFS — data pinned to IPFS, hash stored on-chain\n\nTrust:    Reputation — other agents/users rate your agent on-chain\n          Others: Crypto-Economic (staking/slashing guarantees)\n                  TEE Attestation (hardware-level trust proof)\n\nx402:     Off — no payment protocol\n          On: agent can charge for services via x402 payment protocol\n\nActive:   On — agent is discoverable and accepting requests\n          Off: registered but hidden from discovery\n\nWallet:   Your agent's on-chain identity address\n          Two ways to set it:\n\n          Option A: Paste your wallet address\n          → Just paste your 0x... address\n          → Agent will be linked to this address on-chain\n\n          Option B: Add private key to .env (for signing)\n          → Set PRIVATE_KEY=0x... in your .env file\n          → Wallet auto-detected + can sign transactions\n          → Enables setWallet() via EIP-712 after registration\n\n          💡 Option A is easier. Option B is needed if you want\n             the agent to sign transactions on your behalf.\n\n\nShow this once at the start, not repeated on every draft.\n\nStep 2: Show Full Draft with Buttons (Single Message)\n\nSend the entire draft + buttons as one message using the message tool. This keeps buttons directly below the draft.\n\nImportant: 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.\n\nUse ✅ (filled) and ⚠️ (missing/needs attention):\n\n📋 Agent Registration Draft\n\n── Basic Info ──\n✅ Name:        Mr. Tee\n✅ Description: AI agent with a CRT monitor...\n✅ Image:       pbs.twimg.com/...\n✅ Version:     1.0.0\n✅ Author:      0xdas\n✅ License:     MIT\n\n── Endpoints ──\n✅ A2A:         a2a.teeclaw.xyz/a2a\n⚠️ MCP:         (none)\n\n── Skills & Domains ──\n✅ Skills (5):  natural_language_processing/natural_language_processing, \n                natural_language_processing/natural_language_generation/summarization,\n                natural_language_processing/information_retrieval_synthesis/question_answering,\n                analytical_skills/coding_skills/coding_skills,\n                images_computer_vision/images_computer_vision\n✅ Domains (5): technology/blockchain/blockchain, technology/blockchain/defi,\n                technology/technology, technology/software_engineering/software_engineering,\n                technology/software_engineering/devops\n✅ Custom:      agent_orchestration/agent_coordination, \n                social_media/content_management\n\n── Config ──\n✅ Chain:       Base (8453)\n✅ Storage:     Fully onchain\n✅ Active:      true\n✅ Trust:       reputation\n✅ x402:        false\n✅ Wallet:      0x1348...e41 (auto .env)\n\nTap to edit a section or register:\n\n\nButtons (attached to same message):\n\nRow 1: [✏️ Basic Info] [✏️ Endpoints]\nRow 2: [✏️ Skills & Domains] [✏️ Config]\nRow 3: [✅ Register] [❌ Cancel]\n\nStep 3: Section Editing (on button tap)\n\nInstant feedback: When any button is tapped, immediately acknowledge before doing anything else:\n\nButton\tInstant Feedback\n✏️ Basic Info\t\"📝 Editing Basic Info...\"\n✏️ Endpoints\t\"🔗 Editing Endpoints...\"\n✏️ Skills & Domains\t\"🏷️ Editing Skills & Domains...\"\n✏️ Config\t\"⚙️ Editing Config...\"\n✅ Register\t\"⏳ Starting registration on Base...\"\n❌ Cancel\t\"❌ Registration cancelled.\"\n↩️ Back to Draft\t\"📋 Back to draft...\"\n\nThen show the edit form. Always include ↩️ Back to Draft button.\n\nEdit Basic Info\nCurrent values:\n• Name: Mr. Tee\n• Description: AI agent with a CRT...\n• Image: pbs.twimg.com/...\n• Version: 1.0.0\n• Author: 0xdas\n• License: MIT\n\nType field name and new value, e.g. \"name: CoolBot\"\nOr type \"done\" to go back.\n\n\nButtons: [↩️ Back to Draft]\n\nEdit Endpoints\nCurrent:\n• A2A: https://a2a.teeclaw.xyz/a2a\n• MCP: (none)\n\nPaste a URL to set, or \"clear mcp\" / \"clear a2a\" to remove.\n\n\nButtons: [↩️ Back to Draft]\n\nEdit Skills & Domains\n\nToggleable inline buttons (multi-select). Each button shows a human-readable label but stores the full OASF taxonomy path as the value.\n\nSkills: (OASF taxonomy paths)\n\n[NLP ✅] → natural_language_processing/natural_language_processing\n[Summarization ✅] → natural_language_processing/natural_language_generation/summarization\n[Q&A ✅] → natural_language_processing/information_retrieval_synthesis/question_answering\n[Code Gen ✅] → analytical_skills/coding_skills/coding_skills\n[CV ✅] → images_computer_vision/images_computer_vision\n[Data Analysis] → analytical_skills/data_analysis/data_analysis\n[Web Search] → natural_language_processing/information_retrieval_synthesis/web_search\n[Image Gen] → images_computer_vision/image_generation/image_generation\n[Translation] → natural_language_processing/natural_language_generation/translation\n[Task Automation] → tool_interaction/workflow_automation\n[+ Custom] [↩️ Back to Draft]\n\n\nDomains: (OASF taxonomy paths)\n\n[Blockchain ✅] → technology/blockchain/blockchain\n[DeFi ✅] → technology/blockchain/defi\n[Technology ✅] → technology/technology\n[SE ✅] → technology/software_engineering/software_engineering\n[DevOps ✅] → technology/software_engineering/devops\n[Finance] → finance/finance\n[Healthcare] → healthcare/healthcare\n[Education] → education/education\n[Entertainment] → entertainment/entertainment\n[Science] → science/science\n[Creative Arts] → creative_arts/creative_arts\n[Dev Tools] → technology/software_engineering/development_tools\n[+ Custom] [↩️ Back to Draft]\n\n\nDisplay behavior:\n\nButtons show short labels (e.g., \"NLP\", \"Blockchain\") for readability\nValues stored are full OASF paths (e.g., natural_language_processing/natural_language_processing)\nTapping toggles ✅ on/off\n+ Custom prompts user to type a custom OASF path or label\nEdit Config\n\nTrust models (multi-select):\n\n[Reputation ✅] [Crypto-Economic] [TEE Attestation]\n\n\nOther config:\n\n[Chain: Base ▼] [Storage: Onchain ▼] [x402: Off ▼]\n[↩️ Back to Draft]\n\nTrust Model\tDescription\nReputation\tOn-chain feedback & scoring. Default for most agents.\nCrypto-Economic\tStaking/slashing guarantees. For financial agents.\nTEE Attestation\tHardware-level trust proof. For high-security agents.\nStep 4: Back to Draft\n\nAfter any edit, re-send the updated full draft as a single message with buttons (same as Step 2). Repeat until user taps ✅ Register.\n\nStep 5: Execute\n\nOnly after explicit ✅ Register confirmation.\n\nWrite the registration JSON to a temp file\nRun the script:\nsource /path/to/.env\nnode scripts/register.mjs --json /tmp/registration.json --chain 8453 --yes\n\n\nThe script handles: register() → setA2A()/setMCP() → addSkill()/addDomain() → setWallet()\n\nStep 5.5: Progress Updates\n\nSend progress updates during registration:\n\n⏳ Step 1/3: Minting agent NFT on Base...\n✅ Agent minted! ID: 8453:42\n\n⏳ Step 2/3: Setting endpoints & metadata...\n✅ Endpoints configured\n\n⏳ Step 3/3: Linking wallet via EIP-712...\n✅ Wallet linked!\n\nStep 6: Report Result\n✅ Agent Registered on Base!\n\n  Agent ID:    8453:42\n  Wallet:      0x1348...e41\n  A2A:         a2a.teeclaw.xyz/a2a\n  TX:          0xabc...def\n\n  View: https://8004.org/agent/8453:42\n\nError Handling\nMissing Required Fields\n\nIf Name or Description are empty after prefill, mark them ⚠️ and block registration. Show: \"Please fill required fields first.\"\n\nNo Wallet\n⚠️ No wallet detected. You need one to register:\n  Option A: Paste your 0x... address\n  Option B: Add PRIVATE_KEY to your .env file\n\nTransaction Failures\n\nShow error clearly and offer retry:\n\n❌ Registration failed: insufficient funds for gas\n[🔄 Retry] [❌ Cancel]\n\nsetWallet Failure\n\nPublic RPCs (e.g. mainnet.base.org) don't support eth_signTypedData_v4. If setWallet fails:\n\n⚠️ Wallet linking failed (public RPC limitation).\nYou can link your wallet manually at https://8004.org\n\n\nThis is non-blocking — the agent is registered, just wallet isn't linked on-chain yet.\n\nDuplicate Registration Prevention\n\nThe script checks if the wallet already owns agent(s) on the target chain before submitting. If detected:\n\n⚠️ Warning: This wallet already owns 1 agent(s) on Base.\n   Registering again will create a duplicate.\n   Use update.mjs to modify an existing agent instead.\n\n\nIn chat flow, warn the user and suggest updating instead of re-registering. The check is non-blocking if --yes is passed.\n\nAlready Registered\n\nIf the agent already has an agentId, offer to update instead of register.\n\nTechnical Notes\nRegistry Overrides\n\nThe SDK only ships with Ethereum Mainnet registry addresses. For Base and other chains, the script passes registryOverrides with deterministic contract addresses:\n\nIdentity Registry: 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432\nReputation Registry: 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63\nTransaction Handling\n\nThe SDK returns TransactionHandle objects. Use .waitMined() (not .wait()) to await confirmation.\n\nAll Fields Reference\nBasic Info\nField\tRequired\tDefault\tAuto-source\nAgent Name\t✅\t—\tIDENTITY.md\nAgent Address\tauto\t—\t.env private key or pasted\nDescription\t✅\t—\tIDENTITY.md / SOUL.md\nImage\tNo\t—\tProfile image URL\nVersion\tNo\t1.0.0\t—\nAuthor\tNo\t—\tUSER.md\nLicense\tNo\tMIT\t—\nEndpoints\nField\tRequired\tDefault\tAuto-source\nA2A Endpoint\tNo\t—\tIDENTITY.md\nMCP Endpoint\tNo\t—\t—\nSkills & Domains\nField\tRequired\tDefault\nSelected Skills\tNo\t[]\nSelected Domains\tNo\t[]\nCustom Skills\tNo\t[]\nCustom Domains\tNo\t[]\nAdvanced Config\nField\tRequired\tDefault\nTrust Models\tNo\t[] (suggest: reputation)\nx402 Support\tNo\tfalse\nStorage\tNo\thttp (fully onchain)\nActive\tNo\ttrue\nChain\tNo\t8453 (Base)\nSupported Chains\nChain\tID\tDefault\nBase\t8453\t✅\nEthereum\t1\t\nPolygon\t137\t\nBNB Chain\t56\t\nArbitrum\t42161\t\nCelo\t42220\t\nGnosis\t100\t\nScroll\t534352\t\n\nAll chains use the same deterministic contract addresses.\n\nJSON Template (8004.org format)\n{\n  \"basicInfo\": {\n    \"agentName\": \"\",\n    \"agentAddress\": \"\",\n    \"description\": \"\",\n    \"image\": \"\",\n    \"version\": \"1.0.0\",\n    \"author\": \"\",\n    \"license\": \"MIT\"\n  },\n  \"endpoints\": {\n    \"mcpEndpoint\": \"\",\n    \"a2aEndpoint\": \"\"\n  },\n  \"skillsDomains\": {\n    \"selectedSkills\": [],\n    \"selectedDomains\": [],\n    \"customSkills\": [],\n    \"customDomains\": []\n  },\n  \"advancedConfig\": {\n    \"supportedTrusts\": [],\n    \"x402support\": false,\n    \"storageMethod\": \"http\",\n    \"active\": true\n  },\n  \"version\": \"1.0.0\"\n}\n\nEnvironment Variables\nVariable\tRequired\tDescription\nPRIVATE_KEY / AGENT_PRIVATE_KEY / MAIN_WALLET_PRIVATE_KEY\tYes\tWallet private key\nRPC_URL\tNo\tCustom RPC (auto-detected per chain)\nCHAIN_ID\tNo\tDefault chain (8453)\nOther Operations\n# Search agents\nnode scripts/search.mjs --name \"AgentName\" --chain 8453\n\n# Update agent\nnode scripts/update.mjs --agent-id \"8453:42\" --name \"NewName\" --yes\n\n# Give feedback\nnode scripts/feedback.mjs --agent-id \"8453:42\" --value 5 --tag1 \"reliable\" --yes\n\nSetup\nbash scripts/setup.sh"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Callmedas69/basecred-8004-registration",
    "publisherUrl": "https://clawhub.ai/Callmedas69/basecred-8004-registration",
    "owner": "Callmedas69",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/basecred-8004-registration",
    "downloadUrl": "https://openagent3.xyz/downloads/basecred-8004-registration",
    "agentUrl": "https://openagent3.xyz/skills/basecred-8004-registration/agent",
    "manifestUrl": "https://openagent3.xyz/skills/basecred-8004-registration/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/basecred-8004-registration/agent.md"
  }
}