# Protocol Overview

<figure><img src="https://258555021-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0oqis4JDhDSIVRhBEmPf%2Fuploads%2FaKxuKFrTQQVoSDabwDH1%2Fimage.png?alt=media&#x26;token=bfd10aea-e817-43f9-b1f0-f8d0bc7fb059" alt=""><figcaption></figcaption></figure>

Developers utilise Ditto **TypeScript SDK** to define **deferred, multi-chain workflows, create** [**ZeroDev Smart Sessions**](https://zerodev.app/) and register them on-chain. **Ditto Runner Nodes** watch multiple chains for registration events, pull **workflow metadata from IPFS**, keep a live schedule of active workflows, and **process/simulate** them at the right time. Each runner **reports to the Performer**, which aggregates results. Runner attestations are used to reach **consensus on settlement**. Final, agreed outcomes are executed through the **Account Abstraction (AA) layer** (ERC-7579 modules), producing on-chain settlements and receipts back to the dApp. You can learn more about our SDK [here](https://github.com/dittonetwork/ditto-workflow-sdk).
