Case study — Flashy Wallet
Finding the edges of a wallet SDK before an agent does
- Scale
- A wallet-engine spike, testnet-only and pre-launch — measured against every published @tetherto/* WDK package over two days.
- WDK packages audited
- Every published @tetherto/* module, one dated reading
- Open-source packages shipped
- 2 — wdk-policy-guard, wdk-staking-kit
- Tests
- 95 across both packages
- Status
- Testnet only; wallet engine pre-launch
The challenge
An AI agent holding a wallet needs spending limits a human sets, and a general-purpose wallet SDK does not enforce them by design. The fastest way to learn where a toolkit’s coverage actually stops is to build against it, not read its documentation — so the spike had to answer two questions at once: what WDK covers module by module, and what a real product needs that it does not.
The approach
Measure before building
Every published @tetherto/* WDK package was audited in one day — version, capability, verdict — before a line of product code was written, so the engine’s later design decisions cite a dated finding rather than an assumption.
Build the gap, not a workaround
No WDK module grades a transfer against a per-agent daily cap, so the engine’s policy layer does — envelope-graded on the device, BigInt-exact at every comparison, before anything reaches a chain. No WDK module offers staking, so that design generalised into a reference primitive rather than a one-off internal fix.
Open-source the reusable half
The two gaps the audit found do not belong to one product alone. @flashylabs/wdk-policy-guard and @flashylabs/wdk-staking-kit (github.com/FlashyLabs) shipped the same week as standalone, Apache-2.0 packages — 95 tests between them, with no dependency on the product they were extracted from.
The outcome
The wallet engine itself is testnet-only and pre-launch — draft, under review, and nothing in it has touched real value. What is live today is two open-source packages any team building on WDK can use, and a written, dated record of exactly where the toolkit’s own coverage stops.
The platforms this evidences
Considering something similar?
The capability above is licensable independent of this engagement — see the platform page for what is and is not white-labelled.