{"_id":"@backbay/witness-react","_rev":"2-11e9d4d2fd0eae80b3182633a1e81e50","name":"@backbay/witness-react","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0-alpha.1":{"name":"@backbay/witness-react","version":"0.1.0-alpha.1","keywords":["backbay","witness","verification","react","hooks"],"license":"MIT","_id":"@backbay/witness-react@0.1.0-alpha.1","maintainers":[{"name":"bbconnor","email":"connor@backbay.io"}],"dist":{"shasum":"198f7956d8892fa6ca9a417d4a58d07ab4713fc0","tarball":"https://registry.npmjs.org/@backbay/witness-react/-/witness-react-0.1.0-alpha.1.tgz","fileCount":25,"integrity":"sha512-Z9uMMjWTfXByxAHCm6fLncGOHbm6bQsZHwwDuoVlGYjpiqgHOZobX2WeeM+U8sL2qSGvxg4WBmGbjgXNinp7BA==","signatures":[{"sig":"MEUCIFCA8u8HAxLgKqCgVF8x3MZ9iQoNKgPhwC4m5mKivmdnAiEAnXIY/fVevHIK9iBMW0t/CwK53PxVN7r6HNu5+IdVllA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49470},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"6acb228d8f36242cee30398c351fd139a146f1ec","scripts":{"dev":"tsc --watch","test":"vitest","build":"tsc || true","clean":"rm -rf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"bbconnor","email":"connor@backbay.io"},"_npmVersion":"10.8.2","description":"React hooks and components for Backbay attestation verification","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@backbay/witness":"0.1.0-alpha.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.2.0","vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^20.0.0","@types/react":"19.2.8"},"peerDependencies":{"react":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/witness-react_0.1.0-alpha.1_1770318665682_0.8248260468277671","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@backbay/witness-react","version":"0.1.0","description":"React hooks and components for Backbay attestation verification","publishConfig":{"access":"public"},"type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"sideEffects":false,"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","test":"vitest run","clean":"rm -rf dist","prepublishOnly":"npm run build"},"dependencies":{"@backbay/witness":"^0.1.0"},"peerDependencies":{"react":"^18.0.0"},"devDependencies":{"@types/node":"^20.0.0","@types/react":"19.2.8","react":"^18.2.0","tsup":"^8.5.1","typescript":"^5.9.3","vitest":"^2.0.0"},"keywords":["backbay","witness","verification","react","hooks"],"author":{"name":"Backbay","email":"dev@backbay.industries"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/backbay/backbay-sdk.git","directory":"packages/witness-react"},"bugs":{"url":"https://github.com/backbay/backbay-sdk/issues"},"homepage":"https://github.com/backbay/backbay-sdk/tree/main/packages/witness-react#readme","_id":"@backbay/witness-react@0.1.0","gitHead":"ae09bc8a0404f61abefc257033578911f024260d","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-FQTb3Ae5SOS2BrnSvJdOJCJerBZtSOGFlZLar/M1vWofakQMy+xEvbsbanvMASxdSYD059JheeSTf5hkTo79vQ==","shasum":"250a09f238d0d81622cba8cf0381c8edd332cee1","tarball":"https://registry.npmjs.org/@backbay/witness-react/-/witness-react-0.1.0.tgz","fileCount":6,"unpackedSize":65140,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDlvCn1NmmuDnIPfAEmur06/MCICYCotl7ngMvH69RF+wIhAKg53pREs828Dir1z2un7dvUkBJzMBTkePUDE60HJZWC"}]},"_npmUser":{"name":"bbconnor","email":"connor@backbay.io"},"directories":{},"maintainers":[{"name":"bbconnor","email":"connor@backbay.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/witness-react_0.1.0_1771888513163_0.2524055412090407"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-05T19:11:05.539Z","modified":"2026-02-23T23:15:13.507Z","0.1.0-alpha.1":"2026-02-05T19:11:05.845Z","0.1.0":"2026-02-23T23:15:13.382Z"},"license":"MIT","keywords":["backbay","witness","verification","react","hooks"],"description":"React hooks and components for Backbay attestation verification","maintainers":[{"name":"bbconnor","email":"connor@backbay.io"}],"readme":"# @backbay/witness-react\n\n> React hooks and components for Backbay attestation verification.\n\n`@backbay/witness-react` provides React bindings around [`@backbay/witness`](../witness/README.md). It handles WASM initialization, verification state management, and ready-made UI components for displaying verification results.\n\n## Installation\n\n```bash\nbun add @backbay/witness-react\n```\n\nPeer dependencies: `react >= 18.0.0`, `@backbay/witness` (installed automatically).\n\n## Quick Start\n\n```tsx\nimport {\n  VerificationProvider,\n  VerificationBadge,\n  useVerification,\n} from \"@backbay/witness-react\";\n\n// Wrap your app (initializes WASM once)\nfunction App() {\n  return (\n    <VerificationProvider>\n      <ReceiptViewer receipt={receipt} />\n    </VerificationProvider>\n  );\n}\n\n// Use the badge component for quick display\nfunction ReceiptViewer({ receipt }) {\n  return <VerificationBadge receipt={receipt} showDetails />;\n}\n\n// Or use the hook for full control\nfunction CustomVerifier({ receipt, publicKeys }) {\n  const { verify, result, isVerifying, error } = useVerification();\n\n  return (\n    <button onClick={() => verify(receipt, publicKeys)} disabled={isVerifying}>\n      {isVerifying ? \"Verifying...\" : \"Verify Receipt\"}\n    </button>\n  );\n}\n```\n\n## API Overview\n\n### Hooks\n\n| Export | Kind | Description |\n|--------|------|-------------|\n| `useVerification()` | hook | Verify signed receipts against public keys |\n| `useChainVerification()` | hook | Verify attestation chains (Rekor, EAS, Solana) |\n| `useVerificationContext()` | hook | Access shared verification state from provider |\n\n### Components\n\n| Export | Kind | Description |\n|--------|------|-------------|\n| `VerificationProvider` | component | Context provider, initializes WASM once |\n| `VerificationBadge` | component | Compact pass/fail badge with optional details |\n| `VerificationDetails` | component | Full verification breakdown (signatures, chains) |\n\n### Hook Details\n\n#### `useVerification()`\n\n```typescript\nconst {\n  isInitializing,  // WASM loading\n  isInitialized,   // WASM ready\n  isVerifying,     // Verification in progress\n  result,          // VerificationResult | null\n  error,           // Error | null\n  verify,          // (receipt, publicKeys) => Promise<VerificationResult>\n  reset,           // () => void\n} = useVerification();\n```\n\n#### `useChainVerification()`\n\n```typescript\nconst {\n  isVerifying,\n  chain,           // AttestationChain | null\n  error,\n  verifyChain,     // (receipt, options?) => Promise<AttestationChain>\n  reset,\n} = useChainVerification();\n\n// Verify across Rekor, EAS (Base), and Solana\nawait verifyChain(receipt, {\n  rekor: true,\n  eas: { chainId: 8453 },\n  solana: { cluster: \"mainnet-beta\" },\n});\n```\n\n## Development\n\n```bash\ncd packages/witness-react\nbun run build       # tsc → dist/\nbun run typecheck   # tsc --noEmit\nbun test            # vitest\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","homepage":"https://github.com/backbay/backbay-sdk/tree/main/packages/witness-react#readme","repository":{"type":"git","url":"git+https://github.com/backbay/backbay-sdk.git","directory":"packages/witness-react"},"author":{"name":"Backbay","email":"dev@backbay.industries"},"bugs":{"url":"https://github.com/backbay/backbay-sdk/issues"}}