Architecture
Target architecture, last checked 2026-11-02. This page describes the design. See status for what exists.
The core rule: the meaning of a SPORE or SPAWN object does not depend on any network, but the guarantees you get do depend on the adapter that executes it.
Lifecycle
Program states
Every adapter maps its own events onto these states. An adapter can skip states it has no use for, but it cannot report a later state without evidence for it.
| State | Meaning |
|---|---|
| Draft | The object exists but nobody has signed it |
| Authorized | The required signatures verify and the object has not expired |
| Funded | Assets were observed at a destination. Execution has not happened |
| Activating | An activation is in progress |
| Executed | The program’s action ran and evidence exists |
| Settled | The network’s finality requirement for this route has been met |
| Failed, expired or revoked | Terminal states that need the recovery path for that adapter |
The EVM prototype currently stores a narrower set: predicted, triggered, deployed, executed and failed.
Where authority lives
Authority comes from the signed object and the rules it commits to. It does not come from where the object is stored.
| Component | Role | Authority |
|---|---|---|
| Signed SPORE object | States who authorized what | Yes, once verified |
| SPAWN commitment | Binds program rules to an identity | Yes, once verified |
| Immutable content storage such as IPFS | Serves bytes you can check against a hash | No |
| Mutable discovery such as IPNS | Points at the current version | No. Stale or missing data must fail closed |
| Registries, caches and Workers | Speed up lookup and carry out approved work | No |
| Dial’s website | Displays objects and helps users act | No |
A verifier should get the same answer with Dial’s services offline, provided it already holds the object.
What an adapter must define
Each network adapter has to answer these questions:
- How does a commitment bind to a destination on this network?
- Which assets and units are supported, and who pays fees?
- Who signs or witnesses a transaction?
- What triggers activation, and what stops it running twice?
- What counts as final?
- What is the receipt?
- What happens to funds if activation never succeeds?
Who owns what
| Area | Owner repository |
|---|---|
| SPORE and payment object definitions, Calvin interfaces | Dial-SDK |
| SPAWN commitments, lifecycle, execution adapters | spawn-proto |
| Cardano contract research | cardano-invoicing |
| Creating, sharing and paying in the product | Dial.Work |
These repositories are private for now. See reference for what they contain.
Explore invoicing: Programmable Invoicing