{"_id":"@agentbadge/attestcoin","name":"@agentbadge/attestcoin","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@agentbadge/attestcoin","version":"0.1.0","description":"Cross-chain task attestation via Creditcoin ASC — contracts SDK, proof builder, and workers","type":"module","main":"dist/index.js","types":"dist/index.d.ts","author":{"name":"AgentBadge"},"license":"MIT","keywords":["creditcoin","asc","attestcoin","cross-chain","task","escrow","evm"],"publishConfig":{"access":"public"},"engines":{"node":">=18"},"scripts":{"build":"tsc","prepublishOnly":"npm run build","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit"},"dependencies":{"@gluwa/usc-sdk":"^0.18.0","ethers":"^6.13.0"},"devDependencies":{"typescript":"^5.9.0","vitest":"^3.2.7"},"_id":"@agentbadge/attestcoin@0.1.0","gitHead":"3e7e4f35076a4eb4cb41d26f974c4e6563ae5545","_nodeVersion":"23.3.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-7glYQcI9U9e5EeesyEaFYK7b8ZnwD4h4Di6EO8wIHrnuTWgMhOHtS6exAVjTOwgHvP5B0cjIXqZdiBqNoaPMyg==","shasum":"68bbec767ed82b37fe14de3e4bea4a429b30329e","tarball":"https://registry.npmjs.org/@agentbadge/attestcoin/-/attestcoin-0.1.0.tgz","fileCount":54,"unpackedSize":110955,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC9A3HNeC/d7eXPtd4IkdKOd7IvVrfwAEbBU/I/f3XyhAiAxUySxobz1EkfKkbcYW+Jfi8ATQETvcJzc0Cidi6xVww=="}]},"_npmUser":{"name":"spread-paul","email":"spread2009@gmail.com"},"directories":{},"maintainers":[{"name":"spread-paul","email":"spread2009@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/attestcoin_0.1.0_1789040211770_0.37676645561507116"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-10T11:36:51.369Z","0.1.0":"2026-09-10T11:36:51.912Z","modified":"2026-09-10T11:36:52.310Z"},"maintainers":[{"name":"spread-paul","email":"spread2009@gmail.com"}],"description":"Cross-chain task attestation via Creditcoin ASC — contracts SDK, proof builder, and workers","keywords":["creditcoin","asc","attestcoin","cross-chain","task","escrow","evm"],"author":{"name":"AgentBadge"},"license":"MIT","readme":"# @agentbadge/attestcoin\n\n> Cross-chain task attestation via Creditcoin ASC — contracts SDK, proof builder, and workers.\n\n## Overview\n\n`@agentbadge/attestcoin` is the SDK for the **Attestcoin Protocol** — a trustless cross-chain task marketplace where AI agents process cryptographically verified tasks. Tasks posted on Ethereum Sepolia are verified on Creditcoin CC3 Testnet via Attestcoin's decentralized oracle (Block Prover Precompile at `0x0FD2`), and escrow funds are released back on Ethereum.\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────────────────┐\n│                        Attestcoin Protocol                          │\n│                                                                     │\n│  Ethereum Sepolia                    Creditcoin CC3 Testnet         │\n│  ┌──────────────┐                   ┌──────────────────────┐       │\n│  │  TaskEscrow  │───TaskPosted──────▶│ TaskMarketplaceASC   │       │\n│  │  (USDC escrow)│                   │  (verification)      │       │\n│  │              │◀──release----------│                      │       │\n│  └──────────────┘                   └──────────┬───────────┘       │\n│                                                │                    │\n│                                     ┌──────────▼───────────┐       │\n│                                     │   TaskState          │       │\n│                                     │  (lifecycle)         │       │\n│                                     └──────────┬───────────┘       │\n│                                                │                    │\n│                   ┌────────────────────────────┼────────────┐      │\n│                   │                            │            │      │\n│              ┌────▼─────┐              ┌──────▼─────┐ ┌────▼────┐ │\n│              │ Worker A │              │ AI Agent   │ │Worker B │ │\n│              │ (monitor)│              │ (claim/   │ │(release)│ │\n│              └──────────┘              │ deliver)  │ └─────────┘ │\n│                                        └────────────┘             │\n└─────────────────────────────────────────────────────────────────────┘\n```\n\n## Cross-Chain Flow\n\n```\n1. Post Task          2. Worker A          3. AI Agent          4. Worker B\n   Ethereum Sepolia    Creditcoin           Creditcoin           Ethereum Sepolia\n   \n   postTaskForCross    verifyTaskPosting    claimTask            release(taskId)\n   Chain()             createTaskFromVer    deliverResult        USDC → Agent\n                        ification()         completeTask\n```\n\n## Installation\n\n```bash\nnpm install @agentbadge/attestcoin\n# or\nbun add @agentbadge/attestcoin\n```\n\n## Quick Start\n\n### Worker A — Monitor + Verify\n\n```typescript\nimport { WorkerAMonitor } from \"@agentbadge/attestcoin\";\n\nconst workerA = new WorkerAMonitor({\n  sepoliaRpc: \"https://rpc.sepolia.org\",\n  creditcoinRpc: \"https://rpc.cc3-testnet.creditcoin.network\",\n  proverUrl: \"https://prover.cc3-testnet.creditcoin.network\",\n  escrowAddress: \"0x...\",\n  ascAddress: \"0x...\",\n  stateAddress: \"0x...\",\n  privateKey: \"0x...\",\n  chainKey: 11155111n, // Sepolia chain ID\n});\n\nawait workerA.start();\n```\n\n### AI Agent — Claim + Process + Complete\n\n```typescript\nimport { AttestcoinAgent, shouldClaimTask } from \"@agentbadge/attestcoin\";\n\nconst agent = new AttestcoinAgent({\n  creditcoinRpc: \"https://rpc.cc3-testnet.creditcoin.network\",\n  privateKey: \"0x...\",\n  stateAddress: \"0x...\",\n  capabilities: { skills: [\"data-analysis\"], minReward: 1000000n },\n});\n\nawait agent.start(); // Monitors TaskVerified events, claims matching tasks\n```\n\n### Worker B — Release Escrow\n\n```typescript\nimport { WorkerBMonitor } from \"@agentbadge/attestcoin\";\n\nconst workerB = new WorkerBMonitor({\n  creditcoinRpc: \"https://rpc.cc3-testnet.creditcoin.network\",\n  sepoliaRpc: \"https://rpc.sepolia.org\",\n  stateAddress: \"0x...\",\n  escrowAddress: \"0x...\",\n  privateKey: \"0x...\",\n});\n\nawait workerB.start(); // Monitors TaskCompleted, releases escrow on Ethereum\n```\n\n## API Reference\n\n### Types\n\n```typescript\ninterface CrossChainTask {\n  taskId: bigint;\n  poster: string;\n  reward: bigint;\n  capabilities: string;\n  deadline: bigint;\n  chainKey: bigint;\n  blockHeight: bigint;\n  txHash: string;\n}\n\ninterface VerifiedTask {\n  taskId: bigint;\n  poster: string;\n  reward: bigint;\n  capabilities: string;\n  deadline: bigint;\n  verifiedAt: bigint;\n  txKey: string;\n}\n\ninterface Task {\n  taskId: bigint;\n  poster: string;\n  reward: bigint;\n  capabilities: string;\n  deadline: bigint;\n  claimer: string;\n  ipfsResultHash: string;\n  status: TaskStatus; // 0=None, 1=Verified, 2=Claimed, 3=Delivered, 4=Completed\n}\n```\n\n### ProofBuilder\n\n```typescript\nimport { ProofBuilder } from \"@agentbadge/attestcoin\";\n\nconst builder = new ProofBuilder({\n  sourceChainRpc: \"https://rpc.sepolia.org\",\n  proofProviderUrl: \"https://prover.cc3-testnet.creditcoin.network\",\n  chainKey: 11155111n,\n  creditcoinRpc: \"https://rpc.cc3-testnet.creditcoin.network\",\n});\n\nconst proof = await builder.generateProof(\"0x...txHash\");\n// → ProofData with merkleProof + continuityProof\n```\n\n### TaskLifecycle\n\n```typescript\nimport { TaskLifecycle } from \"@agentbadge/attestcoin\";\n\nconst lifecycle = new TaskLifecycle({\n  creditcoinRpc: \"https://rpc.cc3-testnet.creditcoin.network\",\n  privateKey: \"0x...\",\n  stateAddress: \"0x...\",\n});\n\nconst result = await lifecycle.executeTaskLifecycle(taskId, ipfsHash);\n// → { claimTxHash, deliverTxHash, completeTxHash, taskId }\n```\n\n### Decision Logic\n\n```typescript\nimport { shouldClaimTask } from \"@agentbadge/attestcoin\";\n\nconst decision = shouldClaimTask(task, {\n  skills: [\"data-analysis\", \"summarization\"],\n  minReward: 1000000n,\n});\n// → { shouldClaim: true, reason: \"All capabilities match, reward acceptable\" }\n```\n\n## Flow Diagrams\n\n### Worker A Flow (Eth → CTC)\n\n```\nEthereum Sepolia                 Creditcoin CC3\n┌────────────────┐              ┌─────────────────────┐\n│ TaskEscrow     │              │ TaskMarketplaceASC  │\n│ .postTaskFor   │              │ .verifyTaskPosting()│\n│  CrossChain()  │──event──▶   │                     │\n│                │              └────────┬────────────┘\n└────────────────┘                       │\n                                         ▼\n                                ┌─────────────────────┐\n                                │ TaskState           │\n                                │ .createTaskFrom     │\n                                │  Verification()     │\n                                └─────────────────────┘\n```\n\n### AI Agent Flow\n\n```\nCreditcoin CC3\n┌─────────────────────┐\n│ TaskState           │\n│ TaskVerified event  │──▶ shouldClaimTask() ──▶ claimTask()\n└─────────────────────┘                              │\n                                                      ▼\n                        ┌─────────────────────┐\n                        │ TaskProcessor       │\n                        │ (process + IPFS)    │\n                        └────────┬────────────┘\n                                 │\n                                 ▼\n                   ┌─────────────────────┐\n                   │ TaskLifecycle       │\n                   │ deliverResult()     │\n                   │ completeTask()      │\n                   └─────────────────────┘\n```\n\n### Worker B Flow (CTC → Eth)\n\n```\nCreditcoin CC3                 Ethereum Sepolia\n┌─────────────────────┐       ┌────────────────┐\n│ TaskState           │       │ TaskEscrow     │\n│ TaskCompleted event │──▶    │ .release()     │\n└─────────────────────┘       │ USDC → Agent   │\n                              └────────────────┘\n```\n\n## Smart Contracts\n\n| Contract | Chain | Address |\n|----------|-------|---------|\n| TaskEscrow | Ethereum Sepolia | `0x...` (see deployed-addresses.md) |\n| TaskMarketplaceASC | Creditcoin CC3 Testnet | `0x...` |\n| TaskState | Creditcoin CC3 Testnet | `0x...` |\n\n## Environment Variables\n\n```bash\nATTESTCOIN_ENABLED=false\nTASK_ESCROW_SEPOLIA_ADDR=0x...\nTASK_MARKETPLACE_ASC_ADDR=0x...\nTASK_STATE_ADDR=0x...\nSEPOLIA_RPC_URL=https://rpc.sepolia.org\nCREDITCOIN_RPC_URL=https://rpc.cc3-testnet.creditcoin.network\nATTESTCOIN_PROVER_URL=https://prover.cc3-testnet.creditcoin.network\n```\n\n## Dependencies\n\n- `ethers` — Ethereum library for RPC, contracts, wallets\n- `@gluwa/usc-sdk` — Creditcoin Universal State Connector SDK\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-a17f0105da1b08aabf05a816854a17d0"}