A privacy-preserving order book built on pure cryptography — no TEE, no centralized infrastructure. Invisibook tackles the three hard problems of privacy, censorship resistance, and price discovery simultaneously, solving what traditional DEXs, CEXs, and dark pools cannot. Trade amounts are encrypted end-to-end: only the order creator can see the plain-text amount; everyone else sees the cipher.
- Go 1.21+ – install
- Rust nightly – install, then
rustup install nightly - GCC / C compiler – required by CGo (SQLite driver)
- Node.js 18+ – install (required for circom witness generation)
- circom 2.2+ –
cargo install --git https://github.com/iden3/circom.git - snarkjs –
npm install -g snarkjs - rapidsnark (optional, for fast proving) – build from iden3/rapidsnark
cd chain
go build -o invisibook .
./invisibookThe chain node listens on:
- HTTP
localhost:7999– reading & writing API - WebSocket
localhost:8999 - P2P
localhost:8887
Configuration files are in chain/cfg/:
chain.toml– yu framework config (ports, consensus, chain_id)core.toml– tripod config (DB paths, genesis accounts)
Build the image and start the container:
docker-compose build
docker-compose up -dTo stop:
docker-compose downcd app/desktop
cargo run --releaseMobile builds use Dioxus CLI. Install it first:
cargo install dioxus-cliiOS (requires macOS + Xcode):
cd app/mobile
dx serve --platform iosAndroid (requires Android SDK + NDK):
cd app/mobile
dx serve --platform androidUse the trade form on the right panel to place orders:
- Select Buy or Sell
- Choose a token pair from the dropdowns
- Enter a Price and Amount (positive integers)
- Click the submit button
- Your own orders: amount is displayed in plain text.
- Other orders: amount is shown as encrypted cipher text.
See LICENSE.
