Signed, versioned streams
A stream is registered with its terms, a version and both signatures. Updates are new versions; a stale version cannot be financed, and the same obligation cannot be registered twice under another identifier.
Aethel · a zkFMI application · by æmeth
Aethel takes a payment stream that both parties have signed and turns it into a receivable that independent credit assessors, guarantors, liquidity providers and servicers can act on, each with its own signed authority. It settles through zkFMI and never holds the cash.
Both parties sign the schedule and terms; an attestor confirms it. Every update is a new version.
A series policy admits the stream. A credit decision, a guarantee and a funding quote attach, each signed by a different provider and bound to this receivable only.
Issuance becomes a typed zkPI instruction. DeFMI settles it and Aethel records the evidence. Paid closes it; default binds a guarantee claim.
Rust state machine12 cratesResearch implementationNot audited
What Aethel is
Aethel does not hard-code a lender, a rating model, a guarantor or a marketplace. It records what a payment stream means commercially, who has decided what about it and where each decision stands, and hands anything that moves value to the settlement layer.
A stream is registered with its terms, a version and both signatures. Updates are new versions; a stale version cannot be financed, and the same obligation cannot be registered twice under another identifier.
A receivable series says which streams may be financed and under what rules: whether a guarantee is required, which qualifications the counterparty must prove, what expires when.
A credit decision, a guarantee and a funding quote each carry the exact receivable, a validity window, a nonce and the provider’s signature. None of them can be replayed for another receivable.
Lifecycle
The core is deterministic: the same inputs always produce the same state. What makes it useful is what it rejects.
The stream attestor confirms the payment stream and its updates. A series defines which streams are eligible and under what policy.
A credit assessor signs a decision for this receivable. A guarantor commits coverage backed by a DeCCP facility; the amount can stay confidential.
Liquidity providers submit executable quotes. Issuance creates a typed zkPI instruction; DeFMI settles it and Aethel records the evidence.
Payment evidence, delinquency, cure and permitted servicing actions are recorded by the servicer. A retried request applies once.
A paid obligation closes the receivable. A default attestation binds evidence to a guarantee claim; loss allocation runs in DeCCP, settlement in DeFMI.
Open provider model
Providers register with narrowly scoped capabilities and sign only the artifacts they are responsible for. A credit assessment cannot quietly act as a guarantee; a guarantor cannot issue a funding quote unless separately authorised. One company may hold several capabilities, each granted and revoked on its own.
| Stream attestation | Credit decision | Guarantee | Funding quote | Servicing action | Issuer vouch | |
|---|---|---|---|---|---|---|
StreamAttestorattests a stream and its updates | ||||||
CreditAssessorsigns a decision for one receivable | ||||||
Guarantorcommits cover from an external facility | ||||||
LiquidityProvidersubmits an executable funding quote | ||||||
Servicerperforms permitted servicing actions | ||||||
CredentialIssuervouches for a DeKYX issuer key, nothing else |
A filled dot is the only artifact that capability may sign. Everything else is refused at the state transition, not by convention.
Where things live
A receivable touches money, identity, guarantees and tokens. Aethel keeps one copy of each, in the system that is the record for it, and stores only references and digests. The same balance, qualification or facility is never copied into a second ledger.
| Information | System of record | What Aethel keeps |
|---|---|---|
| Payment stream, series, remaining principal | Aethel | both signatures, versions, terms, current state |
| Credit decision | the assessor signs · Aethel accepts as state | signed decision, target, version, validity, provider reference |
| Legal name, registration number, KYB evidence | DeKYX issuer | pseudonymous subject reference and a qualification digest |
| Guarantee facility and remaining capacity | DeCCP or the guarantor | opaque hold id and commitment; a settlement digest on release or claim |
| Token holdings per holder | DeFMI or another asset ledger | supply caps and mint/burn intents with the ledger receipt; no per-holder balances |
| Cash, securities, collateral | DeFMI | note, lock and settlement references; the confirmed root |
| Settlement instruction | zkPI | instruction id, nullifier, domain, proof and signature summary |
A series can require a DeKYX presentation before a decision or guarantee is accepted. It is bound to this domain, action, artifact statement, nonce and expiry, so a proof for one decision cannot be replayed for another. Aethel keeps only the verified subject-line binding, never a legal name.
The guarantee amount may stay confidential. Aethel and DeCCP then exchange commitments, state digests, identifiers and verified transition receipts instead of a plaintext amount.
Issuance and claims become typed zkPI instructions. DeFMI settles; the host validates the evidence; only then does Aethel move to its final state. It never advances on its own say-so.
Enterprise PoC
The PoC guide walks from a signed stream to settlement, lists the failure cases that must be refused, the evidence to keep and example acceptance criteria. Roles are separated by key even when one team plays all of them; otherwise the separation of authority cannot be tested.
Status and limits
# the four gates, on Linux with the locked dependency graph
cargo test --workspace --locked
cargo clippy --workspace --all-targets --locked -- -D warnings
cargo fmt --all -- --check
cargo build --workspace --release --locked