mirror of
https://github.com/hanzoai/bootnode.git
synced 2026-10-25 02:31:30 +00:00
github.com/bootnode/bootnode is the canonical home. These two diverged from766da81cwith real work on BOTH sides — 21 commits there, 26 here — so this is a merge, not a fork-kill. Deleting either side would have destroyed shipped work. From CANONICAL (bootnode/bootnode): · Base/SQLite storage, Postgres coupling dropped (5650324) · Cluster + Node models — models this side never defined · native CI: hanzo.yml, zero .github/workflows (a698acc,aff0952) · images to ghcr.io/bootnode/bootnode, its own org (9d0957c) · luxd fleet dashboard, k8s validator detector From HERE (hanzoai/bootnode): · HIP-0111 IAM: SPA PKCE, JWKS token validation (ed27226), JWT audience enforcement (49eb8cb) — security features canonical lacks · runtime white-label brand catalog (422f8f1+ today's work) · static-export build (852bb7c) · today: toolchain pinned, static export via hanzoai/static, one API resolver, honest error states Seven conflicts, each resolved on evidence, not preference: web/lib/brand.ts OURS — canonical still hardcodes bootnode → iam.url "https://hanzo.id", which is the "Sign in to Hanzo ID" leak fixed today. It also carries a duplicate `skillsOrg` field. web/Dockerfile OURS — canonical runs `pnpm config set dangerously-allow-all-builds true` AND `--no-frozen-lockfile`: disables the supply-chain guard and ignores the lockfile. db/models.py THEIRS — has Cluster + Node and no Postgres dialect. db/__init__.py THEIRS — matches those models. .github/workflows/* DELETED— canonical already went native. api/bootnode/main.py BOTH — took `__version__` from canonical (better than the hardcoded "2.0.0" here) and kept the conditional `docs` fromb06f09f(canonical re-adds "docs": "/docs", a URL production disables, so it 404s). This dropsa386c9b, the Node/MPCWalletModel commit written earlier today. Its problem did not exist on the canonical side: those models are already there, and there is no MPC router to need MPCWalletModel. It was written against the storage layer canonical replaced in June. Verified on the merged tree, not assumed: `import bootnode.db` succeeds and exports 14 models, all 27 API routers import, 0 postgresql dialect imports remain, web tsc reports 0 errors and the production build exits 0 with localhost:8000 in 0 chunks.
Hanzo Nodes API
Multi-chain blockchain infrastructure platform providing RPC, APIs, WebSockets, Webhooks, and ERC-4337 bundling.
Features
- Multi-Chain RPC: 100+ EVM chains with load balancing
- Token API: ERC-20 balances, transfers, prices
- NFT API: ERC-721/1155 ownership, metadata, transfers
- Wallet API: Portfolio tracking, activity history
- WebSocket Subscriptions: Real-time blockchain events
- Webhooks: Event notifications with delivery tracking
- ERC-4337 Bundler: Account abstraction with gasless transactions
- Gas API: Real-time gas estimates and EIP-1559 data
Quick Start
# Start dependencies
docker compose up -d postgres redis clickhouse
# Run API locally
uv run uvicorn bootnode.main:app --reload
# Or with Docker
docker compose up -d
API Endpoints
GET /health- Health checkPOST /v1/rpc/{chain}/{network}- JSON-RPC proxyGET /v1/tokens/{chain}/balance/{address}- Token balancesGET /v1/nfts/{chain}/owner/{address}- NFT ownershipPOST /v1/webhooks- Create webhookWS /v1/ws/{chain}/{network}- WebSocket subscriptions
Environment Variables
DATABASE_URL=postgresql+asyncpg://...
REDIS_URL=redis://...
DATASTORE_URL=clickhouse://...
JWT_SECRET=...
Documentation
- API Docs: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
License
BSD-3-Clause