Files
zooqueenandHanzo Dev d022c3d860 rip(casdoor): name the identity provider Hanzo IAM, and drop the dead manifest
main still called the provider Casdoor in ten places. hanzo.id is served by
github.com/hanzoai/iam, which its own LICENSE states is a clean-room
implementation carrying no third-party licensed source. The Casdoor-derived
server was hanzoai/iam-v1, retired and no part of this stack.

Every fact the text carried is kept. IAM really does stamp iss claims that
openid-client rejects, which is why the NextAuth provider is type: "oauth" and
why setting `issuer` breaks it; the applications really do live in the
iam-init-data configmap. Only the vendor name changed.

iam.py claimed a "Casdoor-compatible" flow. It is a standard flow — RFC 6749 and
OIDC Core — which is what HIP-0111 requires; naming a vendor for a capability
that has an RFC is what the standard exists to stop.

infra/k8s/cloud-deployment.yaml is deleted rather than edited. Its env block
named casdoorEndpoint / casdoorOrganization / casdoorApplication, and nothing
reads them: hanzoai/cloud configures IAM through IAM_URL, IAM_MINT_CLIENT_ID and
CLOUD_IAM_ISSUER, and ships no conf/. Renaming them to IAM_* would have produced
config that looks live and still does nothing. The file is unreferenced by
kustomization.yaml, duplicates declared state that belongs in universe
(infra/k8s/cloud/), pins registry.digitalocean.com instead of ghcr.io/hanzoai,
and pins a floating :latest tag that must never reach a cluster.

Landed directly on main via an isolated worktree. chore/use-datastore-fork is
139/137 divergent from a history rewrite; merging it would re-import that
lineage, and only two commit subjects there are genuinely absent from main.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 17:45:19 -07:00
..

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 check
  • POST /v1/rpc/{chain}/{network} - JSON-RPC proxy
  • GET /v1/tokens/{chain}/balance/{address} - Token balances
  • GET /v1/nfts/{chain}/owner/{address} - NFT ownership
  • POST /v1/webhooks - Create webhook
  • WS /v1/ws/{chain}/{network} - WebSocket subscriptions

Environment Variables

DATABASE_URL=postgresql+asyncpg://...
REDIS_URL=redis://...
DATASTORE_URL=clickhouse://...
JWT_SECRET=...

Documentation

License

BSD-3-Clause