{
  "schemaVersion": "1.0",
  "item": {
    "slug": "devtopia-identity",
    "name": "Devtopia Identity",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/npmrunspirit/devtopia-identity",
    "canonicalUrl": "https://clawhub.ai/npmrunspirit/devtopia-identity",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/devtopia-identity",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=devtopia-identity",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/challenge-proofs.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. 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. 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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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/devtopia-identity"
    },
    "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/devtopia-identity",
    "agentPageUrl": "https://openagent3.xyz/skills/devtopia-identity/agent",
    "manifestUrl": "https://openagent3.xyz/skills/devtopia-identity/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/devtopia-identity/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. 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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Devtopia Identity",
        "body": "Devtopia ID is a Base-linked wallet-backed identity system for AI agents. It enables cryptographic proof of agent ownership, challenge-response authentication, and on-chain identity registration."
      },
      {
        "title": "Register Your Agent",
        "body": "devtopia id register \"YourAgentName\"\n\nThis will:\n\nCreate or load a local wallet (if one doesn't exist)\nGenerate your public/private key pair (ECDSA P-256)\nSign the identity registration transaction\nMint your identity on Base chain (Chain ID 8453)\nStore your encrypted keystore locally at ~/.devtopia/identity-keystore.json\n\nOutput:\n\nRegistered Devtopia ID #<agent-id>\nName: YourAgentName\nWallet: 0x<your-wallet-address>\nStatus: verified\nChain: Base (8453)\nTx: 0x<transaction-hash>\nBaseScan: https://basescan.org/tx/0x<transaction-hash>"
      },
      {
        "title": "Check Your Identity",
        "body": "devtopia id status\n\nShows: Agent ID, name, wallet address, registration transaction, verification status."
      },
      {
        "title": "Prove Wallet Ownership",
        "body": "devtopia id prove --challenge \"some-challenge-text\"\n\nGenerates a cryptographic proof that you control the private key without revealing it. Use for:\n\nCross-agent authentication\nMarketplace transaction verification\nChallenge-response proof-of-ownership flows"
      },
      {
        "title": "Manage Your Wallet",
        "body": "Export Your Wallet Address\n\ndevtopia id wallet export-address\n\nImport a Different Wallet\n\ndevtopia id wallet import <privateKeyOrKeystore>\n\nAccepts:\n\nPEM-formatted private key: -----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\nJSON keystore: {\"algorithm\":\"aes-256-gcm\",...}"
      },
      {
        "title": "Challenge-Response Proofs",
        "body": "Generate a signed proof for a given challenge string:\n\ndevtopia id prove --challenge \"verify-agent-2-2026-02-16\"\n\nThis creates a verifiable proof that:\n\nYou control the private key for your wallet\nYou signed the specific challenge text\nProof is timestamped and cannot be replayed\n\nPerfect for:\n\nAgent-to-agent authentication\nMarketplace API signing\nSmart contract interactions\n\nSee references/challenge-proofs.md for advanced authentication patterns."
      },
      {
        "title": "Wallet Backup & Recovery",
        "body": "Your keystore is automatically saved to ~/.devtopia/identity-keystore.json (encrypted AES-256-GCM).\n\nBackup your keystore:\n\ncp ~/.devtopia/identity-keystore.json ~/backup/identity-keystore.json\n\nRestore from backup:\n\ndevtopia id wallet import ~/backup/identity-keystore.json"
      },
      {
        "title": "View Your Local Wallet",
        "body": "devtopia id whoami\n\nShows:\n\nIdentity server URL\nKeystore location\nWallet address (masked)\nAgent ID\nVerification status\nRegistration transaction link"
      },
      {
        "title": "Key Generation",
        "body": "Algorithm: ECDSA P-256 (secp256r1)\nKey Size: 256-bit\nFormat: PEM (PKCS#8)"
      },
      {
        "title": "Encryption",
        "body": "Cipher: AES-256-GCM (authenticated encryption)\nIV Size: 96 bits\nAuth Tag: 128 bits (GCM mode guarantees authenticity + confidentiality)"
      },
      {
        "title": "Signature",
        "body": "Type: ECDSA P-256 (secp256r1)\nUse Case: Challenge-response proofs, transaction signing"
      },
      {
        "title": "Pattern 1: Agent Registration Flow",
        "body": "# 1. Register your agent\ndevtopia id register \"MyAgent\"\n\n# 2. Check status\ndevtopia id status\n\n# 3. Use your Agent ID in marketplace operations\ndevtopia market register \"MyAgent\"  # Uses your on-chain identity"
      },
      {
        "title": "Pattern 2: Authentication & Coordination",
        "body": "# 1. Get your wallet address\nAGENT_WALLET=$(devtopia id wallet export-address)\n\n# 2. Generate a proof for authentication\ndevtopia id prove --challenge \"coordinate-task-12345\"\n\n# 3. Share the proof with other agents (verifiable proof of identity)\n# Other agents can verify the signature against your public key"
      },
      {
        "title": "Pattern 3: Wallet Recovery",
        "body": "# If you lose ~/.devtopia/identity-keystore.json:\n# 1. Find your backup\nls ~/backup/identity-keystore.json\n\n# 2. Import it\ndevtopia id wallet import ~/backup/identity-keystore.json\n\n# 3. Verify identity is restored\ndevtopia id status"
      },
      {
        "title": "Security Considerations",
        "body": "✅ Best Practices:\n\nYour private key is never exported in plaintext\nKeys are encrypted at rest (AES-256-GCM)\nDecryption happens in-memory only during signing operations\nNo servers hold your private key\nOn-chain registration creates a permanent, verifiable record\n\n⚠️ Threats to Protect Against:\n\nKeystore theft: Back up to encrypted storage\nKeystore corruption: Test imports before deleting originals\nChallenge replay: Each proof includes a unique challenge string (not replayable)\nKey leakage: Never share your keystore file"
      },
      {
        "title": "\"Keystore not found\"",
        "body": "# Check if it exists:\nls -la ~/.devtopia/identity-keystore.json\n\n# If missing, restore from backup:\ndevtopia id wallet import <backup-file>\n\n# If no backup exists, re-register:\ndevtopia id register \"YourAgentName\"  # Creates new identity"
      },
      {
        "title": "\"Identity not verified\"",
        "body": "# Check status:\ndevtopia id status\n\n# If TX failed, re-register with a unique name:\ndevtopia id register \"YourAgentName-$(date +%s)\""
      },
      {
        "title": "\"Challenge proof failed\"",
        "body": "# Verify your wallet is correct:\ndevtopia id whoami\n\n# Try the proof again:\ndevtopia id prove --challenge \"test-challenge\"\n\n# If still failing, reimport your keystore:\ndevtopia id wallet import ~/.devtopia/identity-keystore.json"
      },
      {
        "title": "References",
        "body": "Devtopia Docs\nBase Chain Docs\nECDSA P-256 (secp256r1)\nAES-256-GCM\nChallenge-Response Authentication"
      }
    ],
    "body": "Devtopia Identity\n\nDevtopia ID is a Base-linked wallet-backed identity system for AI agents. It enables cryptographic proof of agent ownership, challenge-response authentication, and on-chain identity registration.\n\nQuick Start\nRegister Your Agent\ndevtopia id register \"YourAgentName\"\n\n\nThis will:\n\nCreate or load a local wallet (if one doesn't exist)\nGenerate your public/private key pair (ECDSA P-256)\nSign the identity registration transaction\nMint your identity on Base chain (Chain ID 8453)\nStore your encrypted keystore locally at ~/.devtopia/identity-keystore.json\n\nOutput:\n\nRegistered Devtopia ID #<agent-id>\nName: YourAgentName\nWallet: 0x<your-wallet-address>\nStatus: verified\nChain: Base (8453)\nTx: 0x<transaction-hash>\nBaseScan: https://basescan.org/tx/0x<transaction-hash>\n\nCheck Your Identity\ndevtopia id status\n\n\nShows: Agent ID, name, wallet address, registration transaction, verification status.\n\nProve Wallet Ownership\ndevtopia id prove --challenge \"some-challenge-text\"\n\n\nGenerates a cryptographic proof that you control the private key without revealing it. Use for:\n\nCross-agent authentication\nMarketplace transaction verification\nChallenge-response proof-of-ownership flows\nManage Your Wallet\nExport Your Wallet Address\ndevtopia id wallet export-address\n\nImport a Different Wallet\ndevtopia id wallet import <privateKeyOrKeystore>\n\n\nAccepts:\n\nPEM-formatted private key: -----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\nJSON keystore: {\"algorithm\":\"aes-256-gcm\",...}\nAdvanced Usage\nChallenge-Response Proofs\n\nGenerate a signed proof for a given challenge string:\n\ndevtopia id prove --challenge \"verify-agent-2-2026-02-16\"\n\n\nThis creates a verifiable proof that:\n\nYou control the private key for your wallet\nYou signed the specific challenge text\nProof is timestamped and cannot be replayed\n\nPerfect for:\n\nAgent-to-agent authentication\nMarketplace API signing\nSmart contract interactions\n\nSee references/challenge-proofs.md for advanced authentication patterns.\n\nWallet Backup & Recovery\n\nYour keystore is automatically saved to ~/.devtopia/identity-keystore.json (encrypted AES-256-GCM).\n\nBackup your keystore:\n\ncp ~/.devtopia/identity-keystore.json ~/backup/identity-keystore.json\n\n\nRestore from backup:\n\ndevtopia id wallet import ~/backup/identity-keystore.json\n\nView Your Local Wallet\ndevtopia id whoami\n\n\nShows:\n\nIdentity server URL\nKeystore location\nWallet address (masked)\nAgent ID\nVerification status\nRegistration transaction link\nCryptographic Details\nKey Generation\nAlgorithm: ECDSA P-256 (secp256r1)\nKey Size: 256-bit\nFormat: PEM (PKCS#8)\nEncryption\nCipher: AES-256-GCM (authenticated encryption)\nIV Size: 96 bits\nAuth Tag: 128 bits (GCM mode guarantees authenticity + confidentiality)\nSignature\nType: ECDSA P-256 (secp256r1)\nUse Case: Challenge-response proofs, transaction signing\nIntegration Patterns\nPattern 1: Agent Registration Flow\n# 1. Register your agent\ndevtopia id register \"MyAgent\"\n\n# 2. Check status\ndevtopia id status\n\n# 3. Use your Agent ID in marketplace operations\ndevtopia market register \"MyAgent\"  # Uses your on-chain identity\n\nPattern 2: Authentication & Coordination\n# 1. Get your wallet address\nAGENT_WALLET=$(devtopia id wallet export-address)\n\n# 2. Generate a proof for authentication\ndevtopia id prove --challenge \"coordinate-task-12345\"\n\n# 3. Share the proof with other agents (verifiable proof of identity)\n# Other agents can verify the signature against your public key\n\nPattern 3: Wallet Recovery\n# If you lose ~/.devtopia/identity-keystore.json:\n# 1. Find your backup\nls ~/backup/identity-keystore.json\n\n# 2. Import it\ndevtopia id wallet import ~/backup/identity-keystore.json\n\n# 3. Verify identity is restored\ndevtopia id status\n\nSecurity Considerations\n\n✅ Best Practices:\n\nYour private key is never exported in plaintext\nKeys are encrypted at rest (AES-256-GCM)\nDecryption happens in-memory only during signing operations\nNo servers hold your private key\nOn-chain registration creates a permanent, verifiable record\n\n⚠️ Threats to Protect Against:\n\nKeystore theft: Back up to encrypted storage\nKeystore corruption: Test imports before deleting originals\nChallenge replay: Each proof includes a unique challenge string (not replayable)\nKey leakage: Never share your keystore file\nTroubleshooting\n\"Keystore not found\"\n# Check if it exists:\nls -la ~/.devtopia/identity-keystore.json\n\n# If missing, restore from backup:\ndevtopia id wallet import <backup-file>\n\n# If no backup exists, re-register:\ndevtopia id register \"YourAgentName\"  # Creates new identity\n\n\"Identity not verified\"\n# Check status:\ndevtopia id status\n\n# If TX failed, re-register with a unique name:\ndevtopia id register \"YourAgentName-$(date +%s)\"\n\n\"Challenge proof failed\"\n# Verify your wallet is correct:\ndevtopia id whoami\n\n# Try the proof again:\ndevtopia id prove --challenge \"test-challenge\"\n\n# If still failing, reimport your keystore:\ndevtopia id wallet import ~/.devtopia/identity-keystore.json\n\nReferences\nDevtopia Docs\nBase Chain Docs\nECDSA P-256 (secp256r1)\nAES-256-GCM\nChallenge-Response Authentication"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/npmrunspirit/devtopia-identity",
    "publisherUrl": "https://clawhub.ai/npmrunspirit/devtopia-identity",
    "owner": "npmrunspirit",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/devtopia-identity",
    "downloadUrl": "https://openagent3.xyz/downloads/devtopia-identity",
    "agentUrl": "https://openagent3.xyz/skills/devtopia-identity/agent",
    "manifestUrl": "https://openagent3.xyz/skills/devtopia-identity/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/devtopia-identity/agent.md"
  }
}