{"_id":"@ch4r10teer41/clawpass","_rev":"3-b4f555fc245733ac94996f32f023bbc9","name":"@ch4r10teer41/clawpass","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.1":{"name":"@ch4r10teer41/clawpass","version":"1.0.1","keywords":["erc-8004","ethereum","ai-agents","identity","reputation","validation","blockchain","web3","moltbook","moltx","openclaw","openclaw-plugin"],"author":"","license":"Apache-2.0","_id":"@ch4r10teer41/clawpass@1.0.1","maintainers":[{"name":"ch4r01teer41","email":"partha@charioteerconsulting.com"}],"homepage":"https://github.com/ch4r10t33r/clawpass#readme","bugs":{"url":"https://github.com/ch4r10t33r/clawpass/issues"},"dist":{"shasum":"ca7e32cef3ad3b7cd0b3217a06afe7045917865a","tarball":"https://registry.npmjs.org/@ch4r10teer41/clawpass/-/clawpass-1.0.1.tgz","fileCount":10,"integrity":"sha512-cFSEoIow1gCoviM+cvSuq0llieB2yK4yhm3dQ0ZIxqDWKtzDDYRGwz06fny55GrvUb+eh4UuhUCJ5qufEGwN2A==","signatures":[{"sig":"MEUCIBepSZERrI5DKy9LMA+J3yNfCq5zEpGTqNXXzRYlEwV6AiEAvMhOIFCTnpUjz4iP5MPO2xANcEvLd9sVEGjcI6I9c6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176543},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"85b1a292feb62d29a9f1337c442aa99d1ed7d296","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts","format":"prettier --write \"src/**/*.ts\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ch4r01teer41","email":"partha@charioteerconsulting.com"},"openclaw":{"extensions":["./openclaw-plugin.ts"]},"repository":{"url":"git+https://github.com/ch4r10t33r/clawpass.git","type":"git"},"_npmVersion":"10.9.4","description":"ERC-8004 interface module for AI agent identity, reputation, and validation on blockchain","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^3.22.4","ethers":"^6.11.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","eslint":"^8.56.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.19","@typescript-eslint/parser":"^7.0.1","@typescript-eslint/eslint-plugin":"^7.0.1"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/clawpass_1.0.1_1769870542813_0.5693802125543286","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@ch4r10teer41/clawpass","version":"1.0.2","keywords":["erc-8004","ethereum","ai-agents","identity","reputation","validation","blockchain","web3","moltbook","moltx","openclaw","openclaw-plugin"],"author":"","license":"Apache-2.0","_id":"@ch4r10teer41/clawpass@1.0.2","maintainers":[{"name":"ch4r01teer41","email":"partha@charioteerconsulting.com"}],"homepage":"https://github.com/ch4r10t33r/clawpass#readme","bugs":{"url":"https://github.com/ch4r10t33r/clawpass/issues"},"dist":{"shasum":"86c4299283ce945b9defa9df4c2ce92e56ef37c0","tarball":"https://registry.npmjs.org/@ch4r10teer41/clawpass/-/clawpass-1.0.2.tgz","fileCount":10,"integrity":"sha512-GPrrXP+utcEjlc5a+lqAYei5xitNcO2gBp9ec2Zexu/38ET7gYLIO2dSQI+OyutpTdjOj+K8EFBUNjeHUcYo+w==","signatures":[{"sig":"MEUCIQCWAgttAXejmYEyKK44Lx3RADMR2Aq85TrZCyys0sW/SQIgAhn4KdG9dO/zjWvflZg3fC06L5Dqz1t4M49G1r4CJDM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176697},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7dc05db0a7465b08d0b20c4c37b88191f9237e92","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts","format":"prettier --write \"src/**/*.ts\"","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ch4r01teer41","email":"partha@charioteerconsulting.com"},"openclaw":{"extensions":["./openclaw-plugin.ts"]},"repository":{"url":"git+https://github.com/ch4r10t33r/clawpass.git","type":"git"},"_npmVersion":"10.9.4","description":"ERC-8004 interface module for AI agent identity, reputation, and validation on blockchain","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^3.22.4","ethers":"^6.11.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","eslint":"^8.56.0","ts-jest":"^29.1.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.19","@typescript-eslint/parser":"^7.0.1","@typescript-eslint/eslint-plugin":"^7.0.1"},"peerDependencies":{"ethers":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/clawpass_1.0.2_1769870991301_0.31767835620656837","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@ch4r10teer41/clawpass","version":"1.0.3","repository":{"type":"git","url":"git+https://github.com/ch4r10t33r/clawpass.git"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"description":"ERC-8004 interface module for AI agent identity, reputation, and validation on blockchain","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"openclaw":{"extensions":["./openclaw-plugin.ts"]},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts","dev":"tsup src/index.ts --format cjs,esm --dts --watch","test":"jest","lint":"eslint src --ext .ts","format":"prettier --write \"src/**/*.ts\"","typecheck":"tsc --noEmit"},"keywords":["erc-8004","ethereum","ai-agents","identity","reputation","validation","blockchain","web3","moltbook","moltx","openclaw","openclaw-plugin"],"author":"","license":"Apache-2.0","devDependencies":{"@types/jest":"^29.5.12","@types/node":"^20.11.19","@typescript-eslint/eslint-plugin":"^7.0.1","@typescript-eslint/parser":"^7.0.1","eslint":"^8.56.0","jest":"^29.7.0","prettier":"^3.2.5","ts-jest":"^29.1.2","tsup":"^8.0.2","typescript":"^5.3.3"},"dependencies":{"ethers":"^6.11.1","zod":"^3.22.4"},"peerDependencies":{"ethers":"^6.0.0"},"_id":"@ch4r10teer41/clawpass@1.0.3","gitHead":"b370502edde350161f762027e3db10a0c1ba4efe","bugs":{"url":"https://github.com/ch4r10t33r/clawpass/issues"},"homepage":"https://github.com/ch4r10t33r/clawpass#readme","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-g60zfoBo+SBZbkGP/tnYthHJOu2+KvKZkOBume9AgXIi4jcx3+FuK8/ktimxbh7uS/R2Z20Bo/1jAJaqWBhETA==","shasum":"03b07fbeb7f81ca33aa8f5b287a563077d9dabe5","tarball":"https://registry.npmjs.org/@ch4r10teer41/clawpass/-/clawpass-1.0.3.tgz","fileCount":10,"unpackedSize":177990,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICWDh8ETruqrvl+Nn1VPE1uWiS8/aQZtRWiomxWSz0JSAiEA7H6cY4Bpzcw8T+tZbM/8LP6cLjjU0gFK1BJAjiOzk5o="}]},"_npmUser":{"name":"ch4r01teer41","email":"partha@charioteerconsulting.com"},"directories":{},"maintainers":[{"name":"ch4r01teer41","email":"partha@charioteerconsulting.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/clawpass_1.0.3_1769881132759_0.7516619485699052"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-31T14:42:22.734Z","modified":"2026-01-31T17:38:53.071Z","1.0.1":"2026-01-31T14:42:23.023Z","1.0.2":"2026-01-31T14:49:51.451Z","1.0.3":"2026-01-31T17:38:52.918Z"},"bugs":{"url":"https://github.com/ch4r10t33r/clawpass/issues"},"license":"Apache-2.0","homepage":"https://github.com/ch4r10t33r/clawpass#readme","keywords":["erc-8004","ethereum","ai-agents","identity","reputation","validation","blockchain","web3","moltbook","moltx","openclaw","openclaw-plugin"],"repository":{"type":"git","url":"git+https://github.com/ch4r10t33r/clawpass.git"},"description":"ERC-8004 interface module for AI agent identity, reputation, and validation on blockchain","maintainers":[{"name":"ch4r01teer41","email":"partha@charioteerconsulting.com"}],"readme":"# Clawpass\n\n[![npm version](https://img.shields.io/npm/v/@ch4r10teer41/clawpass.svg)](https://www.npmjs.com/package/@ch4r10teer41/clawpass)\n\n**ERC-8004 Interface Module for AI Agents on Blockchain**\n\nClawpass is a modular TypeScript/JavaScript library that provides a complete interface to the ERC-8004 Trustless Agents protocol. It enables AI agents to establish decentralized identity, accumulate verifiable reputation, and validate their work through blockchain-based registries.\n\n**Built as an add-on module for easy consumption by moltbook, moltx.io, OpenClaw, and other applications.**\n\n## Features\n\n- **Identity Registry**: Register and manage AI agent identities on-chain\n- **Reputation Registry**: Collect and query verifiable peer feedback\n- **Validation Registry**: Request and track independent validation of agent work\n- **Modular Design**: Use as a complete solution or integrate individual components\n- **TypeScript Support**: Full type definitions and runtime validation with Zod\n- **Framework Agnostic**: Works with any JavaScript/TypeScript project\n- **OpenClaw Plugin**: Install as an [OpenClaw](https://docs.openclaw.ai/) plugin for agent tools and CLI\n\n## Installation\n\nInstall from the public npm registry:\n\n```bash\nnpm install @ch4r10teer41/clawpass ethers\n```\n\n## Quick Start\n\nFor a short walkthrough, see [QUICKSTART.md](QUICKSTART.md). For a fuller introduction, see [GETTING_STARTED.md](GETTING_STARTED.md).\n\n```typescript\nimport { ethers } from 'ethers';\nimport { ClawpassClient } from '@ch4r10teer41/clawpass';\n\n// Setup provider and signer\nconst provider = new ethers.JsonRpcProvider('YOUR_RPC_URL');\nconst signer = new ethers.Wallet('YOUR_PRIVATE_KEY', provider);\n\n// Initialize Clawpass\nconst clawpass = new ClawpassClient({\n  identityRegistryAddress: '0x...',\n  reputationRegistryAddress: '0x...',\n  validationRegistryAddress: '0x...',\n  providerOrSigner: signer,\n});\n\n// Register an agent\nconst agentId = await clawpass.identity.register('ipfs://...');\n\n// Give feedback\nawait clawpass.reputation.giveFeedback({\n  agentId: 1n,\n  value: 45n, // 4.5 stars\n  valueDecimals: 1,\n  tag1: 'quality',\n});\n\n// Request validation\nawait clawpass.validation.validationRequest({\n  validatorAddress: '0x...',\n  agentId: 1,\n  requestURI: 'ipfs://...',\n  requestHash: '0x...',\n});\n```\n\n## Core Concepts\n\n### Identity Registry\n\nThe Identity Registry uses ERC-721 to provide each agent with a portable, censorship-resistant on-chain identifier. Each agent has:\n\n- **Agent ID**: Unique token ID\n- **Agent URI**: Points to registration file (IPFS, HTTPS, or on-chain data URI)\n- **Metadata**: Optional key-value storage\n- **Agent Wallet**: Verified payment address\n\n### Reputation Registry\n\nThe Reputation Registry enables collecting and querying feedback signals from task completion:\n\n- **Feedback Values**: Fixed-point numbers with configurable decimals (0-18)\n- **Tags**: Two optional tags for categorization and filtering\n- **Composable**: On-chain aggregation and off-chain sophisticated scoring\n- **Sybil-Resistant**: Requires filtering by trusted client addresses\n\n### Validation Registry\n\nThe Validation Registry provides hooks for independent validators to verify task execution:\n\n- **Validation Requests**: Agents request verification from validators\n- **Validation Responses**: Validators provide scores (0-100)\n- **Progressive Validation**: Multiple responses per request (e.g., soft/hard finality)\n- **Flexible**: Supports stake-secured re-execution, zkML proofs, TEE oracles\n\n## Usage Examples\n\n### Register an Agent\n\n```typescript\nimport { createDataURI } from '@ch4r10teer41/clawpass';\n\nconst registrationFile = {\n  type: 'https://eips.ethereum.org/EIPS/eip-8004#registration-v1',\n  name: 'MyAIAgent',\n  description: 'An AI agent that provides data analysis',\n  services: [\n    {\n      name: 'A2A',\n      endpoint: 'https://agent.example.com/.well-known/agent-card.json',\n      version: '0.3.0',\n    },\n  ],\n  x402Support: true,\n  active: true,\n  registrations: [],\n  supportedTrust: ['reputation', 'crypto-economic'],\n};\n\n// Store on-chain as data URI\nconst agentURI = createDataURI(registrationFile);\nconst agentId = await clawpass.identity.register(agentURI);\n```\n\n### Give Feedback\n\n```typescript\nimport { toFixedPoint } from '@ch4r10teer41/clawpass';\n\nawait clawpass.reputation.giveFeedback({\n  agentId: 1n,\n  value: toFixedPoint(4.5, 1), // 4.5 with 1 decimal\n  valueDecimals: 1,\n  tag1: 'starred',\n  tag2: 'quality',\n  endpoint: 'https://agent.example.com/api',\n  feedbackURI: 'ipfs://...',\n});\n```\n\n### Get Agent Reputation\n\n```typescript\n// Get reputation from trusted reviewers only\nconst trustedClients = ['0x...', '0x...'];\nconst reputation = await clawpass.getAgentReputation(\n  1n,\n  trustedClients,\n  'starred' // optional tag filter\n);\n\nconsole.log(`Average: ${reputation.summary.summaryValue}`);\nconsole.log(`Count: ${reputation.summary.count}`);\n```\n\n### Request Validation\n\n```typescript\nimport { calculateHash } from '@ch4r10teer41/clawpass';\n\nconst requestData = JSON.stringify({\n  task: 'Verify analysis',\n  input: {...},\n  output: {...},\n});\n\nawait clawpass.validation.validationRequest({\n  validatorAddress: '0x...', // Validator contract\n  agentId: 1,\n  requestURI: 'ipfs://...',\n  requestHash: calculateHash(requestData),\n});\n```\n\n### Get Validation Status\n\n```typescript\nconst status = await clawpass.validation.getValidationStatus(requestHash);\n\nconsole.log(`Score: ${status.response}/100`);\nconsole.log(`Validator: ${status.validatorAddress}`);\nconsole.log(`Last Update: ${status.lastUpdate}`);\n```\n\n## OpenClaw Plugin\n\nClawpass works as an [OpenClaw](https://docs.openclaw.ai/) plugin so agents can use ERC-8004 identity, reputation, and validation from within OpenClaw. See [OpenClaw plugins](https://docs.openclaw.ai/cli/plugins) and [Plugin manifest](https://docs.openclaw.ai/plugins/manifest). For plugin details and config, see [docs/OPENCLAW_PLUGIN.md](docs/OPENCLAW_PLUGIN.md).\n\n### Install\n\nFrom npm:\n\n```bash\nopenclaw plugins install @ch4r10teer41/clawpass\n```\n\nFrom a local path (development; run `npm run build` in the clawpass directory first):\n\n```bash\ncd path/to/clawpass && npm run build\nopenclaw plugins install -l ./path/to/clawpass\n```\n\nThen enable and configure in your OpenClaw config:\n\n```json\n{\n  \"plugins\": {\n    \"enabled\": true,\n    \"entries\": {\n      \"clawpass\": {\n        \"enabled\": true,\n        \"config\": {\n          \"rpcUrl\": \"https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY\",\n          \"identityRegistryAddress\": \"0x...\",\n          \"reputationRegistryAddress\": \"0x...\",\n          \"validationRegistryAddress\": \"0x...\",\n          \"privateKey\": \"0x...\"\n        }\n      }\n    }\n  }\n}\n```\n\nOptional: allow Clawpass tools for an agent (tools are **optional** and opt-in):\n\n```json\n{\n  \"agents\": {\n    \"list\": [{\n      \"id\": \"main\",\n      \"tools\": {\n        \"allow\": [\"clawpass\", \"clawpass_get_agent_info\", \"clawpass_get_reputation\", \"clawpass_give_feedback\", \"clawpass_request_validation\", \"clawpass_validation_status\"]\n      }\n    }]\n  }\n}\n```\n\n### Plugin tools (optional)\n\n| Tool | Description |\n|------|-------------|\n| `clawpass_get_agent_info` | Get agent registration, owner, wallet (params: `agentId`) |\n| `clawpass_get_reputation` | Get reputation from trusted clients (params: `agentId`, `trustedClients`, optional `tag1`, `tag2`) |\n| `clawpass_give_feedback` | Submit feedback (params: `agentId`, `value`, `valueDecimals`, optional `tag1`, `tag2`, `endpoint`). Requires `privateKey` in config. |\n| `clawpass_request_validation` | Request validation (params: `validatorAddress`, `agentId`, `requestURI`, `requestData` or `requestHash`). Requires `privateKey`. |\n| `clawpass_validation_status` | Get validation status (params: `requestHash`) |\n\n### CLI\n\nAfter installing the plugin:\n\n```bash\nopenclaw clawpass\n```\n\nPrints whether Clawpass is configured and ready.\n\n### Gateway RPC\n\nIf the gateway exposes plugin RPC:\n\n- `clawpass.status` — returns `{ configured: boolean }`.\n\n## Integration Examples\n\n### Moltbook Integration\n\nClawpass bridges [Moltbook](https://moltbook.com) (web2 agent identity) with ERC-8004 (web3 on-chain identity). See [examples/moltbook-integration.ts](examples/moltbook-integration.ts) for a full working example.\n\n**Flow:**\n\n```\nMoltbook (social karma) <---> Clawpass <---> ERC-8004 (on-chain reputation)\n```\n\n**Quick example:**\n\n```typescript\nimport { ClawpassClient } from '@ch4r10teer41/clawpass';\n\n// 1. Agent authenticates with Moltbook and gets identity token\nconst moltbookToken = await fetch('https://moltbook.com/api/v1/agents/me/identity-token', {\n  method: 'POST',\n  headers: { Authorization: `Bearer ${MOLTBOOK_API_KEY}` },\n}).then(r => r.json());\n\n// 2. Verify token and get agent profile\nconst { agent } = await fetch('https://moltbook.com/api/v1/agents/verify-identity', {\n  method: 'POST',\n  headers: { 'X-Moltbook-App-Key': MOLTBOOK_APP_KEY },\n  body: JSON.stringify({ token: moltbookToken.token }),\n}).then(r => r.json());\n\n// 3. Register on-chain with Moltbook metadata linked\nconst clawpass = new ClawpassClient({ /* config */ });\n\nconst metadata = {\n  name: agent.name,\n  external_url: `https://moltbook.com/agents/${agent.id}`,\n  attributes: [\n    { trait_type: 'moltbook_id', value: agent.id },\n    { trait_type: 'moltbook_karma', value: agent.karma },\n  ],\n};\n\nconst metadataUri = `data:application/json;base64,${btoa(JSON.stringify(metadata))}`;\nconst agentId = await clawpass.identity.register(metadataUri);\n\n// 4. Sync Moltbook karma to on-chain reputation\nawait clawpass.reputation.giveFeedback(agentId, 0, agent.karma, 'Synced from Moltbook');\n```\n\nThis gives agents:\n- **Web2 identity** on Moltbook (social, karma-based)\n- **Web3 identity** on ERC-8004 (on-chain, trustless)\n- **Linked metadata** bridging both systems\n- **Portable reputation** across platforms\n\n### Moltx.io Integration\n\n```typescript\nimport { MoltxClawpassIntegration } from 'clawpass/examples/moltx-integration';\n\nconst integration = new MoltxClawpassIntegration(clawpass);\n\n// Get agent profile\nconst profile = await integration.getAgentProfile(agentId, trustedReviewers);\n\n// Find agents by service\nconst a2aAgents = await integration.findAgentsByService(agentIds, 'A2A');\n\n// Compare agents\nconst comparison = await integration.compareAgents(agentIds, trustedReviewers);\n```\n\n## API Reference\n\n### ClawpassClient\n\nMain client providing unified access to all registries.\n\n```typescript\nclass ClawpassClient {\n  identity: IdentityRegistryClient;\n  reputation: ReputationRegistryClient;\n  validation: ValidationRegistryClient;\n\n  constructor(config: ClawpassConfig);\n  verifyRegistryLinks(): Promise<boolean>;\n  getAgentInfo(agentId: bigint): Promise<AgentInfo>;\n  getAgentReputation(agentId: bigint, trustedClients: string[]): Promise<ReputationData>;\n  getAgentValidationSummary(agentId: bigint): Promise<ValidationData>;\n}\n```\n\n### IdentityRegistryClient\n\n```typescript\nclass IdentityRegistryClient {\n  register(agentURI?: string, metadata?: MetadataEntry[]): Promise<bigint>;\n  setAgentURI(agentId: bigint, newURI: string): Promise<void>;\n  getAgentURI(agentId: bigint): Promise<string>;\n  getAgentRegistrationFile(agentId: bigint): Promise<AgentRegistrationFile>;\n  setMetadata(agentId: bigint, key: string, value: string): Promise<void>;\n  getMetadata(agentId: bigint, key: string): Promise<string>;\n  getAgentWallet(agentId: bigint): Promise<string>;\n  setAgentWallet(agentId: bigint, newWallet: string, deadline: bigint, signature: string): Promise<void>;\n  getOwner(agentId: bigint): Promise<string>;\n}\n```\n\n### ReputationRegistryClient\n\n```typescript\nclass ReputationRegistryClient {\n  giveFeedback(feedback: FeedbackData): Promise<void>;\n  revokeFeedback(agentId: bigint, feedbackIndex: bigint): Promise<void>;\n  appendResponse(agentId: bigint, clientAddress: string, feedbackIndex: bigint, responseURI: string): Promise<void>;\n  getSummary(agentId: bigint, clientAddresses: string[], tag1?: string, tag2?: string): Promise<FeedbackSummary>;\n  readFeedback(agentId: bigint, clientAddress: string, feedbackIndex: bigint): Promise<FeedbackRecord>;\n  readAllFeedback(agentId: bigint, clientAddresses?: string[], tag1?: string, tag2?: string): Promise<FeedbackRecord[]>;\n  getClients(agentId: bigint): Promise<string[]>;\n}\n```\n\n### ValidationRegistryClient\n\n```typescript\nclass ValidationRegistryClient {\n  validationRequest(request: ValidationRequest): Promise<void>;\n  validationResponse(response: ValidationResponse): Promise<void>;\n  getValidationStatus(requestHash: string): Promise<ValidationStatus>;\n  getSummary(agentId: bigint, validatorAddresses?: string[], tag?: string): Promise<ValidationSummary>;\n  getAgentValidations(agentId: bigint): Promise<string[]>;\n  getValidatorRequests(validatorAddress: string): Promise<string[]>;\n}\n```\n\n## Utility Functions\n\n```typescript\n// Data URI handling\ncreateDataURI(registrationFile: AgentRegistrationFile): string;\nparseDataURI(dataURI: string): AgentRegistrationFile;\n\n// Fixed-point conversion\ntoFixedPoint(value: number, decimals: number): bigint;\nfromFixedPoint(value: bigint, decimals: number): number;\n\n// Hash calculation\ncalculateHash(content: string): string;\nverifyHash(content: string, hash: string): boolean;\n\n// IPFS utilities\ncreateIPFSUri(cid: string): string;\nextractCIDFromIPFS(ipfsUri: string): string;\nipfsToHTTP(ipfsUri: string, gateway?: string): string;\n\n// Metadata encoding\nencodeMetadata(value: string): string;\ndecodeMetadata(hexValue: string): string;\n```\n\n## Architecture\n\nClawpass is designed as a modular add-on that can be easily consumed by different applications. For design and module structure, see [ARCHITECTURE.md](ARCHITECTURE.md). For data flow and system overview, see [SYSTEM_OVERVIEW.md](SYSTEM_OVERVIEW.md).\n\n```\nclawpass/\n├── src/\n│   ├── ClawpassClient.ts         # Unified client\n│   ├── clients/\n│   │   ├── IdentityRegistryClient.ts\n│   │   ├── ReputationRegistryClient.ts\n│   │   └── ValidationRegistryClient.ts\n│   ├── types/                    # TypeScript types\n│   ├── schemas/                  # Zod validation schemas\n│   ├── abis/                     # Contract ABIs\n│   └── utils/                    # Utility functions\n├── examples/\n│   ├── basic-usage.ts\n│   ├── moltbook-integration.ts\n│   └── moltx-integration.ts\n└── dist/                         # Compiled output\n```\n\n## ERC-8004 Specification\n\nClawpass implements the [ERC-8004 Trustless Agents](https://eips.ethereum.org/EIPS/eip-8004) specification, which defines:\n\n- **Identity Registry**: ERC-721 based agent registration\n- **Reputation Registry**: Feedback collection and aggregation\n- **Validation Registry**: Independent verification hooks\n\nFor full specification details, see [EIP-8004](https://eips.ethereum.org/EIPS/eip-8004).\n\n## Security Considerations\n\n- **Sybil Attacks**: Always filter reputation queries by trusted client addresses\n- **Validation Trust**: Validator incentives and slashing are protocol-specific\n- **Private Keys**: Never expose private keys or commit them to version control\n- **Gas Costs**: Be mindful of gas costs for on-chain operations\n\nFor production setup, monitoring, and troubleshooting, see [DEPLOYMENT.md](DEPLOYMENT.md).\n\n## Contributing\n\nContributions are welcome! Please follow the guidelines in [CONTRIBUTING.md](CONTRIBUTING.md):\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes with tests\n4. Submit a pull request\n\n## License\n\nApache License 2.0 - see [LICENSE](LICENSE) file for details\n\n## Links\n\n**Documentation**\n\n- [QUICKSTART.md](QUICKSTART.md) — Short walkthrough\n- [GETTING_STARTED.md](GETTING_STARTED.md) — Full introduction\n- [ARCHITECTURE.md](ARCHITECTURE.md) — Design and module structure\n- [SYSTEM_OVERVIEW.md](SYSTEM_OVERVIEW.md) — Data flow and system overview\n- [DEPLOYMENT.md](DEPLOYMENT.md) — Production and deployment\n- [docs/OPENCLAW_PLUGIN.md](docs/OPENCLAW_PLUGIN.md) — OpenClaw plugin setup and config\n- [CONTRIBUTING.md](CONTRIBUTING.md) — How to contribute\n- [CHANGELOG.md](CHANGELOG.md) — Version history\n- [PROJECT_SUMMARY.md](PROJECT_SUMMARY.md) — Project overview\n- [PUBLISHING.md](PUBLISHING.md) — How to publish to npm\n\n**External**\n\n- [npm package](https://www.npmjs.com/package/@ch4r10teer41/clawpass) — `@ch4r10teer41/clawpass`\n- [ERC-8004 Specification](https://eips.ethereum.org/EIPS/eip-8004)\n- [GitHub Repository](https://github.com/ch4r10t33r/clawpass)\n- [Documentation](https://clawpass.dev)\n\n## Support\n\nFor questions and support:\n\n- Open an issue on GitHub\n- Join our Discord community\n- Email: support@clawpass.dev\n","readmeFilename":"README.md"}