We’ve been chasing one question for a while. Can you move an asset between Cardano and CKB with no custodian and no bonded committee, where each chain checks the other’s consensus directly inside its own scripts, on real data? That experiment is Chiral, and it’s open source now under MIT. I’d love for the community to dig into it.
Let me be upfront before anything else. This is a prototype. It’s testnet only, it’s unaudited, there’s no liquidity, and the relayer is still coordinator-driven. The hard cryptography does work end to end on public testnets, Cardano preview and CKB Pudge, in both directions. But it is not a product, yet.
The idea is isomorphic binding. A normal lock-and-mint bridge has to verify both chains on both sides, and verifying CKB’s Eaglesong proof-of-work inside a Plutus budget is brutal. Chiral gets around that by being asymmetric. An asset’s ownership stays anchored to one chain’s UTxOs while its state and logic live on the other, and only the follower chain ever has to verify the anchor. The two directions are mirror images of each other, which is where the name comes from.
There are two directions, and they’re very different in cost.
Cardano to CKB is the cheap one. Ownership is anchored to a Cardano seal UTxO and the state lives on CKB. CKB checks a Mithril certificate, which is Cardano’s stake-based BLS threshold signature, directly in CKB-VM. That’s only possible because CKB scripts can run arbitrary RISC-V crypto. It costs roughly 134 to 146 million cycles, a few percent of a block.
CKB to Cardano is the hard one. Ownership is anchored to a CKB cell and the state lives on Cardano. Now Cardano has to verify CKB’s consensus, so it checks a Groth16 SNARK of Eaglesong PoW, the header MMR, and tx inclusion, using its BLS12-381 builtins. The verifier runs at about a quarter of a transaction’s CPU budget.
Here’s what actually works today. All of it has run on-chain and you can re-check it through CKB RPC and Koios.
- A full Mithril certificate verified inside CKB-VM: aggregate BLS, the stake lottery, batch-Merkle membership, and quorum.
- A light-client cell live on Pudge that only advances its checkpoint by verifying a real Mithril cert in-VM.
- The full binding lifecycle: genesis bind, transition, and leap-out finalize.
- A Groth16 verifier written in Aiken, with every consensus gadget differential-tested against native CKB on real Pudge blocks.
- A complete CKB to Cardano round trip: lock, verify, mint, burn, unlock. Supply goes back to zero and conservation holds.
- A burn-gated unlock that releases the locked CKB only against a Mithril-certified burn, so no key authorizes the spend.
- A permissionless relayer that can only help liveness and can’t forge, a CI tamper gate that already caught Mithril quietly changing its message format, and an optional SP1 STARK version of the Mithril verifier as a post-quantum path.
A word on the trust model, because I don’t want to oversell it. Ownership and double-spend are covered by each anchor chain’s own consensus. The cross-chain part rests on Mithril’s honest-stake-majority assumption one way, checked in-script with no committee, and on Groth16 soundness plus CKB’s proof-of-work the other way. There’s no bonded committee and no governor in the safety path. That said, it isn’t any more trust-minimized or post-quantum than the two chains’ own signature layers, and I’m not going to pretend otherwise.
What’s still missing is real. No mainnet, no third-party audit, no liquidity, and no hardened public relayer. Wrapped tokens get minted and burned in a closed loop, so nothing is actually held or usable yet.
If you want to try it or pull it apart, the repo is GitHub - LusoCryptoLabs/cardano-ckb-isomorphic: An experiment in moving assets between Cardano and CKB with no custodian and no committee: each chain verifies the other's consensus on-chain. Testnet prototype, unaudited. · GitHub. Start with docs/TRY_IT.md. You’ll need two wallets and two faucets, and you sign every transaction yourself. I’d especially value eyes on the in-script verifiers and the trust assumptions. Review it, break it, test it. That’s what this release is for.













