# Smart Contracts

OffBlocks API is orchestrating a smart contract protocol designed to facilitate card payments while preserving self-custody invariants. In order to facilitate such payments, we have developed two main components:

* Smart Wallet
* Escrow Smart Contract

The following diagram visualises how OffBlocks API orchestrates the payment and how tokens are transferred throughout the payment lifecycle:

<div data-full-width="false"><figure><img src="https://1545901005-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTToCQFhAYRMgObGgbSjC%2Fuploads%2FnJCnaSxOKAb9wYDjKDsa%2Fmermaid-diagram-2024-02-13-140547.png?alt=media&#x26;token=db839e22-3868-485b-a3da-5610c3519071" alt=""><figcaption></figcaption></figure></div>

***OffBlocksEscrow*** contract is deployed to the following blockchains (testnets only for now):

<table><thead><tr><th width="244">Chain</th><th>Address</th></tr></thead><tbody><tr><td>Ethereum Sepolia</td><td><a href="https://sepolia.etherscan.io/address/0x3368F736Ce54d40248E109C65E7a9296B107e574#code">0x3368F736Ce54d40248E109C65E7a9296B107e574</a></td></tr><tr><td>Arbitrum Sepolia</td><td><a href="https://sepolia.arbiscan.io/address/0x3368F736Ce54d40248E109C65E7a9296B107e574#code">0x3368F736Ce54d40248E109C65E7a9296B107e574</a></td></tr><tr><td>Polygon Mumbai</td><td><a href="https://mumbai.polygonscan.com/address/0x3368F736Ce54d40248E109C65E7a9296B107e574#code">0x3368F736Ce54d40248E109C65E7a9296B107e574</a></td></tr><tr><td>zkSync Sepolia</td><td><em>Coming soon</em></td></tr></tbody></table>

{% hint style="info" %}
Contracts for ***OffBlocksSmartWallet*** and ***OffBlocksSmartWalletFactory*** will be added soon
{% endhint %}
