{"_id":"@abernatskiy/create-squid","_rev":"7-a5c410944704bc36e4bb34da654dba8c","name":"@abernatskiy/create-squid","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.0":{"name":"@abernatskiy/create-squid","version":"0.0.0","keywords":["blockchain","indexer","squid","subsquid","ethereum","generator"],"author":"","license":"MIT","_id":"@abernatskiy/create-squid@0.0.0","maintainers":[{"name":"abernatskiy","email":"abernatskiy@toha.li"}],"bin":{"create-squid":"dist/cli.js"},"dist":{"shasum":"037bd197e9f26cbfc33d617d76de5b47ba481e1c","tarball":"https://registry.npmjs.org/@abernatskiy/create-squid/-/create-squid-0.0.0.tgz","fileCount":88,"integrity":"sha512-i6MOvaW1zUjbRs6Ps3YTAcoeslCW/mZ3K3kHqaey4pSFj8ay9uWo/uLobJFM7V2iACvW5gIXNPX8TbP4vnj4Rw==","signatures":[{"sig":"MEUCIDLKGGpyD+vwpJXlSCmKLCNM7GyN5PH69MO34v2ka4RXAiEAgIKAbr8/hGRE7Va4HLveYFLCBuHBNhAS6gQ2sUu+TIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216374},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"9366da72486763e25102ffd0c749486375c9758d","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","test:all":"npm run test:unit && npm run test:integration","test:unit":"jest","prepublishOnly":"npm run build","test:integration":"./tests/test-integration.sh"},"_npmUser":{"name":"abernatskiy","email":"abernatskiy@toha.li"},"_npmVersion":"10.9.0","description":"Automatically generate Subsquid blockchain indexers","directories":{},"_nodeVersion":"22.12.0","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","js-yaml":"^4.1.0","fs-extra":"^11.1.1","mustache":"^4.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.3.0","@types/jest":"^29.5.8","@types/node":"^20.10.0","@types/js-yaml":"^4.0.9","@types/fs-extra":"^11.0.4","@types/mustache":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/create-squid_0.0.0_1757892185954_0.5314332828074015","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@abernatskiy/create-squid","version":"0.0.1","keywords":["blockchain","indexer","squid","subsquid","ethereum","generator"],"author":"","license":"MIT","_id":"@abernatskiy/create-squid@0.0.1","maintainers":[{"name":"abernatskiy","email":"abernatskiy@toha.li"}],"bin":{"create-squid":"dist/cli.js"},"dist":{"shasum":"5e3447c1588b8326d010e680e14891216893e665","tarball":"https://registry.npmjs.org/@abernatskiy/create-squid/-/create-squid-0.0.1.tgz","fileCount":87,"integrity":"sha512-kDJpnMV4ReS+JuPEEfkhRu4phLc2jONy/sWiN8sMEKjhrJDQmnCx2K4x8VqkHAMdMxfKi2ieTkYuM9pMLPXMew==","signatures":[{"sig":"MEQCIEFakkbr83fb5IDkYqMmSrwUZ7iSjqPFY/HhgdaZ+TYWAiAtuu0wS2CbCcup/hYJPbZKIe6AW/ALX/52pf4sXlL0pQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216628},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e5d8a5e0da52228fbb7e9f96ff2794d38acae48a","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","test:all":"npm run test:unit && npm run test:integration","test:unit":"jest","prepublishOnly":"npm run build","test:integration":"./tests/test-integration.sh"},"_npmUser":{"name":"abernatskiy","email":"abernatskiy@toha.li"},"_npmVersion":"10.9.0","description":"Automatically generate Subsquid blockchain indexers","directories":{},"_nodeVersion":"22.12.0","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","js-yaml":"^4.1.0","fs-extra":"^11.1.1","mustache":"^4.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.3.0","@types/jest":"^29.5.8","@types/node":"^20.10.0","@types/js-yaml":"^4.0.9","@types/fs-extra":"^11.0.4","@types/mustache":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/create-squid_0.0.1_1757941127654_0.5609091051524167","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@abernatskiy/create-squid","version":"0.0.2","keywords":["blockchain","indexer","squid","subsquid","ethereum","generator"],"author":"","license":"MIT","_id":"@abernatskiy/create-squid@0.0.2","maintainers":[{"name":"abernatskiy","email":"abernatskiy@toha.li"}],"bin":{"create-squid":"dist/cli.js"},"dist":{"shasum":"68c28545004411da5962620e602b25bb4591b544","tarball":"https://registry.npmjs.org/@abernatskiy/create-squid/-/create-squid-0.0.2.tgz","fileCount":87,"integrity":"sha512-FmyqKIOYq2UYPWi8yLJ/G54GsvAX/TigtKVxL/9TSzH0bxSIHRXez0jFCD/JZGkYEupWkxyxtbNpqtAfIksYNA==","signatures":[{"sig":"MEUCIDX/bdyFhMZpd+kJewg8w+8BHdZJgitxpMBcOSTeXWdmAiEA3WQZNW/t0gLMhBdBNrQO0kG/bwz4vISVmnu2Tpk1cIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213302},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"bf8d3cd4b3dbccda0aa6118f04fd4a46abbb962a","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","test:all":"npm run test:unit && npm run test:integration","test:unit":"jest","prepublishOnly":"npm run build","test:integration":"./tests/test-integration.sh"},"_npmUser":{"name":"abernatskiy","email":"abernatskiy@toha.li"},"_npmVersion":"10.9.0","description":"Automatically generate Subsquid blockchain indexers","directories":{},"_nodeVersion":"22.12.0","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","js-yaml":"^4.1.0","fs-extra":"^11.1.1","mustache":"^4.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.3.0","@types/jest":"^29.5.8","@types/node":"^20.10.0","@types/js-yaml":"^4.0.9","@types/fs-extra":"^11.0.4","@types/mustache":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/create-squid_0.0.2_1758236080303_0.30505204058960844","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@abernatskiy/create-squid","version":"0.0.3","keywords":["blockchain","indexer","squid","subsquid","ethereum","generator"],"author":"","license":"MIT","_id":"@abernatskiy/create-squid@0.0.3","maintainers":[{"name":"abernatskiy","email":"abernatskiy@toha.li"}],"bin":{"create-squid":"dist/cli.js"},"dist":{"shasum":"559c50f41269a1424203613357be34e9a1307337","tarball":"https://registry.npmjs.org/@abernatskiy/create-squid/-/create-squid-0.0.3.tgz","fileCount":87,"integrity":"sha512-NfQFEuDO1uZtWZYS3dyW8XScRvmBYElk130MsCFRCEDCNIrLXTVrTiqTg07iYkXKb7GSWEaSjJbaDSHH67H16g==","signatures":[{"sig":"MEUCIQDpcJuHnD4bpkGd7FvXe+TjXCsgb3qL4ho8cUCfwHN7twIgTxNaMAnn+aVt2Lf8ciZ0ubd2cqWiQjGzYenJQ9p/uTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218062},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"01437375496b5554813606f511dd595cc2b9b34e","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","test:all":"npm run test:unit && npm run test:integration","test:unit":"jest","prepublishOnly":"npm run build","test:integration":"./tests/test-integration.sh"},"_npmUser":{"name":"abernatskiy","email":"abernatskiy@toha.li"},"_npmVersion":"10.9.0","description":"Automatically generate Subsquid blockchain indexers","directories":{},"_nodeVersion":"22.12.0","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","js-yaml":"^4.1.0","fs-extra":"^11.1.1","mustache":"^4.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.3.0","@types/jest":"^29.5.8","@types/node":"^20.10.0","@types/js-yaml":"^4.0.9","@types/fs-extra":"^11.0.4","@types/mustache":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/create-squid_0.0.3_1758307956181_0.14398545366754756","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@abernatskiy/create-squid","version":"0.0.4","keywords":["blockchain","indexer","squid","subsquid","ethereum","generator"],"author":"","license":"MIT","_id":"@abernatskiy/create-squid@0.0.4","maintainers":[{"name":"abernatskiy","email":"abernatskiy@toha.li"}],"bin":{"create-squid":"dist/cli.js"},"dist":{"shasum":"ee63e43fc9df1f44fe7f25d6d06456d22f813058","tarball":"https://registry.npmjs.org/@abernatskiy/create-squid/-/create-squid-0.0.4.tgz","fileCount":87,"integrity":"sha512-Ck4R5tiBi1sg+wg6hvGuJn37vYt4B/mms0/ffAJXUmHn6ZdSdf+UkAaZzIrJgthld2/0P3zM4jEdUgtafLgEWA==","signatures":[{"sig":"MEYCIQCDtCzYtFSJovTxdAvwdB71aBbMYmxi4PfAdbLg5l0G9AIhAMhDTjMSF2RyWlgzAMCSqG7pjBBdbYLYl0E1+1nhCD5I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218418},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4de7a082111100cca93d50fdfc1631b362529aa6","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","test:all":"npm run test:unit && npm run test:integration","test:unit":"jest","prepublishOnly":"npm run build","test:integration":"./tests/test-integration.sh"},"_npmUser":{"name":"abernatskiy","email":"abernatskiy@toha.li"},"_npmVersion":"10.9.0","description":"Automatically generate Subsquid blockchain indexers","directories":{},"_nodeVersion":"22.12.0","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","js-yaml":"^4.1.0","fs-extra":"^11.1.1","mustache":"^4.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.3.0","@types/jest":"^29.5.8","@types/node":"^20.10.0","@types/js-yaml":"^4.0.9","@types/fs-extra":"^11.0.4","@types/mustache":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/create-squid_0.0.4_1760384207992_0.963992551390126","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@abernatskiy/create-squid","version":"0.0.5","keywords":["blockchain","indexer","squid","subsquid","ethereum","generator"],"author":"","license":"MIT","_id":"@abernatskiy/create-squid@0.0.5","maintainers":[{"name":"abernatskiy","email":"abernatskiy@toha.li"}],"bin":{"create-squid":"dist/cli.js"},"dist":{"shasum":"49537fb15a96728e7b26b4237fe9d4b1dc8f8aa0","tarball":"https://registry.npmjs.org/@abernatskiy/create-squid/-/create-squid-0.0.5.tgz","fileCount":87,"integrity":"sha512-OuOCfG3SeMtR1tQ380+DiBSuQnLa7otx7v3dm05376t4Ek/toGecllABNIjzhBzZeIHNH4Tk2WAFZ2EAKMcmQw==","signatures":[{"sig":"MEUCIHNb3vNhQM6swwwxmUwgyyfQBVWH+icwQwTW6s8Ps3aTAiEAsv1+MIoP71HlU3dnuiB1U/5vC+fST4/s15sNwsq2e+M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218418},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"bcdaa3f99c0a7ea9efc0ebfb5c54ad8786d38995","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","test:all":"npm run test:unit && npm run test:integration","test:unit":"jest","prepublishOnly":"npm run build","test:integration":"./tests/test-integration.sh"},"_npmUser":{"name":"abernatskiy","email":"abernatskiy@toha.li"},"_npmVersion":"10.9.0","description":"Automatically generate Subsquid blockchain indexers","directories":{},"_nodeVersion":"22.12.0","dependencies":{"glob":"^10.3.10","chalk":"^4.1.2","js-yaml":"^4.1.0","fs-extra":"^11.1.1","mustache":"^4.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.3.0","@types/jest":"^29.5.8","@types/node":"^20.10.0","@types/js-yaml":"^4.0.9","@types/fs-extra":"^11.0.4","@types/mustache":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/create-squid_0.0.5_1760384347907_0.34132842877841973","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@abernatskiy/create-squid","version":"0.0.6","description":"Automatically generate Subsquid blockchain indexers","main":"dist/index.js","types":"dist/index.d.ts","bin":{"create-squid":"dist/cli.js"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"jest","test:unit":"jest","test:integration":"./tests/test-integration.sh","test:all":"npm run test:unit && npm run test:integration","prepublishOnly":"npm run build"},"keywords":["blockchain","indexer","squid","subsquid","ethereum","generator"],"author":"","license":"MIT","dependencies":{"mustache":"^4.2.0","js-yaml":"^4.1.0","commander":"^11.1.0","chalk":"^4.1.2","fs-extra":"^11.1.1","glob":"^10.3.10"},"devDependencies":{"@types/node":"^20.10.0","@types/mustache":"^4.2.4","@types/js-yaml":"^4.0.9","@types/fs-extra":"^11.0.4","@types/jest":"^29.5.8","typescript":"^5.3.0","jest":"^29.7.0","ts-jest":"^29.1.1"},"_id":"@abernatskiy/create-squid@0.0.6","gitHead":"59403d74545b3e56ce228ecaf42ce8d753ddb8a1","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-Dxk9ZhInCU4bNtCdSmVzM9jPQlFytfz2x9tkKO3lGwZX/vye09lapO5B7OkMJKMS4nF0uY2T34/LQCJxC2tLyg==","shasum":"7475f2974b59d0cb31ab83a81590aab2dc39c511","tarball":"https://registry.npmjs.org/@abernatskiy/create-squid/-/create-squid-0.0.6.tgz","fileCount":87,"unpackedSize":219925,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHhEnHsa43ZylE2bklRxmRChGvCs/m4V9F2qCnYUxToyAiB/R5o6e2Qe1Qzk6a7/NSG+x19aeK4UQdivcWNUz1kplA=="}]},"_npmUser":{"name":"abernatskiy","email":"abernatskiy@toha.li"},"directories":{},"maintainers":[{"name":"abernatskiy","email":"abernatskiy@toha.li"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/create-squid_0.0.6_1767031654422_0.2820615016284136"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-14T23:23:05.860Z","modified":"2025-12-29T18:07:34.751Z","0.0.0":"2025-09-14T23:23:06.142Z","0.0.1":"2025-09-15T12:58:47.829Z","0.0.2":"2025-09-18T22:54:40.504Z","0.0.3":"2025-09-19T18:52:36.411Z","0.0.4":"2025-10-13T19:36:48.192Z","0.0.5":"2025-10-13T19:39:08.095Z","0.0.6":"2025-12-29T18:07:34.571Z"},"license":"MIT","keywords":["blockchain","indexer","squid","subsquid","ethereum","generator"],"description":"Automatically generate Subsquid blockchain indexers","maintainers":[{"name":"abernatskiy","email":"abernatskiy@toha.li"}],"readme":"# create-squid\n\nCode generation tool for [Subsquid](https://docs.sqd.ai) indexers a.k.a. squids. Capabilities:\n\n - works with EVM smart contracts;\n - makes multichain indexers;\n - fetches and decodes event logs, then stores them into Postgres;\n - has tests.\n\nLimitations of the tool (will be removed in the future):\n - it requires a YAML config - no interactive mode;\n - it requires a JSON ABI file in the filesystem for every contract;\n - it has some missing functionality:\n    * multiple events with the same name but different signature in a single ABI are not processed correctly;\n    * addresses obtained by event decoding will not be consistent with the addresses used in the rest of the data: they will be in mixed case while the SDK-related addresses will be in flat lower case.\n\n**Requirements:** NodeJS v20 or newer, Docker\n\n## Quickstart\n\n1. Create a folder for your new squid project, then a `./abi` subfolder in it.\n\n2. Create a sample `createSquid.yaml` file in the current directory:\n\n   ```yaml\n   # yaml-language-server: $schema=https://cdn.subsquid.io/create-squid/create-squid.schema.json\n   name: create-squid-ref-event-tables\n   description: Reference squid for the one-table-per-event mode of the create-squid utility\n   contracts:\n     - name: Tokens\n       abi: ./abi/erc20.json\n       instances:\n         - address: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\"\n           name: usdc\n           network: ethereum-mainnet\n           range:\n             from: 6082465\n         - address: \"0x1337420dED5ADb9980CFc35f8f2B054ea86f8aB1\"\n           name: sqd\n           network: arbitrum-one\n           range:\n             from: 194120655\n       events:\n         - \"Transfer(address,address,uint256)\"\n     - name: AavePool\n       abi: ./abi/aave-pool.json\n       instances:\n         - address: \"0x02D84abD89Ee9DB409572f19B6e1596c301F3c81\"\n           proxy: \"0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9\"\n           name: main\n           network: ethereum-mainnet\n           range:\n             from: 11362579\n       events:\n         - \"LiquidationCall(address,address,address,uint256,uint256,address,bool)\"\n   ```\n   The top line works with RedHat's YAML extension on VSCode; edit it to work with your IDE. If you're working with an editor that doesn't use a language server, find the list of available networks [here](https://cdn.subsquid.io/archives/evm.json).\n\n3. Edit `createSquid.yaml` to request all the events you need from your contracts. Save all ABIs you're using to `./abi`.\n\n4. Run `npm create squid`.\n    - if you prefer Yarn or PNPM to NPM, run `npm create squid --skip-install --skip-external-codegens` instead.\n\n5. Follow the post-generation instructions from tool's stdout.\n","readmeFilename":"README.md"}