{
  "schemaVersion": "1.0",
  "item": {
    "slug": "agentpin",
    "name": "AgentPin",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/jaschadub/agentpin",
    "canonicalUrl": "https://clawhub.ai/jaschadub/agentpin",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/agentpin",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=agentpin",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "SKILL.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-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/agentpin"
    },
    "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/agentpin",
    "agentPageUrl": "https://openagent3.xyz/skills/agentpin/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agentpin/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agentpin/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": "AgentPin Development Skills Guide",
        "body": "Purpose: This guide helps AI assistants work with AgentPin for domain-anchored cryptographic agent identity verification.\n\nFor Full Documentation: See the README and Technical Specification."
      },
      {
        "title": "What AgentPin Does",
        "body": "AgentPin is a domain-anchored cryptographic identity protocol for AI agents. It enables organizations to publish verifiable identity documents for their agents, issue short-lived JWT credentials, and verify agent identity through a multi-step protocol including TOFU key pinning, revocation checking, and delegation chains.\n\nPart of the ThirdKey trust stack: SchemaPin (tool integrity) → AgentPin (agent identity) → Symbiont (runtime)"
      },
      {
        "title": "Architecture",
        "body": "Organization                         Verifying Party\n────────────                         ───────────────\n1. Generate ECDSA P-256 keypair\n2. Publish agent identity at          3. Discover identity from\n   /.well-known/agent-identity.json      /.well-known/agent-identity.json\n4. Issue JWT credential               5. Verify credential (12-step flow)\n   (ES256 signed, short-lived)           - JWT parsing & ES256 verification\n                                         - Domain binding check\n                                         - TOFU key pinning\n                                         - Revocation checking\n                                         - Capability validation\n                                         - Delegation chain verification"
      },
      {
        "title": "Project Structure",
        "body": "crates/\n├── agentpin/          Core library (no mandatory HTTP dep)\n├── agentpin-cli/      CLI binary (keygen, issue, verify, bundle)\n└── agentpin-server/   Axum server for .well-known endpoints"
      },
      {
        "title": "Rust (CLI)",
        "body": "# Generate keys\ncargo run -p agentpin-cli -- keygen \\\n    --output-dir ./keys --agent-name \"my-agent\"\n\n# Issue a credential (ES256 JWT, 1-hour TTL)\ncargo run -p agentpin-cli -- issue \\\n    --key ./keys/my-agent.private.pem \\\n    --issuer \"https://example.com\" \\\n    --agent-id \"my-agent\" \\\n    --capabilities read,write --ttl 3600\n\n# Verify offline\ncargo run -p agentpin-cli -- verify \\\n    --credential ./credential.jwt \\\n    --discovery ./agent-identity.json\n\n# Verify online (fetches from .well-known)\ncargo run -p agentpin-cli -- verify \\\n    --credential ./credential.jwt --domain example.com\n\n# Create trust bundle for air-gapped environments\ncargo run -p agentpin-cli -- bundle \\\n    --discovery ./agent-identity.json \\\n    --revocation ./revocations.json --output ./bundle.json"
      },
      {
        "title": "Rust (Library)",
        "body": "use agentpin::{\n    crypto,\n    credential::CredentialBuilder,\n    verification::verify_credential,\n    pinning::KeyPinStore,\n};\n\nlet (private_key, public_key) = crypto::generate_keypair()?;\n\nlet credential = CredentialBuilder::new()\n    .issuer(\"https://example.com\")\n    .agent_id(\"my-agent\")\n    .capability(\"read\")\n    .capability(\"write\")\n    .ttl_secs(3600)\n    .sign(&private_key)?;\n\nlet result = verify_credential(&credential, &discovery_doc, &pin_store)?;"
      },
      {
        "title": "JavaScript",
        "body": "npm install agentpin\n\nimport {\n    generateKeypair, issueCredential, verifyCredential,\n    KeyPinStore\n} from 'agentpin';\n\n// Generate ECDSA P-256 keypair\nconst { privateKey, publicKey } = await generateKeypair();\n\n// Issue a credential\nconst credential = await issueCredential(privateKey, {\n    issuer: 'https://example.com',\n    agentId: 'my-agent',\n    capabilities: ['read', 'write'],\n    ttlSecs: 3600,\n});\n\n// Verify\nconst pinStore = new KeyPinStore();\nconst result = await verifyCredential(credential, discoveryDoc, pinStore);"
      },
      {
        "title": "Python",
        "body": "pip install agentpin\n\nfrom agentpin.crypto import generate_keypair\nfrom agentpin.credential import issue_credential\nfrom agentpin.verification import verify_credential\nfrom agentpin.pinning import KeyPinStore\n\nprivate_key, public_key = generate_keypair()\n\ncredential = issue_credential(\n    private_key,\n    issuer=\"https://example.com\",\n    agent_id=\"my-agent\",\n    capabilities=[\"read\", \"write\"],\n    ttl_secs=3600,\n)\n\npin_store = KeyPinStore()\nresult = verify_credential(credential, discovery_doc, pin_store)"
      },
      {
        "title": "Serve .well-known Endpoints",
        "body": "cargo run -p agentpin-server -- \\\n    --identity ./agent-identity.json \\\n    --revocation ./revocations.json \\\n    --port 3000\n\nServes:\n\nGET /.well-known/agent-identity.json (Cache-Control: max-age=3600)\nGET /.well-known/agent-identity-revocations.json (Cache-Control: max-age=300)\nGET /health"
      },
      {
        "title": "Key Modules",
        "body": "ModulePurposecryptoECDSA P-256 signing/verification (no external JWT crate)typesCore data structures (agents, credentials, capabilities)credentialJWT issuance and parsingdiscoveryPublishing and resolving agent identity documentsverification12-step credential validation flowrevocationChecking revoked credentials/agents/keyspinningTOFU key pinning with JWK thumbprintsdelegationDelegation chain validationmutualChallenge-response mutual authentication (128-bit nonces)jwkJWK handling and thumbprint computationresolverPluggable discovery resolution"
      },
      {
        "title": "Language API Reference",
        "body": "OperationRustJavaScriptPythonGenerate keyscrypto::generate_keypair()generateKeypair()generate_keypair()Issue credentialCredentialBuilder::new().sign()issueCredential()issue_credential()Verify credentialverify_credential()verifyCredential()verify_credential()Key pinningKeyPinStoreKeyPinStoreKeyPinStoreTrust bundleTrustBundle::from_json()TrustBundle.fromJson()TrustBundle.from_json()Mutual authMutualAuth::challenge()createChallenge()create_challenge()"
      },
      {
        "title": "Feature Flags",
        "body": "FeaturePurposefetchEnables HTTP via reqwest for online discovery(default)Core library with no HTTP dependency"
      },
      {
        "title": "ES256 Only",
        "body": "AgentPin exclusively uses ES256 (ECDSA P-256). All other algorithms are rejected. This is enforced inline without an external JWT crate."
      },
      {
        "title": "12-Step Verification",
        "body": "The credential verification flow includes:\n\nJWT structure parsing\nHeader algorithm validation (ES256 only)\nSignature verification\nIssuer domain extraction\nDiscovery document resolution\nDomain binding verification\nKey matching (issuer key vs discovery)\nTOFU key pinning check\nExpiration validation\nRevocation checking\nCapability validation\nDelegation chain verification (if present)"
      },
      {
        "title": "TOFU Key Pinning",
        "body": "On first credential verification for a domain, the agent's public key (JWK thumbprint) is pinned. Subsequent verifications reject different keys for the same domain — detecting key substitution attacks."
      },
      {
        "title": "Delegation Chains",
        "body": "Agents can delegate capabilities to sub-agents. The delegation chain is validated to ensure:\n\nEach link is signed by the delegator\nCapabilities only narrow (never widen) down the chain\nChain depth limits are respected"
      },
      {
        "title": "Mutual Authentication",
        "body": "Challenge-response protocol with 128-bit nonces for bidirectional agent identity verification."
      },
      {
        "title": "Discovery Document Format",
        "body": "Published at /.well-known/agent-identity.json:\n\n{\n    \"schema_version\": \"0.2\",\n    \"domain\": \"example.com\",\n    \"agents\": [\n        {\n            \"agent_id\": \"my-agent\",\n            \"display_name\": \"My Agent\",\n            \"description\": \"A helpful agent\",\n            \"capabilities\": [\"read\", \"write\"],\n            \"public_key_jwk\": { ... },\n            \"constraints\": {\n                \"max_ttl_secs\": 86400,\n                \"allowed_scopes\": [\"api\"]\n            }\n        }\n    ],\n    \"revocation_endpoint\": \"https://example.com/.well-known/agent-identity-revocations.json\",\n    \"directory_listing\": true\n}"
      },
      {
        "title": "Trust Bundles (Offline / Air-Gapped)",
        "body": "Pre-package discovery + revocation data for environments without internet:\n\nfrom agentpin.bundle import TrustBundle\n\nbundle = TrustBundle.from_json(bundle_json_str)\ndiscovery = bundle.find_discovery(\"example.com\")\nrevocation = bundle.find_revocation(\"example.com\")"
      },
      {
        "title": "Pluggable Discovery Resolvers",
        "body": "from agentpin.discovery import (\n    WellKnownResolver,    # HTTP .well-known lookups\n    DnsTxtResolver,       # DNS TXT record lookups\n    ManualResolver,       # Pre-configured discovery data\n)"
      },
      {
        "title": "Directory Listing",
        "body": "Domains can advertise all their agents via \"directory_listing\": true in the discovery document. Verifiers can enumerate available agents before issuing challenges."
      },
      {
        "title": "Build and Test",
        "body": "# Build all crates\ncargo build --workspace\n\n# Run all tests\ncargo test --workspace\n\n# Lint\ncargo clippy --workspace\n\n# Format check\ncargo fmt --check"
      },
      {
        "title": "Conventions",
        "body": "Rust edition 2021, MSRV 1.70\ncargo clippy --workspace must pass with zero warnings\ncargo fmt --check must pass\nInline tests in source files (#[cfg(test)] mod tests)\nES256 only — reject all other algorithms\nFeature-gated HTTP: fetch feature enables reqwest"
      },
      {
        "title": "Pro Tips for AI Assistants",
        "body": "ES256 only — never accept RS256, HS256, or any other algorithm\nShort-lived credentials — prefer TTLs of hours, not days\nAlways check revocation before trusting a credential\nTOFU pinning means first-seen key is trusted — warn on key changes\nDelegation chains should narrow capabilities, never widen them\nNo external JWT crate — algorithm validation is controlled inline to prevent algorithm confusion attacks\nFeature-gate HTTP — use the fetch feature only when online discovery is needed; default is offline-capable\nCross-compatible with SchemaPin — both use ECDSA P-256, same crypto primitives\nTrust bundles are ideal for CI/CD and air-gapped deployments — pre-package discovery + revocation data\nJavaScript and Python SDKs provide identical verification guarantees to the Rust crate"
      }
    ],
    "body": "AgentPin Development Skills Guide\n\nPurpose: This guide helps AI assistants work with AgentPin for domain-anchored cryptographic agent identity verification.\n\nFor Full Documentation: See the README and Technical Specification.\n\nWhat AgentPin Does\n\nAgentPin is a domain-anchored cryptographic identity protocol for AI agents. It enables organizations to publish verifiable identity documents for their agents, issue short-lived JWT credentials, and verify agent identity through a multi-step protocol including TOFU key pinning, revocation checking, and delegation chains.\n\nPart of the ThirdKey trust stack: SchemaPin (tool integrity) → AgentPin (agent identity) → Symbiont (runtime)\n\nArchitecture\nOrganization                         Verifying Party\n────────────                         ───────────────\n1. Generate ECDSA P-256 keypair\n2. Publish agent identity at          3. Discover identity from\n   /.well-known/agent-identity.json      /.well-known/agent-identity.json\n4. Issue JWT credential               5. Verify credential (12-step flow)\n   (ES256 signed, short-lived)           - JWT parsing & ES256 verification\n                                         - Domain binding check\n                                         - TOFU key pinning\n                                         - Revocation checking\n                                         - Capability validation\n                                         - Delegation chain verification\n\nProject Structure\ncrates/\n├── agentpin/          Core library (no mandatory HTTP dep)\n├── agentpin-cli/      CLI binary (keygen, issue, verify, bundle)\n└── agentpin-server/   Axum server for .well-known endpoints\n\nQuick Start by Language\nRust (CLI)\n# Generate keys\ncargo run -p agentpin-cli -- keygen \\\n    --output-dir ./keys --agent-name \"my-agent\"\n\n# Issue a credential (ES256 JWT, 1-hour TTL)\ncargo run -p agentpin-cli -- issue \\\n    --key ./keys/my-agent.private.pem \\\n    --issuer \"https://example.com\" \\\n    --agent-id \"my-agent\" \\\n    --capabilities read,write --ttl 3600\n\n# Verify offline\ncargo run -p agentpin-cli -- verify \\\n    --credential ./credential.jwt \\\n    --discovery ./agent-identity.json\n\n# Verify online (fetches from .well-known)\ncargo run -p agentpin-cli -- verify \\\n    --credential ./credential.jwt --domain example.com\n\n# Create trust bundle for air-gapped environments\ncargo run -p agentpin-cli -- bundle \\\n    --discovery ./agent-identity.json \\\n    --revocation ./revocations.json --output ./bundle.json\n\nRust (Library)\nuse agentpin::{\n    crypto,\n    credential::CredentialBuilder,\n    verification::verify_credential,\n    pinning::KeyPinStore,\n};\n\nlet (private_key, public_key) = crypto::generate_keypair()?;\n\nlet credential = CredentialBuilder::new()\n    .issuer(\"https://example.com\")\n    .agent_id(\"my-agent\")\n    .capability(\"read\")\n    .capability(\"write\")\n    .ttl_secs(3600)\n    .sign(&private_key)?;\n\nlet result = verify_credential(&credential, &discovery_doc, &pin_store)?;\n\nJavaScript\nnpm install agentpin\n\nimport {\n    generateKeypair, issueCredential, verifyCredential,\n    KeyPinStore\n} from 'agentpin';\n\n// Generate ECDSA P-256 keypair\nconst { privateKey, publicKey } = await generateKeypair();\n\n// Issue a credential\nconst credential = await issueCredential(privateKey, {\n    issuer: 'https://example.com',\n    agentId: 'my-agent',\n    capabilities: ['read', 'write'],\n    ttlSecs: 3600,\n});\n\n// Verify\nconst pinStore = new KeyPinStore();\nconst result = await verifyCredential(credential, discoveryDoc, pinStore);\n\nPython\npip install agentpin\n\nfrom agentpin.crypto import generate_keypair\nfrom agentpin.credential import issue_credential\nfrom agentpin.verification import verify_credential\nfrom agentpin.pinning import KeyPinStore\n\nprivate_key, public_key = generate_keypair()\n\ncredential = issue_credential(\n    private_key,\n    issuer=\"https://example.com\",\n    agent_id=\"my-agent\",\n    capabilities=[\"read\", \"write\"],\n    ttl_secs=3600,\n)\n\npin_store = KeyPinStore()\nresult = verify_credential(credential, discovery_doc, pin_store)\n\nServe .well-known Endpoints\ncargo run -p agentpin-server -- \\\n    --identity ./agent-identity.json \\\n    --revocation ./revocations.json \\\n    --port 3000\n\n\nServes:\n\nGET /.well-known/agent-identity.json (Cache-Control: max-age=3600)\nGET /.well-known/agent-identity-revocations.json (Cache-Control: max-age=300)\nGET /health\nCore Library API\nKey Modules\nModule\tPurpose\ncrypto\tECDSA P-256 signing/verification (no external JWT crate)\ntypes\tCore data structures (agents, credentials, capabilities)\ncredential\tJWT issuance and parsing\ndiscovery\tPublishing and resolving agent identity documents\nverification\t12-step credential validation flow\nrevocation\tChecking revoked credentials/agents/keys\npinning\tTOFU key pinning with JWK thumbprints\ndelegation\tDelegation chain validation\nmutual\tChallenge-response mutual authentication (128-bit nonces)\njwk\tJWK handling and thumbprint computation\nresolver\tPluggable discovery resolution\nLanguage API Reference\nOperation\tRust\tJavaScript\tPython\nGenerate keys\tcrypto::generate_keypair()\tgenerateKeypair()\tgenerate_keypair()\nIssue credential\tCredentialBuilder::new().sign()\tissueCredential()\tissue_credential()\nVerify credential\tverify_credential()\tverifyCredential()\tverify_credential()\nKey pinning\tKeyPinStore\tKeyPinStore\tKeyPinStore\nTrust bundle\tTrustBundle::from_json()\tTrustBundle.fromJson()\tTrustBundle.from_json()\nMutual auth\tMutualAuth::challenge()\tcreateChallenge()\tcreate_challenge()\nFeature Flags\nFeature\tPurpose\nfetch\tEnables HTTP via reqwest for online discovery\n(default)\tCore library with no HTTP dependency\nKey Concepts\nES256 Only\n\nAgentPin exclusively uses ES256 (ECDSA P-256). All other algorithms are rejected. This is enforced inline without an external JWT crate.\n\n12-Step Verification\n\nThe credential verification flow includes:\n\nJWT structure parsing\nHeader algorithm validation (ES256 only)\nSignature verification\nIssuer domain extraction\nDiscovery document resolution\nDomain binding verification\nKey matching (issuer key vs discovery)\nTOFU key pinning check\nExpiration validation\nRevocation checking\nCapability validation\nDelegation chain verification (if present)\nTOFU Key Pinning\n\nOn first credential verification for a domain, the agent's public key (JWK thumbprint) is pinned. Subsequent verifications reject different keys for the same domain — detecting key substitution attacks.\n\nDelegation Chains\n\nAgents can delegate capabilities to sub-agents. The delegation chain is validated to ensure:\n\nEach link is signed by the delegator\nCapabilities only narrow (never widen) down the chain\nChain depth limits are respected\nMutual Authentication\n\nChallenge-response protocol with 128-bit nonces for bidirectional agent identity verification.\n\nDiscovery Document Format\n\nPublished at /.well-known/agent-identity.json:\n\n{\n    \"schema_version\": \"0.2\",\n    \"domain\": \"example.com\",\n    \"agents\": [\n        {\n            \"agent_id\": \"my-agent\",\n            \"display_name\": \"My Agent\",\n            \"description\": \"A helpful agent\",\n            \"capabilities\": [\"read\", \"write\"],\n            \"public_key_jwk\": { ... },\n            \"constraints\": {\n                \"max_ttl_secs\": 86400,\n                \"allowed_scopes\": [\"api\"]\n            }\n        }\n    ],\n    \"revocation_endpoint\": \"https://example.com/.well-known/agent-identity-revocations.json\",\n    \"directory_listing\": true\n}\n\nv0.2.0 Features\nTrust Bundles (Offline / Air-Gapped)\n\nPre-package discovery + revocation data for environments without internet:\n\nfrom agentpin.bundle import TrustBundle\n\nbundle = TrustBundle.from_json(bundle_json_str)\ndiscovery = bundle.find_discovery(\"example.com\")\nrevocation = bundle.find_revocation(\"example.com\")\n\nPluggable Discovery Resolvers\nfrom agentpin.discovery import (\n    WellKnownResolver,    # HTTP .well-known lookups\n    DnsTxtResolver,       # DNS TXT record lookups\n    ManualResolver,       # Pre-configured discovery data\n)\n\nDirectory Listing\n\nDomains can advertise all their agents via \"directory_listing\": true in the discovery document. Verifiers can enumerate available agents before issuing challenges.\n\nDevelopment\nBuild and Test\n# Build all crates\ncargo build --workspace\n\n# Run all tests\ncargo test --workspace\n\n# Lint\ncargo clippy --workspace\n\n# Format check\ncargo fmt --check\n\nConventions\nRust edition 2021, MSRV 1.70\ncargo clippy --workspace must pass with zero warnings\ncargo fmt --check must pass\nInline tests in source files (#[cfg(test)] mod tests)\nES256 only — reject all other algorithms\nFeature-gated HTTP: fetch feature enables reqwest\nPro Tips for AI Assistants\nES256 only — never accept RS256, HS256, or any other algorithm\nShort-lived credentials — prefer TTLs of hours, not days\nAlways check revocation before trusting a credential\nTOFU pinning means first-seen key is trusted — warn on key changes\nDelegation chains should narrow capabilities, never widen them\nNo external JWT crate — algorithm validation is controlled inline to prevent algorithm confusion attacks\nFeature-gate HTTP — use the fetch feature only when online discovery is needed; default is offline-capable\nCross-compatible with SchemaPin — both use ECDSA P-256, same crypto primitives\nTrust bundles are ideal for CI/CD and air-gapped deployments — pre-package discovery + revocation data\nJavaScript and Python SDKs provide identical verification guarantees to the Rust crate"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/jaschadub/agentpin",
    "publisherUrl": "https://clawhub.ai/jaschadub/agentpin",
    "owner": "jaschadub",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/agentpin",
    "downloadUrl": "https://openagent3.xyz/downloads/agentpin",
    "agentUrl": "https://openagent3.xyz/skills/agentpin/agent",
    "manifestUrl": "https://openagent3.xyz/skills/agentpin/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/agentpin/agent.md"
  }
}