Privacy-first js tooling for the Ethereum ecosystem. For rust crates see [sister rust repo](https://github.com/ethereum/kohaku-rs)
> [!IMPORTANT]
> Some parts of this project are work in progress and NOT READY FOR PRODUCTION USE. Packages contain UNAUDITED CODE. Consult underlying package READMEs for more detailed information.
## Repository Structure
| Package | Status | Description |
| ----------------------------------------------------| ------ | -------------------------------------------- |
| [@kohaku-eth/railgun](packages/railgun) | 🚧 | railgun shielded pool protocol lib (currently under mainenance) |
| [@kohaku-eth/tornado-cash](packages/tornado-cash) | ✅ | tornado cash shielded pool protocol lib |
| [@kohaku-eth/privacy-pools](packages/privacy-pools) | ✅ | privacy pools shielded pool protocol lib |
| [@kohaku-eth/plugins](packages/plugins) | ✅ | shielded pool protocols standardized plugin interface |
| [@kohaku-eth/provider](packages/provider) | ✅ | provider abstraction (ethers, viem, helios, colibri) |
| [@kohaku-eth/pq-account](packages/pq-account) | ✅ | post-quantum 4337 account implementation |
## Development
Navigate to the README in each package in `packages/` for package specific details.
In general, easiest way to have a stable dev environment is to use nix. [Install Nix here](https://nixos.org/download/)
then run:
```shell
nix develop --extra-experimental-features "nix-command flakes" --command $SHELL
```
fill your `.env` file in the root dir manually (with the vars in `.env.sample`) OR get a maintainer to register a sops key for you, so you can decrypt env secrets directly.