Effectstream

August 11, 2026 · View on GitHub

A multi-chain Web3 engine for building multi-chain dApps, infrastructure and onchain games. This project integrates with the Midnight Network.

Home · Docs · Blog

  • Multi-chain by default. EVM, Midnight, Bitcoin, Cardano, Avail, Celestia, and NEAR — one state machine, many chains.
  • Sovereign rollups. App-specific L2s that inherit finality from the underlying L1, with no custodial bridge.
  • Modular. Pick the chains and modules you need. Everything ships as a separate @effectstream/* package.
  • Bun-native. The whole monorepo runs on Bun. No build step for development; TypeScript executes directly.

Quick start

Run a sample project:

git clone https://github.com/effectstream/effectstream.git
cd effectstream/templates/evm-midnight-v2
bun i
bun run dev

bun run dev brings up the full local stack: PGLite, Hardhat, a Midnight node, contract deployment, the sync node, the batcher, and the frontend. Open http://localhost:10599 once everything is up.

What it is

Effectstream is a framework for building dApps that read state from multiple chains and fold their updates into a single deterministic state machine. You write your app logic in TypeScript, point it at one or more chains, and Effectstream handles sync (read), batching (write), indexing, and the frontend connection.

For more information visit the docs site.

Templates

templates/ has ready-to-run examples. Each one is a self-contained Bun workspace you can copy and modify.

TemplateWhat it shows
minimalSmallest possible Effectstream app
evm-midnight-v2EVM + Midnight, ERC-721 sync, ZK contracts, full React frontend
chess-v2Onchain chess with matchmaking
batcher-validationsCustom Batcher Validation
preorderdApp (Cardano+EVM) for Assets Presale
zswap-daMidnight Zswap for decentralized liquidity
moreExplore the examples

Repository layout

DirectoryWhat lives here
packages/effectstream-sdk/Core SDK: config, events, crypto, wallets, log, schemas, chain types
packages/node-sdk/Runtime engine: database, state machine, sync, node entry point
packages/chains/Per-chain contract interfaces (EVM, Midnight, Bitcoin, Cardano, Avail)
packages/batcher/Cross-chain transaction batching
packages/binaries/NPM-wrapped blockchain node binaries
packages/build-tools/Orchestrator, explorer, TUI
packages/frontend/React frontend SDK
e2e/Integration test suites (one per chain)
docs/site/Docusaurus documentation site

Orchestrator

The orchestrator runs your dev stack. It supervises every process an Effectstream app needs (chains, contract deployment, sync node, batcher, frontend, plus any custom action you wire in) and gives you one place to start, stop, and inspect them. You don't have to be building a multi-chain app to want it; a single-chain dev loop is nicer with it too.

bunx orchestrator start --background   # --background enables status and logs
bunx orchestrator status
bunx orchestrator logs
bunx orchestrator stop

Package Development

# Unit tests
bun test ./packages

# All e2e suites (run serially because they share ports)
cd e2e && bun run runner.ts

# Run a single suite (or a few)
cd e2e && bun run runner.ts evm bitcoin

Available suites: evm, bitcoin, cardano, midnight, avail, celestia, near, features, wallets.

Contribution guide: docs/site/docs/home/1000-effectstream-engine/1100-contributions.md.

Some templates ship a link.sh script that points the dApp at the local @effectstream/* source instead of the published packages, so you can make improvements on the engine itself.

Published packages

Everything below is published on npm under @effectstream/*. All packages share the same version line and are released together.

Core SDK

PackageDescription
@effectstream/utilsShared utilities
@effectstream/logOpenTelemetry observability
@effectstream/configChain and runtime configuration
@effectstream/precompilePrecompile utilities
@effectstream/chain-typesChain-specific type definitions
@effectstream/cryptoMulti-chain signature verification
@effectstream/conciseType-safe schemas
@effectstream/event-clientMQTT-based event client
@effectstream/walletsWallet connector integrations
@effectstream/coroutineAsync control flow

Node runtime

PackageDescription
@effectstream/dbPostgreSQL and PgLite database layer
@effectstream/db-emulatorIn-memory test database
@effectstream/syncBlockchain sync service
@effectstream/smState machine DSL
@effectstream/runtimeState machine runtime
@effectstream/event-serverEvent server
@effectstream/node-sdkMain application node SDK

Chains

PackageDescription
@effectstream/evm-contractsEVM smart contract interfaces
@effectstream/evm-hardhatHardhat deployment and JSON-RPC utilities
@effectstream/midnight-contractsMidnight network contract interfaces
@effectstream/bitcoin-contractsBitcoin script utilities
@effectstream/cardano-contractsCardano contract interfaces
@effectstream/avail-contractsAvail DA contract interfaces

Batcher

PackageDescription
@effectstream/batcherCross-chain transaction batching
@effectstream/batcher-sdkBatcher SDK

Build tools & frontend

PackageDescription
@effectstream/orchestratorMulti-chain local development environment
@effectstream/tuiTerminal UI
@effectstream/frontend-sdkReact frontend SDK

Binary wrappers

Third-party blockchain binaries packaged for npm so you can install them with bun add instead of curl-pipe-bash.

PackageDescription
@effectstream/bitcoin-coreBitcoin Core
@effectstream/ordOrd
@effectstream/avail-light-clientAvail light client
@effectstream/avail-nodeAvail node
@effectstream/midnight-nodeMidnight node
@effectstream/midnight-indexerMidnight indexer
@effectstream/midnight-proof-serverMidnight proof server
@effectstream/near-sandboxNEAR sandbox
@effectstream/celestiaCelestia
@effectstream/grafana-alloyGrafana Alloy
@effectstream/grafana-lokiGrafana Loki