{"_id":"@cygnus-wealth/evm-integration","_rev":"8-1092fd40f6e4e17a1170a6e2033c0766","name":"@cygnus-wealth/evm-integration","dist-tags":{"latest":"1.1.0"},"versions":{"0.1.0":{"name":"@cygnus-wealth/evm-integration","version":"0.1.0","keywords":["evm","web3","cygnus-wealth"],"author":{"name":"Your Name"},"license":"MIT","_id":"@cygnus-wealth/evm-integration@0.1.0","maintainers":[{"name":"linuxninja39","email":"jacob@s56.net"}],"dist":{"shasum":"8a07bad978b654eb8ebe3b898a0f706265f50b88","tarball":"https://registry.npmjs.org/@cygnus-wealth/evm-integration/-/evm-integration-0.1.0.tgz","fileCount":26,"integrity":"sha512-YUDql2piXHmqb8mRyWx93JUP4klB+DyBpF/W0pvBzmxWB/h/25E670HlYb0qOluP22NqKt6XKOzJZKi6KmMqWw==","signatures":[{"sig":"MEYCIQDw8udymK7PYoYc8zJD+mpKoIn1J2B8Rt5kdTg+dieUMQIhAJGKdCLCDfIwGebVdXNpNihj4q8syMLQlbkORdL5mvcF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":444084},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c18a93c295b29356e2c247d34bac6e68f2df884c","scripts":{"test":"vitest","build":"tsc","test:ui":"vitest --ui","prepublishOnly":"npm run build"},"_npmUser":{"name":"linuxninja39","email":"jacob@s56.net"},"_npmVersion":"11.4.2","description":"Read-only EVM integration for CygnusWealth portfolio aggregation","directories":{},"_nodeVersion":"24.4.0","dependencies":{"viem":"^2.32.1","wagmi":"^2.16.0","ethers":"^6.15.0"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","react":"^19.0.0","vitest":"^3.2.4","react-dom":"^19.0.0","@vitest/ui":"^3.2.4","typescript":"^5.8.3","@types/node":"^24.0.15","@types/react":"^19.1.8","@types/react-dom":"^19.1.6","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.7.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/evm-integration_0.1.0_1753046432058_0.0048928452613790085","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cygnus-wealth/evm-integration","version":"0.2.0","keywords":["evm","web3","cygnus-wealth"],"author":{"name":"Your Name"},"license":"MIT","_id":"@cygnus-wealth/evm-integration@0.2.0","maintainers":[{"name":"linuxninja39","email":"jacob@s56.net"}],"dist":{"shasum":"9b5d0630ead3ffbb3e945f2b580c6ef165789105","tarball":"https://registry.npmjs.org/@cygnus-wealth/evm-integration/-/evm-integration-0.2.0.tgz","fileCount":52,"integrity":"sha512-vLCiSQlaMv9szvDQLDuv2lipjkCO/cwWJqytVmFdzsSgALyl5wxdq49gdpEL6rmNUiI7IkTGjotn9gjEsxBB/A==","signatures":[{"sig":"MEUCIQC5/v42xgytUvRPwMIogXXfg+KwsyL3ysl1YM5F2LS9GgIgGOL7csaY1A1cf3wP+TSKh4i9p0ZdNKdMg7SI5z+vOl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":561661},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5697005bce2700cdd8ed01576db48fe7f2a86fb2","scripts":{"test":"vitest","build":"tsc","test:ui":"vitest --ui","prepublishOnly":"npm run build"},"_npmUser":{"name":"linuxninja39","email":"jacob@s56.net"},"_npmVersion":"11.4.2","description":"Read-only EVM integration for CygnusWealth portfolio aggregation","directories":{},"_nodeVersion":"24.4.1","dependencies":{"viem":"^2.32.1","wagmi":"^2.16.0","ethers":"^6.15.0","@cygnus-wealth/data-models":"file:../data-models"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","react":"^19.0.0","vitest":"^3.2.4","react-dom":"^19.0.0","@vitest/ui":"^3.2.4","typescript":"^5.8.3","@types/node":"^24.0.15","@types/react":"^19.1.8","@types/react-dom":"^19.1.6","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.7.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/evm-integration_0.2.0_1753568441615_0.7124231068394735","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@cygnus-wealth/evm-integration","version":"0.3.0","keywords":["evm","web3","cygnus-wealth"],"author":{"name":"Your Name"},"license":"MIT","_id":"@cygnus-wealth/evm-integration@0.3.0","maintainers":[{"name":"linuxninja39","email":"jacob@s56.net"}],"dist":{"shasum":"69676ce23e333a096916707e1ee3b0268dded621","tarball":"https://registry.npmjs.org/@cygnus-wealth/evm-integration/-/evm-integration-0.3.0.tgz","fileCount":64,"integrity":"sha512-nJ3l+GQYRIxB2NFFUIcw0F3cSgqKwLEdpbH42W09yngNOz5C2wOcb+Uk+Xf/i/3iNCRYRh0/tDw+YqXxr21vDQ==","signatures":[{"sig":"MEUCIHCD+FvGsa2K65HucUIGyEmtXaNKcue2jTUhdvCPNSvAAiEAtv9/Ho8nHD27OoazuALAkdVAJkW/vW5RWc3POcj0bk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":651278},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ab5d7fadfa3bcf54aa10709805c6262e93d6b256","scripts":{"test":"vitest","build":"tsc","test:ui":"vitest --ui","test:e2e":"vitest run src/e2e/balanceVerification.test.tsx","prepublishOnly":"npm run build","verify:balance":"tsx src/e2e/verifyBalance.ts","verify:websocket":"tsx src/e2e/websocketVerification.ts"},"_npmUser":{"name":"linuxninja39","email":"jacob@s56.net"},"_npmVersion":"11.4.2","description":"Read-only EVM integration for CygnusWealth portfolio aggregation","directories":{},"_nodeVersion":"24.4.1","dependencies":{"viem":"^2.32.1","wagmi":"^2.16.0","ethers":"^6.15.0","@cygnus-wealth/data-models":"file:../data-models"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","jsdom":"^26.1.0","react":"^19.0.0","vitest":"^3.2.4","react-dom":"^19.0.0","@vitest/ui":"^3.2.4","typescript":"^5.8.3","@types/node":"^24.0.15","@types/react":"^19.1.8","@types/react-dom":"^19.1.6","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.7.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/evm-integration_0.3.0_1753577205281_0.592816277943691","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@cygnus-wealth/evm-integration","version":"0.4.0","keywords":["evm","web3","cygnus-wealth"],"author":{"name":"Jacob Boswell"},"license":"MIT","_id":"@cygnus-wealth/evm-integration@0.4.0","maintainers":[{"name":"linuxninja39","email":"jacob@s56.net"}],"dist":{"shasum":"bcc478a76b4bf6948fc1dc2626796f3f35d24c3e","tarball":"https://registry.npmjs.org/@cygnus-wealth/evm-integration/-/evm-integration-0.4.0.tgz","fileCount":76,"integrity":"sha512-iOgFR2rNw10VyzFpr55l7Z3JaUlwRMdsj0gRAomSNDWeJBfo27IGmGwHoERj4D5jKWzQyUiIb0lB0AE2brj9Xw==","signatures":[{"sig":"MEYCIQCnM+rgflCYvPqx/5iAoDwaDoj44o5doGt/0skTJ3PSLQIhANDThQ3Mpk+rFZUlfAYfWc+WhtvE/ZYpjQspm3U8Mlm+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699912},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f974d728f35f05a41f7e6de5dc11d16dc07fdfdc","scripts":{"test":"vitest","build":"tsc","test:ui":"vitest --ui","test:e2e":"vitest run src/e2e/balanceVerification.test.tsx","prepublishOnly":"npm run build","verify:balance":"tsx src/e2e/verifyBalance.ts","verify:websocket":"tsx src/e2e/websocketVerification.ts"},"_npmUser":{"name":"linuxninja39","email":"jacob@s56.net"},"_npmVersion":"11.4.2","description":"Read-only EVM integration for CygnusWealth portfolio aggregation","directories":{},"_nodeVersion":"24.4.1","dependencies":{"viem":"^2.32.1","wagmi":"^2.16.0","ethers":"^6.15.0","@cygnus-wealth/data-models":"file:../data-models"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","jsdom":"^26.1.0","react":"^19.0.0","vitest":"^3.2.4","react-dom":"^19.0.0","@vitest/ui":"^3.2.4","typescript":"^5.8.3","@types/node":"^24.0.15","@types/react":"^19.1.8","@types/react-dom":"^19.1.6","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.7.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/evm-integration_0.4.0_1753721190897_0.5794454690688968","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@cygnus-wealth/evm-integration","version":"0.5.0","keywords":["evm","web3","cygnus-wealth"],"author":{"name":"Jacob Boswell"},"license":"MIT","_id":"@cygnus-wealth/evm-integration@0.5.0","maintainers":[{"name":"linuxninja39","email":"jacob@s56.net"}],"dist":{"shasum":"86a147a9ca6709723dea83943f35089ab0191a3f","tarball":"https://registry.npmjs.org/@cygnus-wealth/evm-integration/-/evm-integration-0.5.0.tgz","fileCount":108,"integrity":"sha512-6U3UgEfDUcPcYaNR0Xrebr4faJk7/c4veheZhPYzg4XXs3IwcujAWR6NooW0Ol9HPex9FHJhxWGNeapl3fJj8Q==","signatures":[{"sig":"MEUCIHcKCmuXa7qXuj/2mZoMbDZ5qB9XeT18NK7R1w9x+OEIAiEAsTt14Kvp1cBEuA19R3/w9hKJGLyyahOHTGfsr7OoIkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":795558},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e08fc59c6ddb9fe0a6222c69189abcd1d72b9a7e","scripts":{"test":"vitest","build":"tsc","test:ui":"vitest --ui","test:e2e":"vitest run src/e2e/balanceVerification.test.tsx","prepublishOnly":"npm run build","verify:balance":"tsx src/e2e/verifyBalance.ts","verify:websocket":"tsx src/e2e/websocketVerification.ts"},"_npmUser":{"name":"linuxninja39","email":"jacob@s56.net"},"_npmVersion":"11.5.2","description":"Read-only EVM integration for CygnusWealth portfolio aggregation","directories":{},"_nodeVersion":"24.5.0","dependencies":{"viem":"^2.32.1","wagmi":"^2.16.0","ethers":"^6.15.0","@cygnus-wealth/data-models":"file:../data-models"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","jsdom":"^26.1.0","react":"^19.0.0","vitest":"^3.2.4","react-dom":"^19.0.0","@vitest/ui":"^3.2.4","typescript":"^5.8.3","@types/node":"^24.0.15","@types/react":"^19.1.8","@types/react-dom":"^19.1.6","@testing-library/dom":"^10.4.0","@vitejs/plugin-react":"^4.7.0","@testing-library/react":"^16.3.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/evm-integration_0.5.0_1755563056069_0.18949601156294937","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@cygnus-wealth/evm-integration","version":"1.0.0","keywords":["evm","web3","cygnus-wealth"],"author":{"name":"Jacob Boswell"},"license":"MIT","_id":"@cygnus-wealth/evm-integration@1.0.0","maintainers":[{"name":"linuxninja39","email":"jacob@s56.net"}],"dist":{"shasum":"80b0d5b1cab3f2d3404ec6dedd718038e163d15d","tarball":"https://registry.npmjs.org/@cygnus-wealth/evm-integration/-/evm-integration-1.0.0.tgz","fileCount":75,"integrity":"sha512-xgNdgfWxD+zwE6nDbYGpoASoBJJzGl0BvDxT4a1lj6qizXPZSiYRL4U1TLqjcMvJ9pGk/OtnNyAEOiYZ4VIqTw==","signatures":[{"sig":"MEYCIQDtN2DAZMhGurDRgcIJz5nSFoEQascPA1CaszCs1h1J3wIhAMRj02cIPOq8elgYNQ59s/0lFkD/CfbGgt+dJo80T5JG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":936382},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f7b3545f995e3f7be1a6bb55d12447432d130ea4","scripts":{"test":"vitest","build":"tsc","dev:ui":"cd test-ui && npm install && npm run dev","test:ui":"vitest --ui","test:e2e":"vitest run src/e2e/balanceVerification.test.tsx","prepublishOnly":"npm run build","verify:balance":"tsx src/e2e/verifyBalance.ts","verify:websocket":"tsx src/e2e/websocketVerification.ts"},"_npmUser":{"name":"linuxninja39","email":"jacob@s56.net"},"_npmVersion":"11.5.2","description":"Framework-agnostic TypeScript library for read-only EVM blockchain data access","directories":{},"_nodeVersion":"24.7.0","dependencies":{"viem":"^2.32.1","@cygnus-wealth/data-models":"file:../data-models"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.8.3","@types/node":"^24.0.15"},"_npmOperationalInternal":{"tmp":"tmp/evm-integration_1.0.0_1757199101630_0.1899179507210591","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@cygnus-wealth/evm-integration","version":"1.0.1","keywords":["evm","web3","cygnus-wealth"],"author":{"name":"Jacob Boswell"},"license":"MIT","_id":"@cygnus-wealth/evm-integration@1.0.1","maintainers":[{"name":"linuxninja39","email":"jacob@s56.net"}],"dist":{"shasum":"4e08e2176537d649d64904d15cbe6e89e144236c","tarball":"https://registry.npmjs.org/@cygnus-wealth/evm-integration/-/evm-integration-1.0.1.tgz","fileCount":166,"integrity":"sha512-HkciylDFr8tNjvQyOUcEqU0FOhqmgmR7cr3HLB+nQCmahGoem43JGVFQCtFmsL/QDOoVWBe75H/v6wxR9eOg7A==","signatures":[{"sig":"MEUCIQD6zyw9XByrtqVEyv/UCwnkBEXfujtREAg72rertrRERQIgWkC63ZYwP6Wxd2cBg5jw8sB+a7rRU2l4KBSvoHbEimE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1713949},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e009b4ee3f6380e5ea01098e5c198a8c6058c89e","scripts":{"test":"vitest","build":"tsc","dev:ui":"cd test-ui && npm install && npm run dev","test:ui":"vitest --ui","test:e2e":"vitest run src/e2e/balanceVerification.test.tsx","prepublishOnly":"npm run build","verify:balance":"tsx src/e2e/verifyBalance.ts","verify:websocket":"tsx src/e2e/websocketVerification.ts"},"_npmUser":{"name":"linuxninja39","email":"jacob@s56.net"},"_npmVersion":"11.6.0","description":"Framework-agnostic TypeScript library for read-only EVM blockchain data access","directories":{},"_nodeVersion":"22.19.0","dependencies":{"viem":"^2.32.1","@cygnus-wealth/data-models":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^3.2.4","@vitest/ui":"^3.2.4","typescript":"^5.8.3","@types/node":"^24.0.15"},"_npmOperationalInternal":{"tmp":"tmp/evm-integration_1.0.1_1760487818360_0.11940615285362166","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@cygnus-wealth/evm-integration","version":"1.1.0","description":"Framework-agnostic TypeScript library for read-only EVM blockchain data access","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"}},"scripts":{"build":"tsup","test":"vitest","test:ui":"vitest --ui","test:e2e":"vitest run src/registry/ChainRegistry.e2e.test.ts","verify:balance":"tsx src/e2e/verifyBalance.ts","verify:websocket":"tsx src/e2e/websocketVerification.ts","demo":"cd demo-ui && npm install && npm run dev","dev:ui":"cd test-ui && npm install && npm run dev","prepublishOnly":"npm run build"},"keywords":["evm","web3","cygnus-wealth"],"author":{"name":"Jacob Boswell"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Cygnus-Wealth/evm-integration.git"},"publishConfig":{"access":"public"},"devDependencies":{"@types/node":"^24.0.15","@vitest/ui":"^3.2.4","tsup":"^8.5.0","tsx":"^4.7.0","typescript":"^5.8.3","vitest":"^3.2.4"},"dependencies":{"@cygnus-wealth/data-models":"^1.1.0","viem":"^2.32.1"},"gitHead":"135798a8220e0d876a982be92cd4ee55ad3d17db","_id":"@cygnus-wealth/evm-integration@1.1.0","bugs":{"url":"https://github.com/Cygnus-Wealth/evm-integration/issues"},"homepage":"https://github.com/Cygnus-Wealth/evm-integration#readme","_nodeVersion":"20.20.0","_npmVersion":"11.10.0","dist":{"integrity":"sha512-vjJdJ+4xxbbg7P4odXPXVVNilMb8I1mhPhwZg1ivKS1GO6290tDkJfheJvOcHZAfWU9uDIcrsMYY79ia+2YeIQ==","shasum":"04de28e2297914f8f9e9b89789a5393e4ed43ead","tarball":"https://registry.npmjs.org/@cygnus-wealth/evm-integration/-/evm-integration-1.1.0.tgz","fileCount":127,"unpackedSize":1840710,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cygnus-wealth%2fevm-integration@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA8NLA2NXFArT/hnoZM+5YUQxZO2GevvZkUk6ysyHQSPAiEAoKLktyRFrE4XwpRvnPox6fQkNXraeIt7YIRLmB2vIVg="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f219dde7-9d70-4619-9697-f6c2510059bb"}},"directories":{},"maintainers":[{"name":"linuxninja39","email":"jacob@s56.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/evm-integration_1.1.0_1771350251351_0.12260278221842413"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-20T21:20:31.942Z","modified":"2026-02-17T17:44:11.825Z","0.1.0":"2025-07-20T21:20:32.286Z","0.2.0":"2025-07-26T22:20:41.799Z","0.3.0":"2025-07-27T00:46:45.541Z","0.4.0":"2025-07-28T16:46:31.095Z","0.5.0":"2025-08-19T00:24:16.281Z","1.0.0":"2025-09-06T22:51:41.797Z","1.0.1":"2025-10-15T00:23:38.617Z","1.1.0":"2026-02-17T17:44:11.524Z"},"author":{"name":"Jacob Boswell"},"license":"MIT","keywords":["evm","web3","cygnus-wealth"],"description":"Framework-agnostic TypeScript library for read-only EVM blockchain data access","maintainers":[{"name":"linuxninja39","email":"jacob@s56.net"}],"readme":"# @cygnus-wealth/evm-integration\n\nFramework-agnostic TypeScript library for read-only EVM blockchain data access. Returns all data in standardized `@cygnus-wealth/data-models` format.\n\n## 🚀 Quick Start - Live Demo\n\n**Want to see it in action? Run the live demo with one command:**\n\n```bash\nnpm run demo\n```\n\nThis opens a web UI where you can:\n- ✅ Connect your MetaMask wallet\n- ✅ See live balance updates from Sepolia testnet via WebSocket\n- ✅ Watch balances change in real-time (updates on every new block)\n- ✅ Test with any Ethereum address\n- ✅ Visual indicator showing WebSocket connection status\n\n**The demo includes step-by-step instructions right on the page!**\n\n---\n\n## Features\n\n- 🔌 **Multi-chain Support** - Ethereum, Polygon, Arbitrum, Optimism, Base, and more\n- 📊 **Standardized Data** - All responses use `@cygnus-wealth/data-models` types\n- 🚀 **Framework Agnostic** - Use with React, Vue, Node.js, or vanilla JavaScript\n- 🔄 **Real-time Updates** - WebSocket support for live balance monitoring\n- 🛡️ **Read-only** - Safe, no transaction signing or private keys\n- ⚡ **TypeScript First** - Full type safety and IntelliSense support\n\n## Installation\n\n```bash\nnpm install @cygnus-wealth/evm-integration\n```\n\n## Quick Start\n\n```typescript\nimport { defaultRegistry } from '@cygnus-wealth/evm-integration';\n\n// Get adapter for Ethereum mainnet\nconst adapter = defaultRegistry.getAdapter(1);\n\n// Fetch balance\nconst balance = await adapter.getBalance('0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb7');\nconsole.log(`Balance: ${balance.amount} ${balance.asset?.symbol}`);\n```\n\n## Core API\n\n### Using the Registry (Recommended)\n\n```typescript\nimport { defaultRegistry } from '@cygnus-wealth/evm-integration';\n\n// Get adapter for any supported chain\nconst ethereum = defaultRegistry.getAdapter(1);\nconst polygon = defaultRegistry.getAdapter(137);\nconst arbitrum = defaultRegistry.getAdapter(42161);\n\n// All adapters share the same interface\nconst balance = await ethereum.getBalance(address);\nconst tokens = await polygon.getTokenBalances(address);\n```\n\n### Direct Adapter Usage\n\n```typescript\nimport { EvmChainAdapter } from '@cygnus-wealth/evm-integration';\n\nconst adapter = new EvmChainAdapter({\n  id: 1,\n  name: 'Ethereum',\n  symbol: 'ETH',\n  decimals: 18,\n  endpoints: {\n    http: ['https://eth-mainnet.public.blastapi.io'],\n    ws: ['wss://eth-mainnet.public.blastapi.io']\n  },\n  explorer: 'https://etherscan.io'\n});\n\nawait adapter.connect();\nconst balance = await adapter.getBalance(address);\n```\n\n## Supported Chains\n\n| Chain | Chain ID | Symbol |\n|-------|----------|--------|\n| Ethereum | 1 | ETH |\n| Polygon | 137 | MATIC |\n| Arbitrum | 42161 | ETH |\n| Optimism | 10 | ETH |\n| Base | 8453 | ETH |\n\n## Examples\n\n### Get Token Balances\n\n```typescript\nconst adapter = defaultRegistry.getAdapter(1);\n\nconst tokenBalances = await adapter.getTokenBalances(\n  '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb7',\n  [\n    { address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', symbol: 'USDC' },\n    { address: '0xdAC17F958D2ee523a2206206994597C13D831ec7', symbol: 'USDT' }\n  ]\n);\n\ntokenBalances.forEach(balance => {\n  console.log(`${balance.asset?.symbol}: ${balance.amount}`);\n});\n```\n\n### Real-time Balance Updates\n\n```typescript\nconst adapter = defaultRegistry.getAdapter(1);\n\nconst unsubscribe = await adapter.subscribeToBalance(\n  address,\n  (balance) => {\n    console.log('Balance updated:', balance.amount);\n  }\n);\n\n// Stop watching\nunsubscribe();\n```\n\n### Multi-chain Balance Check\n\n```typescript\nconst chains = [1, 137, 42161, 10, 8453];\n\nconst balances = await Promise.all(\n  chains.map(async (chainId) => {\n    const adapter = defaultRegistry.getAdapter(chainId);\n    return adapter.getBalance(address);\n  })\n);\n```\n\n## Framework Integration\n\nThis library is framework-agnostic. For framework-specific integrations:\n\n- **React**: Use `@cygnus-wealth/evm-integration-react` (coming soon)\n- **Vue**: Use `@cygnus-wealth/evm-integration-vue` (coming soon)\n- **Node.js/CLI**: Use directly as shown in examples\n\n## API Reference\n\n### IChainAdapter Interface\n\n```typescript\ninterface IChainAdapter {\n  getBalance(address: Address): Promise<Balance>\n  getTokenBalances(address: Address, tokens?: TokenConfig[]): Promise<Balance[]>\n  getTransactions(address: Address, options?: TransactionOptions): Promise<Transaction[]>\n  subscribeToBalance(address: Address, callback: (balance: Balance) => void): Promise<Unsubscribe>\n  connect(): Promise<void>\n  disconnect(): void\n  getChainInfo(): ChainInfo\n  isHealthy(): Promise<boolean>\n}\n```\n\nAll methods return types from `@cygnus-wealth/data-models`.\n\n## Adding Custom Chains\n\nCreate a JSON configuration file:\n\n```json\n{\n  \"id\": 56,\n  \"name\": \"BNB Smart Chain\",\n  \"symbol\": \"BNB\",\n  \"decimals\": 18,\n  \"endpoints\": {\n    \"http\": [\"https://bsc-dataseed.binance.org\"],\n    \"ws\": [\"wss://bsc-ws-node.nariox.org\"]\n  },\n  \"explorer\": \"https://bscscan.com\"\n}\n```\n\nThen register it:\n\n```typescript\nimport { ChainRegistry } from '@cygnus-wealth/evm-integration';\nimport bscConfig from './bsc-config.json';\n\nconst registry = new ChainRegistry();\nregistry.registerChain(bscConfig);\n\nconst bscAdapter = registry.getAdapter(56);\n```\n\n## Architecture\n\nSee [ARCHITECTURE.md](./ARCHITECTURE.md) for detailed technical architecture.\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Build library\nnpm run build\n\n# Run tests\nnpm test\n\n# Run test UI\nnpm run dev:ui\n```\n\n## Contributing\n\n**For Contributors & Developers**: Please start with **[DEVELOPERS.md](./DEVELOPERS.md)** for complete documentation, architecture, and implementation guidelines.\n\nContributions are welcome! Please:\n1. Read [DEVELOPERS.md](./DEVELOPERS.md) for architecture and conventions\n2. Follow the implementation roadmap and quality standards\n3. Write tests alongside your implementation\n4. Ensure all tests pass and coverage is ≥80%\n\n## License\n\nMIT","readmeFilename":"README.md","homepage":"https://github.com/Cygnus-Wealth/evm-integration#readme","repository":{"type":"git","url":"git+https://github.com/Cygnus-Wealth/evm-integration.git"},"bugs":{"url":"https://github.com/Cygnus-Wealth/evm-integration/issues"}}