Seal DAO: what landed in the private tree this week (not yet pushed public)
Quick field note on Seal DAO. The public mirror was last synced on 2026-04-13. The week since has had most of its work in the private tree; below is what landed there, with a note on what is and isn’t yet in the public repo. I’ll push the batch after it settles.
Separately — not everything I work on is Seal. I’ve also been contributing to moetsi/Sensor-Stream-Pipe around the same time; that work sits outside the Seal tree and is its own codebase with its own review flow.
Ringtail threshold: beyond the placeholder
The formal post and the architecture post both called out that SimpleThreshold is not a real threshold scheme (it just collects individual ML-DSA signatures and a participation bitfield), with RingtailThreshold marked future-TODO in seal-threshold/src/lib.rs.
This week in the private tree:
- Full Ringtail protocol path, including Lagrange coefficient derivation and rounding primitives — the 2-round aggregate-signature shape from ePrint 2024/1113 rather than the signature-list stand-in.
- A
seal-ringtail-verifycrate:no_stdverifier that compiles for Solana BPF, with a Soroban Stellar counterpart. The bridge side uses it feature-gated on both chains. - A cost projection for Solana BPF in compute-units-per-instruction, so we can size the verifier’s on-chain footprint before anyone pays for the first cross-chain signature verification.
Status: in the private tree, not yet in seal-dao-public. The blog-post caveat from the architecture post (“what’s running today is collect individual signatures + bitfield”) still describes the public mirror.
Bridge: observers, MAC verify, e2e
Also private until the next sync:
- Real Solana and Stellar observer RPC clients (
bridges/*— replacing the earlier stub clients that were enough for TLA+ invariant checks but not for driving real transactions). - Committee-MAC signature verify implemented as an Anchor program on Solana and as a Soroban contract on Stellar.
- Real SAC (Stellar Asset Contract) transfers inside the Soroban bridge contract.
docker-compose+ abridge-e2e.shthat spins up a local Seal node, a local Solana validator, and a Soroban sandbox, and walks a full bridged-asset round-trip through them.- Per-chain bridge emergency pause with a 2/3 Technical Council supermajority gate;
seal_getBridgeStatusnow surfacespaused_chainsin its response.
In the public repo, the bridge surface is still the TLA+-proven invariant set and the Kani harnesses on BridgeManager — the invariants are proved; the operational tooling above is not.
DEX: trades in the state root
TxType::DexMatch is now emitted per block so matched trades land in the state root and in the ZK proof, instead of existing only in the engine’s in-memory orderbook. The per-block batch-auction match documented in the architecture post is otherwise unchanged; this makes its outputs cryptographically anchored to the block they happened in.
ADR-001: SQL procs default, WASM opt-in
Architecture decision recorded: smart-contract execution defaults to SQL stored procedures (CALL / PL/pgSQL-shaped) on the native SQL state, with WASM as an opt-in path for contracts that need it. The .seal demo tree (see below) exercises the SQL-procs side; the WASM side has a validator but no demo contracts yet.
Demo apps
Three new demo crates landed under apps/:
copy-trading.seal— follow-the-leader trades on the on-chain DEX.kyc.seal— identity attestation with selective disclosure (uses the MPC + ZK stack).kindle.seal— a reader / content-ledger demo.forms.seal— a fourth one, a form-collection app that exercises MPC, ZK, AEAD, and the browser wallet surface end-to-end.
These aren’t production apps; they’re the thing we point at when someone asks “what does the SQL-native chain actually let you do?” that a token transfer doesn’t answer.
Governance and RPC surface
- Gov RPC endpoints for proposal submission / voting / tally.
- Namespace-scoped row-level security in SQL state: the RLS policies formalised in Rocq (
RLS.v, per the formal post) now apply inside namespaces as well as at the global layer. seal_setTransferFee/seal_getTransferFeeRPCs for fee-market experiments.- A browser extension wallet on top of the existing Electron / Android apps.
Verification counters
- Kani: 66 of 66 harnesses passing (the remaining 6 took a BTreeMap swap and a harness refactor to close out).
- Test count: 820 → 887 over the week. Mostly driven by the bridge observer, Ringtail verifier, and demo-app crates.
When this lands public
Soon. I prefer pushing a week of work as a single coherent batch once the Ringtail + bridge e2e scripts stop finding their own bugs, rather than interleaving mid-bug states. If you were checking the public mirror against this post and wondering where half the features were — that’s why. The public README and the architecture posts on this blog will get bumped at the same time.