{"_id":"@basesentinel/eliza","name":"@basesentinel/eliza","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@basesentinel/eliza","version":"1.0.0","description":"Eliza OS plugin: scan Base contracts via BaseSentinel (HTTP 402 + USDC tx-hash proof).","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/BlackSwanLabsOS/BaseSentinel.git","directory":"packages/eliza-basesentinel"},"homepage":"https://blackswanlabs.pl","bugs":{"url":"https://github.com/BlackSwanLabsOS/BaseSentinel/issues"},"author":{"name":"BlackSwan Labs"},"keywords":["eliza","elizaos","base","x402","threat-intel","basesentinel"],"license":"MIT","peerDependencies":{"@elizaos/core":">=1.0.0"},"peerDependenciesMeta":{"@elizaos/core":{"optional":true}},"dependencies":{"viem":"^2.33.0"},"devDependencies":{"@types/node":"^22.15.0","typescript":"^5.8.3"},"engines":{"node":">=18"},"gitHead":"29673b5906b3a96050c63b066675ae501d856212","_id":"@basesentinel/eliza@1.0.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-8hzFoSPbeHkswbFQP9oo+GI9Zo5sDJih44uaIHcy/tJduomoT4ffeGmA6sBvwAw6idsF3kIgo0s9HUPtm4Qnpw==","shasum":"859e3d0a790877fc1bde4f45b712adebb2b01826","tarball":"https://registry.npmjs.org/@basesentinel/eliza/-/eliza-1.0.0.tgz","fileCount":34,"unpackedSize":50460,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC3pcsS+1uXijF6hBJ3lG5x3+7M77QD2q1RG03KqmcbpAIgcw0c6eDzj33JFkQ6sKDwAP8bFbUiyRRTW/6L0CgH1Z4="}]},"_npmUser":{"name":"basesentinel","email":"blackswanlabsos@gmail.com"},"directories":{},"maintainers":[{"name":"basesentinel","email":"blackswanlabsos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eliza_1.0.0_1785420229095_0.9534562364692334"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-30T14:03:48.838Z","1.0.0":"2026-07-30T14:03:49.231Z","modified":"2026-07-30T14:03:49.488Z"},"maintainers":[{"name":"basesentinel","email":"blackswanlabsos@gmail.com"}],"description":"Eliza OS plugin: scan Base contracts via BaseSentinel (HTTP 402 + USDC tx-hash proof).","homepage":"https://blackswanlabs.pl","keywords":["eliza","elizaos","base","x402","threat-intel","basesentinel"],"repository":{"type":"git","url":"git+https://github.com/BlackSwanLabsOS/BaseSentinel.git","directory":"packages/eliza-basesentinel"},"author":{"name":"BlackSwan Labs"},"bugs":{"url":"https://github.com/BlackSwanLabsOS/BaseSentinel/issues"},"license":"MIT","readme":"# @basesentinel/eliza\r\n\r\nEliza OS plugin that lets an agent **scan Base contracts** via [BaseSentinel](https://api.blackswanlabs.pl).\r\n\r\nPayment is **M2M under the hood** (USDC transfer on Base → `X-Payment-Proof`). The LLM only sees a short risk summary.\r\n\r\n## Install\r\n\r\n```bash\r\nnpm install @basesentinel/eliza\r\n```\r\n\r\nPeer: `@elizaos/core` (optional at build time; required at agent runtime).\r\n\r\n## Register\r\n\r\n```ts\r\nimport { AgentRuntime } from \"@elizaos/core\";\r\nimport baseSentinelPlugin from \"@basesentinel/eliza\";\r\n\r\nconst runtime = new AgentRuntime({\r\n  // ...character, models\r\n  plugins: [baseSentinelPlugin],\r\n});\r\n```\r\n\r\n## Runtime secrets (never chat these to the LLM)\r\n\r\n| Env | Required | Purpose |\r\n|-----|----------|---------|\r\n| `BASESENTINEL_PRIVATE_KEY` | yes* | Base wallet private key (`0x` + 64 hex) with USDC |\r\n| `BASESENTINEL_PAYMENT_PROOF` | no | Existing tx hash — skips the spend (ops/smoke) |\r\n| `BASESENTINEL_RPC_URL` | no | Base RPC (default `https://mainnet.base.org`) |\r\n| `BASESENTINEL_API_BASE_URL` | no | Default `https://api.blackswanlabs.pl` |\r\n\r\n\\*Required unless `BASESENTINEL_PAYMENT_PROOF` is set.\r\n\r\nCost per scan: **0.005 USDC** to treasury `0x21360A04853b85a8d2E918b73f97C8ccf5939946`.\r\n\r\n## Action\r\n\r\n- **Name:** `SCAN_CONTRACT`\r\n- **Input:** a `0x` contract address in the user message (or `options.address`)\r\n- **Output (LLM):**  \r\n  `Contract 0x… is SAFE (CLEAR). Score: 100/100. Reasons: Bluechip_Allowlist:USDC`\r\n\r\n## Errors\r\n\r\nFailures surface as `BaseSentinelError` with stable `errorCode` (same as the API):\r\n\r\n- `PAYMENT_REQUIRED`, `TX_HASH_CONSUMED`, `TX_HASH_BOUND_OTHER`\r\n- `INSUFFICIENT_USDC`, `PAYMENT_INVALID`, `INVALID_ADDRESS_FORMAT`\r\n- `UPSTREAM_TIMEOUT`, …\r\n\r\nHTTP **402** is `PAYMENT_REQUIRED` only. Other `error_code` values arrive on other status codes — branch on `errorCode`, not on “402 + enum”.\r\n\r\n## Programmatic use (no Eliza)\r\n\r\n```ts\r\nimport {\r\n  payForScan,\r\n  scanContract,\r\n  summarizeScanResult,\r\n} from \"@basesentinel/eliza\";\r\n\r\nconst { txHash } = await payForScan({\r\n  contractAddress: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\r\n});\r\nconst result = await scanContract(\r\n  \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\r\n  txHash,\r\n);\r\nconsole.log(summarizeScanResult(result));\r\n```\r\n\r\n## Build\r\n\r\n```bash\r\ncd packages/eliza-basesentinel\r\nnpm install\r\nnpm run build\r\n```\r\n","readmeFilename":"README.md","_rev":"1-7e915ee05e9d9fecf49f500c57f1c2f4"}