{"_id":"@cantor8/wallet-connect-sdk","_rev":"7-a1f6a9678fabb051e00cab32b29067f3","name":"@cantor8/wallet-connect-sdk","dist-tags":{"alpha":"0.3.0-alpha.2","latest":"0.6.0"},"versions":{"0.3.0-alpha.1":{"name":"@cantor8/wallet-connect-sdk","version":"0.3.0-alpha.1","keywords":["wallet","connect","canton","c8","dapp","sdk"],"author":{"name":"C8 / Cantor8"},"license":"MIT","_id":"@cantor8/wallet-connect-sdk@0.3.0-alpha.1","maintainers":[{"name":"cantor8","email":"base@cantor8.tech"}],"dist":{"shasum":"50c4e7519aca933cced9083a6ab5de0f506bb6f8","tarball":"https://registry.npmjs.org/@cantor8/wallet-connect-sdk/-/wallet-connect-sdk-0.3.0-alpha.1.tgz","fileCount":21,"integrity":"sha512-deFcGSdEAek5Cedch380zP79tC9LQ46W+OKst1LPd2u1G20kdIkpudll8kFRMSwhRd42aq9T+MVWCt/VyP34Aw==","signatures":[{"sig":"MEUCIAcNzX1T+GYMCEGDh5hjO7U0rsUh16sMYF0tC9rDP2pKAiEAj8LtEuJeIRK+P+iTqpz3LnCSxugn+dn325lyr7mcgEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56610},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","browser":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"20903f6a3741c3d3b70ab0bf47d5df67fee0f541","scripts":{"pack":"npm run build && npm pack","build":"npm run clean && rollup -c && tsc --emitDeclarationOnly","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cantor8","email":"base@cantor8.tech"},"_npmVersion":"11.12.1","description":"C8 Wallet Connect SDK for dApp developers: postMessage API to interact with C8 Wallet.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.60.2","typescript":"^6.0.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^1.0.0","rollup-plugin-esbuild":"^6.1.0","@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/wallet-connect-sdk_0.3.0-alpha.1_1779375834329_0.22755998610438155","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-alpha.2":{"name":"@cantor8/wallet-connect-sdk","version":"0.3.0-alpha.2","keywords":["wallet","connect","canton","c8","dapp","sdk"],"author":{"name":"C8 / Cantor8"},"license":"MIT","_id":"@cantor8/wallet-connect-sdk@0.3.0-alpha.2","maintainers":[{"name":"cantor8","email":"base@cantor8.tech"}],"dist":{"shasum":"758e1c6955d1fcc9eac1af0f55e589e31bca33d9","tarball":"https://registry.npmjs.org/@cantor8/wallet-connect-sdk/-/wallet-connect-sdk-0.3.0-alpha.2.tgz","fileCount":21,"integrity":"sha512-p4hs7kg9XNvxKYFSUGfWqOHcOUUCRzgUHP5vVc0l5u5z7pU1AlzVKngtWkAnS3m55Lhn7QF4JOzv4UiwKYi88Q==","signatures":[{"sig":"MEUCIQDNqIjQ67tSWWfJO1Vy4QQcddEBTbSBXavfQdfLB0lREAIgKFYo8HSCI/3JZFb63GMz0jXZ1aPidx7sUCitqZCBygU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56606},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","browser":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"66daa5e2b38c5c38f8f4f9e08d5a7b7e42c948cc","scripts":{"pack":"npm run build && npm pack","build":"npm run clean && rollup -c && tsc --emitDeclarationOnly","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cantor8","email":"base@cantor8.tech"},"_npmVersion":"11.12.1","description":"C8 Wallet Connect SDK for dApp developers: postMessage API to interact with C8 Wallet.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"rollup":"^4.60.2","typescript":"^6.0.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^1.0.0","rollup-plugin-esbuild":"^6.1.0","@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/wallet-connect-sdk_0.3.0-alpha.2_1779723944466_0.9736612276224541","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@cantor8/wallet-connect-sdk","version":"0.3.0","keywords":["wallet","connect","canton","c8","dapp","sdk"],"author":{"name":"C8 / Cantor8"},"license":"MIT","_id":"@cantor8/wallet-connect-sdk@0.3.0","maintainers":[{"name":"cantor8","email":"base@cantor8.tech"}],"dist":{"shasum":"ce0d8ce34284fc0c0a6cefcd6aa5adfb33238f36","tarball":"https://registry.npmjs.org/@cantor8/wallet-connect-sdk/-/wallet-connect-sdk-0.3.0.tgz","fileCount":21,"integrity":"sha512-mp3Rt4r/Ax2sjPTADyxbeIDXzMY4IDclGjZ3I2sV0SxMOXXE7c/R7YiZex4gbYfU8McTF9Z1d4aj1EaShKJOag==","signatures":[{"sig":"MEUCIQDqHPMYwleZIp+LSNJyDB1nv5EKoPiotd7DEFIBiw3dTAIgTo2ZseOSMeuL7jjJ6FRzemXRiRSYUNOpkIBcUKgvbms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59827},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","browser":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"39ccce99f891adb746a94c2fd1a9ac125114240c","scripts":{"pack":"npm run build && npm pack","build":"npm run clean && rollup -c && tsc --emitDeclarationOnly","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cantor8","email":"base@cantor8.tech"},"_npmVersion":"11.12.1","description":"C8 Wallet Connect SDK for dApp developers: postMessage API to interact with C8 Wallet.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.60.2","typescript":"^6.0.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^1.0.0","rollup-plugin-esbuild":"^6.1.0","@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/wallet-connect-sdk_0.3.0_1780644301627_0.45517146576557455","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@cantor8/wallet-connect-sdk","version":"0.4.0","keywords":["wallet","connect","canton","c8","dapp","sdk"],"author":{"name":"C8 / Cantor8"},"license":"MIT","_id":"@cantor8/wallet-connect-sdk@0.4.0","maintainers":[{"name":"cantor8","email":"base@cantor8.tech"}],"dist":{"shasum":"bfb0fa5b197202cfacf4b1368abcf0cda87c5eed","tarball":"https://registry.npmjs.org/@cantor8/wallet-connect-sdk/-/wallet-connect-sdk-0.4.0.tgz","fileCount":21,"integrity":"sha512-BeSXu4U0S2KfPPjfe0Q/QLpjdOCzLaWOEQK/OBy6qz/g3K32NpSSjNFjgS5GImCc9TQN8k9QjvNYKBWB+RfPRQ==","signatures":[{"sig":"MEYCIQCtoXKlshJqEO4rsgNHpiF+XTKrA+t28R2wEaIjZsVOBAIhAOkr6yDeEFU8dtkfI/ulAPFJAGoindG3x6AzcuXGDCCK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61975},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","browser":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"b638c90cab2786e2208bdba921cd3dd22ec987ff","scripts":{"pack":"npm run build && npm pack","build":"npm run clean && rollup -c && tsc --emitDeclarationOnly","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cantor8","email":"base@cantor8.tech"},"_npmVersion":"11.17.0","description":"C8 Wallet Connect SDK for dApp developers: postMessage API to interact with C8 Wallet.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.60.2","typescript":"^6.0.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^1.0.0","rollup-plugin-esbuild":"^6.1.0","@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/wallet-connect-sdk_0.4.0_1784714839739_0.7189192590973679","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@cantor8/wallet-connect-sdk","version":"0.5.0","keywords":["wallet","connect","canton","c8","dapp","sdk"],"author":{"name":"C8 / Cantor8"},"license":"MIT","_id":"@cantor8/wallet-connect-sdk@0.5.0","maintainers":[{"name":"cantor8","email":"base@cantor8.tech"}],"dist":{"shasum":"4865ce24af41add44b9bb59c582fa340eb2553a3","tarball":"https://registry.npmjs.org/@cantor8/wallet-connect-sdk/-/wallet-connect-sdk-0.5.0.tgz","fileCount":21,"integrity":"sha512-YcsSSzG+3ELhj06+1H2b8ThvoeVk6axn3tjLbLJTmT0ObYgXVlhyyXs2eqXIgQyUN8p8xoLOZKabAWakHE49hA==","signatures":[{"sig":"MEUCIQCzakD3MEY6b0ds+m8uCsaH4G68pDxl2LluGeaHn7vJMwIgCW4Aoi7Oq/b2sVj2+HQoyNv80t93vPVfib72BiVGm8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73404},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","browser":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"86beff8cc82159313de8cd1955d19f4a8a8fd854","scripts":{"pack":"npm run build && npm pack","build":"npm run clean && rollup -c && tsc --emitDeclarationOnly","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cantor8","email":"base@cantor8.tech"},"_npmVersion":"11.17.0","description":"C8 Wallet Connect SDK for dApp developers: postMessage API to interact with C8 Wallet.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.60.2","typescript":"^6.0.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^1.0.0","rollup-plugin-esbuild":"^6.1.0","@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/wallet-connect-sdk_0.5.0_1787143798858_0.0467103413956893","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@cantor8/wallet-connect-sdk","version":"0.5.1","keywords":["wallet","connect","canton","c8","dapp","sdk"],"author":{"name":"C8 / Cantor8"},"license":"MIT","_id":"@cantor8/wallet-connect-sdk@0.5.1","maintainers":[{"name":"cantor8","email":"base@cantor8.tech"}],"dist":{"shasum":"d5966f92274c8cd1adb6cc212d0a5bbd610775ab","tarball":"https://registry.npmjs.org/@cantor8/wallet-connect-sdk/-/wallet-connect-sdk-0.5.1.tgz","fileCount":21,"integrity":"sha512-NkwB9RryAf1dPYdchg9be1BaXgdz/F4cwSek0NHugJUpwuBZCklSbPhxVjpAvzJSra7bdhQb6lbXysipsrjdow==","signatures":[{"sig":"MEUCIQCSSsSxFzkIafdny5UKNrzjR4z8zC/9ln4fvBaK+y1wQwIgagY6Z37Yue+Ax+AAhkxRpOYwd4GKk+iRchyzGRY3HEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73422},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","browser":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"4b81b85615f99485c497f0f0dbe02871e628fe1d","scripts":{"pack":"npm run build && npm pack","build":"npm run clean && rollup -c && tsc --emitDeclarationOnly","clean":"rm -rf dist","prepare":"npm run build","typecheck":"tsc --noEmit"},"_npmUser":{"name":"cantor8","email":"base@cantor8.tech"},"_npmVersion":"11.17.0","description":"C8 Wallet Connect SDK for dApp developers: postMessage API to interact with C8 Wallet.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.60.2","typescript":"^6.0.3","@rollup/plugin-json":"^6.1.0","@rollup/plugin-terser":"^1.0.0","rollup-plugin-esbuild":"^6.1.0","@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/wallet-connect-sdk_0.5.1_1788358358725_0.4460152779881843","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@cantor8/wallet-connect-sdk","version":"0.6.0","description":"C8 Wallet Connect SDK for dApp developers: postMessage API to interact with C8 Wallet.","author":{"name":"C8 / Cantor8"},"license":"MIT","type":"module","sideEffects":false,"main":"./dist/index.cjs","module":"./dist/index.esm.js","types":"./dist/index.d.ts","browser":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs","default":"./dist/index.esm.js"},"./package.json":"./package.json"},"scripts":{"clean":"rm -rf dist","build":"npm run clean && rollup -c && tsc --emitDeclarationOnly","typecheck":"tsc --noEmit","prepare":"npm run build","pack":"npm run build && npm pack"},"keywords":["wallet","connect","canton","c8","dapp","sdk"],"devDependencies":{"@rollup/plugin-commonjs":"^29.0.2","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^16.0.3","@rollup/plugin-terser":"^1.0.0","rollup":"^4.60.2","rollup-plugin-esbuild":"^6.1.0","typescript":"^7.0.2"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"gitHead":"fdd2bd86d033a9d9070e8fb75e6a8813011676fd","_id":"@cantor8/wallet-connect-sdk@0.6.0","_nodeVersion":"24.12.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-Ql75dCt7fMcfkMpnCkxXsdaO5P9yji1eQB2bfyRIrNegqRL9pHPkRa7pxCyTTx5ucXIOBavKOOT8bRq3ygLI6A==","shasum":"50167cee99a0f1f325b15545777b15e168ad2d1a","tarball":"https://registry.npmjs.org/@cantor8/wallet-connect-sdk/-/wallet-connect-sdk-0.6.0.tgz","fileCount":20,"unpackedSize":90834,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCOtDvOAHqZh8y5xO95ITBMVvxrybp2ecBjqMa9/ychvwIgPtSkMMK3B80VhzJeNG4L1lwGy2LknFjGHlqdyyvyhVU="}]},"_npmUser":{"name":"cantor8","email":"base@cantor8.tech"},"directories":{},"maintainers":[{"name":"cantor8","email":"base@cantor8.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wallet-connect-sdk_0.6.0_1789482353931_0.515523054753279"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-21T15:03:54.219Z","modified":"2026-09-15T14:25:54.246Z","0.3.0-alpha.1":"2026-05-21T15:03:54.490Z","0.3.0-alpha.2":"2026-05-25T15:45:44.608Z","0.3.0":"2026-06-05T07:25:01.768Z","0.4.0":"2026-07-22T10:07:19.868Z","0.5.0":"2026-08-19T12:49:59.015Z","0.5.1":"2026-09-02T14:12:38.867Z","0.6.0":"2026-09-15T14:25:54.052Z"},"author":{"name":"C8 / Cantor8"},"license":"MIT","keywords":["wallet","connect","canton","c8","dapp","sdk"],"description":"C8 Wallet Connect SDK for dApp developers: postMessage API to interact with C8 Wallet.","maintainers":[{"name":"cantor8","email":"base@cantor8.tech"}],"readme":"# C8 Wallet Connect SDK\n\nLightweight SDK for dApp developers to integrate the C8 Wallet via a popup window and `postMessage` communication.\n\n## Quick Start\n\n### Installation\n```shell\nnpm i @cantor8/wallet-connect-sdk\n```\n\nImport the provider into your dApp:\n\n```ts\nimport { C8WalletProvider } from \"./provider\";\n```\n\n## Configuration\n\nCreate a new provider instance:\n\n```ts\nconst c8 = new C8WalletProvider({\n  dappUrl: window.location.href,\n  dappName: \"Cantor8 Wallet Connect SDK Demo\",\n  network: \"devnet\",\n});\n```\n\n## Events\n\nYou can subscribe to wallet events using `c8.on()`:\n\n```ts\nc8.on(\"connected\", (e) => console.log(\"Connected\", e));\nc8.on(\"disconnected\", (e) => console.log(\"Disconnected\", e));\nc8.on(\"accountChanged\", (e) => console.log(\"Account's balance changed\", e));\nc8.on(\"txInitiated\", (e) => console.log(\"TX initiated\", e));\nc8.on(\"txChanged\", (e) => console.log(\"TX changed\", e));\n```\n\n## Basic Usage\n\n```ts\nconst c8 = new C8WalletProvider({\n  dappUrl: window.location.href,\n  dappName: \"Cantor8 Wallet Connect SDK Demo\",\n  network: \"devnet\",\n});\n\nawait c8.connect();\n\n// Instruments list type: InstrumentListPayload\nconst instruments = await c8.getInstruments();\nconsole.log(\"Instruments\", instruments);\n\nconst firstInstrumentId = instruments.instruments[0]?.instrumentId;\n\n// Accounts list type: AccountListPayload\nconst accounts = await c8.getAccounts(firstInstrumentId);\nconsole.log(\"Accounts\", accounts);\n\nconst senderPartyId = accounts.accounts[0]?.partyId;\n\n// Registration and validator-managed contract setup state\n// Return type: RegisterStatusResponse\nconst contractsSetupState = await c8.getContractsSetupState();\nconsole.log(\"Contracts setup state\", contractsSetupState);\n\nconst senderHoldingInstrumentId =\n  accounts.accounts[0]?.holdings[0]?.instrumentId || firstInstrumentId;\n\n// Submit a transfer\n// SubmitTransferResultPayload\nconst res = await c8.send({\n  senderPartyId,\n  instrumentId: senderHoldingInstrumentId,\n  amount: 1.23,\n  receiverPartyId: \"Party::Receiver\",\n});\n\nconsole.log(\"Send result\", res); // { txId }\n\n// Create a swap offer\nconst swapRes = await c8.createSwapOffer({\n  partyId: senderPartyId,\n  commandId: \"command-\" + Date.now(), // optional\n  swap: {\n    swapId: \"swap-\" + Date.now(),\n    acceptorPartyId: \"Party::Acceptor\",\n    creatorLegs: [\n      {\n        receiver: \"Party::Acceptor\",\n        instrument: {\n          admin: \"Admin::Out\",\n          id: senderHoldingInstrumentId,\n        },\n        amount: \"1.0\",\n        legId: \"creator-leg-1\",\n        reason: \"Swap offer\", // optional\n      },\n    ],\n    acceptorLegs: [\n      {\n        receiver: senderPartyId,\n        instrument: {\n          admin: \"Admin::In\",\n          id: \"Inst::In\",\n        },\n        amount: \"2.0\",\n        legId: \"acceptor-leg-1\",\n      },\n    ],\n    creatorTransferLegs: [],\n    settleBefore: new Date(Date.now() + 3600 * 1000).toISOString(),\n    meta: {},\n  },\n});\n\nconsole.log(\"Swap offer result\", swapRes); // { txId }\n\n// Sign an arbitrary string, optionally for a specific party\nconst signature = await c8.signMessage(\"Message to sign\", senderPartyId);\nconsole.log(\"Signature\", signature);\n```\n\n## API Reference\n\n### Public API: `C8WalletProvider`\n\n| Method                | Parameters                                 | Return Type                                               |\n| --------------------- | ------------------------------------------ | --------------------------------------------------------- |\n| `connect()`           | None                                       | `Promise<void>`                                           |\n| `disconnect()`        | None                                       | `Promise<void>`                                           |\n| `status()`            | None                                       | `Promise<{ connected: boolean; walletVersion?: string }>` |\n| `getContractsSetupState()` | None                                  | `Promise<RegisterStatusResponse>`                         |\n| `getInstruments()`    | None                                       | `Promise<InstrumentListPayload>`                          |\n| `getActiveContracts()` | `input?: GetActiveContractsInput` | `Promise<ActiveContractsPayload>` |\n| `getAccounts()`       | `instrumentId?: string`                    | `Promise<AccountListPayload>`                             |\n| `send()`              | `input: SendInput`                         | `Promise<SubmitTransferResultPayload>`                    |\n| `createSwapOffer()`   | `input: { partyId, swap, commandId? }`     | `Promise<SubmitTransferResultPayload>`                    |\n| `signMessage()`       | `message: string, partyId?: string`         | `Promise<string>`                                         |\n| `signAndExecute()`    | `input: SignAndExecuteInput`               | `Promise<void>`                                           |\n| `checkTxStatusById()` | `input: { txId: string }`                  | `Promise<TransferStatusResponsePayload>`                  |\n| `on()`                | `event: T, cb: Listener<C8EventByType<T>>` | `() => boolean`                                           |\n\n### `getContractsSetupState()`\n\nReturns the current account's registration, confirmation, and validator-managed\ncontract setup state:\n\n```ts\nconst state = await c8.getContractsSetupState();\n\nif (state.isRegistered && state.isConfirmed) {\n  console.log(\"Preapproval ready:\", state.isPreapprovalSet);\n  console.log(\"Auto-accept ready:\", state.isAutoAcceptSet);\n  console.log(\"USDC bridge ready:\", state.isUsdcBridgeSet);\n  console.log(\n    \"Withdrawal delegation ready:\",\n    state.isWithdrawalDelegationSet,\n  );\n  console.log(\"Merge delegation ready:\", state.isMergeDelegationSet);\n}\n```\n\nThe returned `RegisterStatusResponse` also includes an in-progress flag for each\ncontract setup operation: `isPreapprovalInProgress`,\n`isAutoAcceptInProgress`, `isUsdcBridgeSetupInProgress`,\n`isWithdrawalDelegationInProgress`, and `isMergeDelegationInProgress`.\n\n### `getActiveContracts()`\n\nReads Scanner ACS using the Wallet App's authenticated account:\n\n```ts\nconst contracts = await c8.getActiveContracts({\n  templateIds: [\"package-id:Module:Template\"],\n  includeCreatedEventBlob: true,\n  limit: 10000,\n});\nconsole.log(contracts);\n```\n\nFor direct popup-provider reads, optional `partyId` must match the connected primary\naccount; the stored token belongs to that account. Embedded Wallet App reads can\nselect an account owned by the wallet. The primary account is used by default.\n`interfaceIds` filters interfaces. `activeAtOffset` requests a\npoint-in-time snapshot using a nonnegative signed 64-bit decimal **string**.\nOffsets beyond Scanner ingestion are rejected. `limit` must be a positive integer\nand defaults to 10000. `paginated` defaults to `true` so the first page is ordered\nby `contract_id` even when `after` is absent. Pass a nonempty `after` contract ID\nunchanged to request rows after it; explicit `paginated: false` is also forwarded.\nScanner returns at most `limit` rows without completeness metadata. Base contract\nand interface rows can share a `contract_id`; if the limit splits that group,\nthe next `after` request skips its remaining rows. These parameters do not\nguarantee complete traversal.\n\nThe result is the Scanner contract array with its original field names and\ncreated-event blobs. JSON numbers use normal JavaScript numeric precision.\nAfter `connect()`, the popup provider calls the primary account's Scanner endpoint\ndirectly with the stored wallet token, even after the popup closes. No additional\ntoken is supplied to this method. Older sessions missing `validator.scannerApiUrl`\nmust disconnect and reconnect. Embedded providers retain the existing Wallet App RPC.\n\n### `send()` Input\n\n```ts\n{\n  senderPartyId: string;\n  instrumentId: string;\n  amount: number;\n  receiverPartyId: string;\n  memo?: string;\n  metadata?: Record<string, string>;\n}\n```\n\n### `createSwapOffer()` Input\n\n```ts\n{\n  partyId: string;\n  commandId?: string;\n  swap: {\n    swapId: string;\n    acceptorPartyId: string;\n    creatorLegs: Array<{\n      receiver: string;\n      instrument: {\n        admin: string;\n        id: string;\n      };\n      amount: string;\n      legId: string;\n      reason?: string;\n    }>;\n    acceptorLegs: Array<{\n      receiver: string;\n      instrument: {\n        admin: string;\n        id: string;\n      };\n      amount: string;\n      legId: string;\n      reason?: string;\n    }>;\n    creatorTransferLegs: Array<{\n      receiver: string;\n      instrument: {\n        admin: string;\n        id: string;\n      };\n      amount: string;\n      legId: string;\n      reason?: string;\n    }>;\n    settleBefore: string;\n    meta: Record<string, string>;\n  };\n}\n```\n\n`partyId` identifies the party creating the offer. `acceptorPartyId` identifies\nthe party allowed to accept it. Amounts are decimal strings, and\n`settleBefore` is an ISO 8601 timestamp. The method resolves to `{ txId }` after\nthe wallet submits the offer.\n\n### `signAndExecute()` Input\n\n```ts\n{\n  note: string;\n  partyId: string;\n  commandId: string;\n  commandsJson: string;\n  disclosedContracts: string;\n}\n```\n\n### `signMessage()`\n\nSigns an arbitrary string and returns its signature. The party ID is optional:\n\n```ts\nconst signature = await c8.signMessage(\"Message to sign\", partyId);\n```\n\n## Events Reference\n\nUse `c8.on(eventType, callback)` to listen for changes emitted by the wallet.\n\n| Event Type          | Payload Properties                                                                      | Description                                                                 |\n| ------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |\n| `connected`         | `meta?: Json`                                                                           | Fired when the wallet successfully connects.                                |\n| `disconnected`      | `reason?: string`, `meta?: Json`                                                        | Fired when the session disconnects.                                         |\n| `txInitiated`       | `txId?: string`, `meta?: Json`                                                          | Fired when a transaction request is initiated.                              |\n| `txChanged`         | `txId: string`, `status: \"pending\" \\| \"confirmed\" \\| \"failed\" \\| string`, `meta?: Json` | Fired when a transaction's completion status updates.                       |\n| `accountChanged`    | `accounts: AccountInfoPayload[]`, `meta?: Json`                                         | Fired when internal account asset holdings scale or modify.                 |\n| `themeChanged`      | `theme: \"dark\" \\| \"light\"`, `meta?: Json`                                               | Fired when the wallet interface changes its UI display theme.               |\n| `operationCanceled` | `reason: string`, `meta?: Json`                                                         | Fired when an action or modal interface is explicitly rejected by the user. |\n\n## Unsubscribing from Events\n\nThe `on()` method returns an unsubscribe function:\n\n```ts\nconst unsubscribe = c8.on(\"connected\", (event) => {\n  console.log(\"Connected\", event);\n});\n\nunsubscribe();\n```\n\n## License\n\nMIT\n\n### Ledger updates\n\n`getLedgerUpdates` reads one page from Scanner's authenticated `/ledger-nodes`\nfeed. External providers use direct HTTP with the stored session token and the\nprimary account’s configured Scanner URL, including after the wallet popup closes.\nEmbedded providers use the existing App RPC and can select another owned account.\nLike ACS, old sessions without Scanner metadata must disconnect and reconnect.\n\n```ts\nconst page = await provider.getLedgerUpdates({\n  partyId, // optional; defaults to the primary wallet account\n  templateIds: [\"package:Module:Template\"],\n  limit: 500, // 1–1000\n});\nconst nextPage = page.nextCursor\n  ? await provider.getLedgerUpdates({ partyId, cursor: page.nextCursor,\n      templateIds: [\"package:Module:Template\"] })\n  : undefined;\n```\n\nThe result is Scanner's `{ nodes, nextCursor?, bounds?, gap?, complete }` page,\nwith typed `LedgerNode` fields and unchanged JSON event payloads. Optional `eventType` (`created` or `exercised`) and\n`consuming` filters pass through. Reuse `nextCursor` verbatim with the same\nfilters: it retains exact offsets even beyond JavaScript's safe integer range.\nTo start at an offset, use `\"<offset>:-2147483648\"`. Other numeric JSON fields\nhave ordinary JavaScript precision.\n\nAn empty page can still advance the cursor. `complete` means the current Scanner\nfetch frontier was reached; new updates may arrive later. `gap` reports lost\nhistory and must not be treated as an empty successful history. Requests before\nretained history fail. This is a paginated Scanner feed, not Ledger's streaming\n`/v2/updates` response. Scanner must enable this feed and support user-token party\nauthorization (PR #125); the Wallet App must support the new RPC.\n","readmeFilename":"README.md"}