Skip to Content
Dial v1 live 🎉

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.

StateMeaning
DraftThe object exists but nobody has signed it
AuthorizedThe required signatures verify and the object has not expired
FundedAssets were observed at a destination. Execution has not happened
ActivatingAn activation is in progress
ExecutedThe program’s action ran and evidence exists
SettledThe network’s finality requirement for this route has been met
Failed, expired or revokedTerminal 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.

ComponentRoleAuthority
Signed SPORE objectStates who authorized whatYes, once verified
SPAWN commitmentBinds program rules to an identityYes, once verified
Immutable content storage such as IPFSServes bytes you can check against a hashNo
Mutable discovery such as IPNSPoints at the current versionNo. Stale or missing data must fail closed
Registries, caches and WorkersSpeed up lookup and carry out approved workNo
Dial’s websiteDisplays objects and helps users actNo

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

AreaOwner repository
SPORE and payment object definitions, Calvin interfacesDial-SDK
SPAWN commitments, lifecycle, execution adaptersspawn-proto
Cardano contract researchcardano-invoicing
Creating, sharing and paying in the productDial.Work

These repositories are private for now. See reference for what they contain.

Explore invoicing: Programmable Invoicing

Last updated on