kimlikdao-lib is a repository containing TypeScript modules essential to KimlikDAO projects.
Both our js and ts modules are fully typed using ts type expressions and compiled using kdts, our
ts/js compiler with type aware optimizations.
🪁 kastro: Our compile-time focused web-framework
- React-like .tsx components at zero runtime cost
- Import css, fonts or images using es6 imports and receive an asset component
⚙️ kdts: KimlikDAO TypeScript compiler
- A TypeScript compiler that leverages type information to perform advanced optimizations.
- Uses the Google Closure Compiler as a backend with additional optimization capabilities.
🗝️ crypto: Cryptographic functions and libraries
-
arfCurve: An efficient Arf Curve ($y^2 = x^3 + b$ ) class factory -
weierstrassCurve: A constant time Weierstrass Curve ($y^2 = x^3 + ax + b$ ) implementation -
wesolowski: Our Wesolowski VDF implementation
🪪 did: Definitions of DID and KPass by KimlikDAO
🫙 container: Cryptographic containers such as Merkle Trees
🧬 crosschain: Definitions and structures valid across all blockchains
💎 ethereum: Tools for interacting with Ethereum nodes
🪶 mina: Tools for working with Mina dApps and nodes.
📡 protocol: KimlikDAO protocol definitions and node interfaces
🧰 util: Conversion tools and external definitions
git clone https://github.com/KimlikDAO/kimlikdao-lib
cd kimlikdao-lib
bun iThese commands will clone the repository into your local development environment and download the packages necessary for the repository to function. If you don't already have bun installed, you can install it by following the official guide.
The tests can be run in two different modes:
- Uncompiled:
We use
bun's test runner, which has a jest-like interface.bun test - Compiled (using
kdts): We also run the same tests after compiling them withkdtsfirst:Note thatkdts testkdtsmakes aggressive optimizations using the provided type information. Running tests in compiled mode is crucial, as incorrect type annotations can lead to functionally incorrect output. There is also a fast build mode, which doesn't do typechecking and produces larger outputskdts test --fast
To run tests in a specific directory, say crypto, you can also do
bun test crypto # uncompiled
kdts test crypto # compiled, --fast param availableYou can run a single benchmark directly
kdts bench crypto/bench/arfCurve/ladder.bench.ts # --fast param availableor compile all of them and benchmark the compiled modules:
kdts benchWhen run, output will look like this:

