Custom modules
DAIT extends Cosmos SDK with seven custom modules. They cooperate: x/staking_tiers gates everything, x/tee_attest validates hardware quotes, x/pouw mints credits from those quotes, x/compute_market and x/state_channel move money for the work, and x/messaging + x/agent ride on top.
The seven
| Module | Role | Phase 0 status |
|---|---|---|
x/staking_tiers | Six-tier locked-stake registry, tier-aware slashing | Skeleton + queries real, msg handlers stubbed |
x/tee_attest | On-chain TDX, SEV-SNP, NRAS quote verification | Skeleton + dispatch + msg handlers wired; per-vendor verifiers stubbed |
x/pouw | PoUW credit accrual + decay + distribution override | Decay math + queries real, commit-reveal stubbed |
x/compute_market | Reverse Dutch auction + streaming escrow | Auction matcher + escrow math real, bank moves stubbed |
x/state_channel | Nitro / ForceMove off-chain sessions | State machine real, signature verification stubbed |
x/messaging | Pubkey + contact graph, group state, quotas | Quota window real, msg handlers stubbed |
x/agent | AI agents as first-class accounts | Authenticate hot path real (rolling-24h policy), msg handlers stubbed |
How they fit together
tenant ---> x/compute_market (escrow) ---> auction
|
v
host wins lease
|
(tenant) MsgOpenChannel ----> x/state_channel
|
v
(off-chain inference, SPUR-IC receipts)
|
v
host signs + commits ----> x/pouw (commit-reveal)
|
REPORTDATA verified by ----> x/tee_attest
|
v
PoUW credits accrue, decay 14d half-life
|
v
block reward weighting via x/distribution override
|
v
validators paid by stake + delegated PoUW credits
Source layout
Each module lives at x/<name>/ in the dait-chain mono-repo. Standard Cosmos layout:
proto/dait/<name>/v1/{types,genesis,tx,query}.protox/<name>/types/- keys, errors, params, codec, msg validate-basicx/<name>/keeper/- state read/write, msg server, query server, ABCI hooksx/<name>/module.go+genesis.go- app wiring
All seven modules share a determinism rule: no system clock, no network calls, no nondeterministic crypto inside the keeper. ctx.BlockHeight, ctx.BlockTime, and ctx.HeaderHash are the only sources of "now".