The Depository is deployed on every chain that Relay supports — as a smart contract on EVM and Solana chains, and as an MPC-controlled address on Bitcoin. It serves as the entry point for user funds — accepting deposits and releasing withdrawals when authorized by the Allocator.There are currently 80+ Depository contracts deployed, one per supported chain. Each contract is non-upgradable, meaning its logic cannot be changed after deployment. See Contract Addresses for the full list.
Accept deposits — Users send funds to the Depository, tagged with an orderId that ties the deposit to a specific solver commitment
Execute withdrawals — When a solver presents a valid proof from the Allocator, the Depository releases funds
The Depository does not track orders, verify fills, or manage balances. It is intentionally minimal — a secure vault that holds funds and releases them only when presented with a valid cryptographic proof.
Deposits are designed to be as gas-efficient as possible. On EVM chains, native-token deposits can be close to a raw ETH transfer (~21,000 gas). ERC20 deposits are more expensive because they also perform a token transferFrom.
On Bitcoin, the Depository is an MPC-controlled address rather than a smart contract. Deposits are standard Bitcoin transactions to this address, and withdrawals are authorized by the Allocator via ECDSA (secp256k1) MPC signatures.
Allocator generates a signed CallRequest (EVM) or TransferRequest (Solana)
Solver submits the signed request to the Depository’s execute function
Depository verifies the signature against the registered allocator address
Funds are transferred to the solver
Each withdrawal request includes a nonce and expiration to prevent replay attacks and stale proofs.
Only the registered Allocator can authorize withdrawals. The Allocator address is set at deployment and can only be changed by the contract owner (a security council multisig).
The Depository is designed with minimal trust assumptions:
Non-upgradable — Contract logic cannot change after deployment
Single authority — Only the registered Allocator can authorize fund movements. The Allocator address can only be changed by the contract owner, which is the Security Council multisig
Audited — Reviewed by Spearbit (February 2025) and Certora (June 2025). The broader Settlement Protocol, including Depository flows, was later audited by Zellic in November 2025.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Relay","colors":{"primary":"#4615C8","light":"#A7AAFF","dark":"#4615C8"},"logo":{"light":"https://mintcdn.com/unevenlabs/Gbv82V37Oid9F6eG/logo/relay-black.svg?fit=max\u0026auto=format\u0026n=Gbv82V37Oid9F6eG\u0026q=85\u0026s=7983e6e441ff77eeac7e17c03c2d0e8c","dark":"https://mintcdn.com/unevenlabs/Gbv82V37Oid9F6eG/logo/relay-white.svg?fit=max\u0026auto=format\u0026n=Gbv82V37Oid9F6eG\u0026q=85\u0026s=fbdcf916b96f42397c1470872ab80cda"},"favicon":"https://mintcdn.com/unevenlabs/f--GnNtyUvuqA2AW/favicon.png?fit=max\u0026auto=format\u0026n=f--GnNtyUvuqA2AW\u0026q=85\u0026s=d40a0a20b4bf062cea218d7eed38c576","api":{"openapi":["https://api.relay.link/documentation/json"],"examples":{"defaults":"required","languages":["curl","javascript","python"],"prefill":false},"mdx":{"server":["https://api.relay.link","https://api.testnets.relay.link"]}},"appearance":{"default":"light"},"navbar":{"links":[{"href":"https://support.relay.link/en/","label":"Support"},{"href":"https://forms.gle/XNeELYavjwoJwPEf7","label":"Get in Touch"}],"primary":{"type":"button","label":"Try Relay","href":"https://www.relay.link/"}},"footer":{"socials":{"twitter":"https://twitter.com/RelayProtocol"}},"integrations":{"intercom":{"appId":"b09ps4q8"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"unevenlabs","hasAudioNarration":false,"actualSubdomain":"unevenlabs","customDomains":["docs.relay.link"],"gitSource":{"type":"github","owner":"relayprotocol","repo":"relay-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae3af697ae675900f76a6ef","collectionId":"be28ab12-bcba-4839-9c2d-e9938fa2d546","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae3af697ae675900f76a6ef"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae3f64d50e0502dc9f49d6a","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API Reference","count":101},{"language":"default","tag":"RelayKit","count":48},{"language":"default","tag":"Relay Platform","count":29},{"language":"default","tag":"Relay Protocol","count":29},{"language":"default","tag":"Settlement","count":17},{"language":"default","tag":"Integration Guides","count":13},{"language":"default","tag":"Vaults","count":12},{"language":"default","tag":"Core Concepts","count":11},{"language":"default","tag":"SDK","count":11},{"language":"default","tag":"Features","count":9}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@keyframes rotation{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}#navbar a[href*=\"/references\"]{padding-left:18px;padding-right:18px}.card-link{color:var(--tw-prose-links);text-decoration:none;font-weight:600;margin-top:10px;display:inline-block;margin-right:5px;border-bottom:1px solid transparent}.card-link:hover{border-bottom:1px solid rgb(var(--primary-light))}#ui-kit-overview-cards a>div>div:first-child{float:left;margin-right:12px}#ui-kit-overview-cards a>div h2{margin:0;display:inline}.relay-table{td:not(:first-child) {\n padding-left: 24px;\n }\n\n th:not(:first-child) {\n padding-left: 24px;\n }\n\n .chain-icon-light {\n display: block;\n }\n\n .chain-icon-dark {\n display: none;\n }}.dark .relay-table .chain-icon-light{display:none}.dark .relay-table .chain-icon-dark{display:block}#\\/references\\/api\\/advanced,#\\/references\\/api\\/core,#\\/references\\/api\\/utilities{pointer-events:none;font-weight:700}.loader{width:48px;height:48px;border:5px solid rgb(70 21 200);border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite}#body-amount [data-component-part=field-info-pill]:has(>span.text-gray-400),#body-destination-chain-id [data-component-part=field-info-pill]:has(>span.text-gray-400),#body-destination-currency [data-component-part=field-info-pill]:has(>span.text-gray-400),#body-origin-chain-id [data-component-part=field-info-pill]:has(>span.text-gray-400),#body-origin-currency [data-component-part=field-info-pill]:has(>span.text-gray-400),#body-trade-type [data-component-part=field-info-pill]:has(>span.text-gray-400),#body-user [data-component-part=field-info-pill]:has(>span.text-gray-400){display:none}#custom-vm-quicksets{display:flex;gap:10px;margin-top:10px;margin-left:16px;border-bottom:1px solid;border-color:rgb(var(--gray-200)/.7);padding-bottom:16px}#custom-vm-quicksets button{border-radius:4px;overflow:hidden;border:0;cursor:pointer;transition:opacity .2s ease;opacity:1}#custom-vm-quicksets button img{width:32px;height:32px}#custom-vm-quicksets button:hover,.homepage-card:hover .homepage-card-link{opacity:.8}#custom-vm-quicksets-intro{font-weight:600;margin-top:20px;margin-left:16px}#hyperliquid-button{background-color:#fff;padding:2px;max-height:32px}body:has(.homepage-bg) .nav-tabs-item[href=\"/what-is-relay\"]{color:rgb(75 85 99)!important;text-shadow:none!important}.dark body:has(.homepage-bg) .nav-tabs-item[href=\"/what-is-relay\"],body.dark:has(.homepage-bg) .nav-tabs-item[href=\"/what-is-relay\"]{color:rgb(156 163 175)!important}body:has(.homepage-bg) .nav-tabs-item[href=\"/what-is-relay\"]>div{background:0 0!important}.homepage-bg{width:100%;height:40vh;position:relative;background:var(--Violet-Light-9, #4615C8);pointer-events:none}.homepage-cards{display:flex;gap:24px;margin:40px 50px;justify-content:center}.homepage-card{min-height:200px;padding:24px;border-radius:12px;border:1px solid rgba(0,0,0,.1);background-color:#fff;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:12px;max-width:300px;transition:background-color .2s,border-color .2s}.dark .homepage-card{border:1px solid rgba(255,255,255,.1);background-color:#1a1a1a}.homepage-card h3{font-size:18px;font-weight:700;color:#000;margin:0 0 -8px}.dark .homepage-card h3{color:#fff}.homepage-card-description{margin:0 0 40px;font-size:14px;color:#666;line-height:1.5}.dark .homepage-card-description{color:#999}.homepage-card-link{font-size:14px;color:#4615c8;font-weight:500;margin-top:auto}.dark .homepage-card-link{color:#a78bfa}.relay-checkbox{appearance:none;-webkit-appearance:none;width:12px;height:12px;border:1px solid #c8ccff;border-radius:3px;background-color:#f7f8ff;cursor:pointer;position:relative;transition:all .15s ease;flex-shrink:0}.relay-checkbox:hover{border-color:#b4b8ff;background-color:#eff1ff}.relay-checkbox:focus{outline:0;border-color:#4615c8;box-shadow:0 0 0 2px rgba(70,21,200,.15)}.relay-checkbox:checked{background-color:#4615c8;border-color:#4615c8}.relay-checkbox:checked:hover{background-color:#3b00b4;border-color:#3b00b4}.relay-checkbox:checked::after{content:'';position:absolute;left:3px;top:0;width:4px;height:7px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.relay-checkbox:disabled{cursor:not-allowed;opacity:.5;background-color:#eff1ff;border-color:#d7dbff}.dark .relay-checkbox{background-color:#141331;border-color:#4016b8}.dark .relay-checkbox:hover{border-color:#4c24d1;background-color:#216}.dark .relay-checkbox:focus{border-color:#5b2af9;box-shadow:0 0 0 2px rgba(91,42,249,.25)}.dark .relay-checkbox:checked{background-color:#4615c8;border-color:#4615c8}.dark .relay-checkbox:checked:hover{background-color:#3901aa;border-color:#3901aa}.dark .relay-checkbox:disabled{background-color:#216;border-color:#4016b8}.callout .prose>:first-child{margin-top:0}[data-cl-filter-bar]{position:sticky;top:var(--cl-sticky-top, 5rem);z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:12px 0;margin-bottom:20px;border-bottom:1px solid var(--gray-200)}.dark [data-cl-filter-bar]{border-bottom-color:rgb(55 65 81)}div:has(>[data-component-part=update-label]){top:calc(var(--scroll-mt, 5rem) + var(--cl-bar-height, 0px))}[data-cl-filter-bar] button,[data-component-part=update-tag]{cursor:pointer;padding:2px 8px;border:1px solid var(--gray-200);border-radius:9999px;transition:border-color .15s,color .15s,background-color .15s}[data-cl-filter-bar] button{font-size:.875rem;font-weight:500;line-height:1.5;color:rgb(107 114 128);background:0 0}[data-cl-filter-bar] button:hover,[data-cl-filter-bar] button[data-cl-active=true],[data-component-part=update-tag]:hover,[data-component-part=update-tag][data-cl-active=true]{border-color:rgb(var(--primary)/var(--tw-text-opacity, 1));color:rgb(var(--primary)/var(--tw-text-opacity, 1))}[data-cl-filter-bar] button[data-cl-active=true],[data-component-part=update-tag][data-cl-active=true]{background:rgb(var(--primary)/.08)}.dark [data-cl-filter-bar] button,.dark [data-component-part=update-tag]{border-color:rgb(55 65 81);color:rgb(156 163 175)}.dark [data-cl-filter-bar] button:hover,.dark [data-cl-filter-bar] button[data-cl-active=true],.dark [data-component-part=update-tag]:hover,.dark [data-component-part=update-tag][data-cl-active=true]{border-color:rgb(var(--primary-light));color:rgb(var(--primary-light))}.dark [data-cl-filter-bar] button[data-cl-active=true],.dark [data-component-part=update-tag][data-cl-active=true]{background:rgb(var(--primary-light)/.14)}"}],"page":{"pagePath":"references/protocol/components/depository","slug":"/references/protocol/components/depository","pageMetadata":{"title":"Depository","description":"The escrow contract deployed on every supported chain","sidebarTitle":"Depository","href":"/references/protocol/components/depository"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The escrow contract deployed on every supported chain\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsxs(_components.p,{children:[`The Depository is deployed on every chain that Relay supports — as a smart contract on EVM and Solana chains, and as an MPC-controlled address on Bitcoin. It serves as the entry point for user funds — accepting deposits and releasing withdrawals when authorized by the `,_jsx(_components.a,{href:`/references/protocol/components/allocator`,children:`Allocator`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`There are currently 80+ Depository contracts deployed, one per supported chain. Each contract is `,_jsx(_components.strong,{children:`non-upgradable`}),`, meaning its logic cannot be changed after deployment. See `,_jsx(_components.a,{href:`/references/protocol/addresses`,children:`Contract Addresses`}),` for the full list.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-it-works`,children:`How It Works`}),`\n`,_jsx(_components.p,{children:`The Depository has two core responsibilities:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Accept deposits`}),` — Users send funds to the Depository, tagged with an `,_jsx(_components.strong,{children:`orderId`}),` that ties the deposit to a specific solver commitment`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Execute withdrawals`}),` — When a solver presents a valid proof from the Allocator, the Depository releases funds`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`The Depository does not track orders, verify fills, or manage balances. It is intentionally minimal — a secure vault that holds funds and releases them only when presented with a valid cryptographic proof.`}),`\n`,_jsx(Heading,{level:`2`,id:`deposits`,children:`Deposits`}),`\n`,_jsxs(_components.p,{children:[`Deposits are designed to be as gas-efficient as possible. On EVM chains, `,_jsx(_components.strong,{children:`native-token deposits`}),` can be close to a raw ETH transfer (~21,000 gas). ERC20 deposits are more expensive because they also perform a token `,_jsx(_components.code,{children:`transferFrom`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`evm-chains`,children:`EVM Chains`}),`\n`,_jsx(_components.p,{children:`The EVM Depository supports two deposit methods:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`depositNative(depositor, id)`})}),` — Deposit native ETH (or the chain’s native asset)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`depositErc20(depositor, token, amount, id)`})}),` — Deposit any ERC20 token`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Both methods emit events that the `,_jsx(_components.a,{href:`/references/protocol/components/oracle`,children:`Oracle`}),` monitors to verify deposits.`]}),`\n`,_jsx(Heading,{level:`3`,id:`solana`,children:`Solana`}),`\n`,_jsx(_components.p,{children:`The Solana Depository is an Anchor program that supports:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`deposit_native(amount, id)`})}),` — Deposit native SOL`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`deposit_token(amount, id)`})}),` — Deposit SPL tokens (including Token-2022)`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Funds are held in a program-derived address (PDA) vault.`}),`\n`,_jsx(Heading,{level:`3`,id:`bitcoin`,children:`Bitcoin`}),`\n`,_jsxs(_components.p,{children:[`On Bitcoin, the Depository is an MPC-controlled address rather than a smart contract. Deposits are standard Bitcoin transactions to this address, and withdrawals are authorized by the `,_jsx(_components.a,{href:`/references/protocol/components/allocator`,children:`Allocator`}),` via ECDSA (secp256k1) MPC signatures.`]}),`\n`,_jsx(Heading,{level:`2`,id:`withdrawals`,children:`Withdrawals`}),`\n`,_jsxs(_components.p,{children:[`Withdrawals are triggered by solvers who have accumulated balances on the `,_jsx(_components.a,{href:`/references/protocol/components/hub`,children:`Hub`}),`. The process:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Solver requests a withdrawal from the `,_jsx(_components.a,{href:`/references/protocol/components/allocator`,children:`Allocator`})]}),`\n`,_jsxs(_components.li,{children:[`Allocator generates a signed `,_jsx(_components.strong,{children:`CallRequest`}),` (EVM) or `,_jsx(_components.strong,{children:`TransferRequest`}),` (Solana)`]}),`\n`,_jsxs(_components.li,{children:[`Solver submits the signed request to the Depository’s `,_jsx(_components.code,{children:`execute`}),` function`]}),`\n`,_jsx(_components.li,{children:`Depository verifies the signature against the registered allocator address`}),`\n`,_jsx(_components.li,{children:`Funds are transferred to the solver`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Each withdrawal request includes a `,_jsx(_components.strong,{children:`nonce`}),` and `,_jsx(_components.strong,{children:`expiration`}),` to prevent replay attacks and stale proofs.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Only the registered Allocator can authorize withdrawals. The Allocator address is set at deployment and can only be changed by the contract owner (a security council multisig).`})}),`\n`,_jsx(Heading,{level:`2`,id:`security`,children:`Security`}),`\n`,_jsx(_components.p,{children:`The Depository is designed with minimal trust assumptions:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Non-upgradable`}),` — Contract logic cannot change after deployment`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Single authority`}),` — Only the registered Allocator can authorize fund movements. The Allocator address can only be changed by the contract `,_jsx(_components.strong,{children:`owner`}),`, which is the `,_jsx(_components.a,{href:`/references/protocol/components/security-council`,children:`Security Council`}),` multisig`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Audited`}),` — Reviewed by `,_jsx(_components.a,{href:`/references/protocol/security`,children:`Spearbit`}),` (February 2025) and `,_jsx(_components.a,{href:`/references/protocol/security`,children:`Certora`}),` (June 2025). The broader Settlement Protocol, including Depository flows, was later audited by `,_jsx(_components.a,{href:`/references/protocol/security`,children:`Zellic`}),` in November 2025.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`contract-references`,children:`Contract References`}),`\n`,_jsx(_components.p,{children:`For full API documentation of the Depository contracts:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/references/protocol/contracts/evm-depository`,children:`EVM Depository Reference`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/references/protocol/contracts/solana-depository`,children:`SVM Depository Reference`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/references/protocol/addresses`,children:`Contract Addresses`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Depository","description":"The escrow contract deployed on every supported chain","sidebarTitle":"Depository","href":"/references/protocol/components/depository"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"How It Works","slug":"how-it-works","depth":2,"children":[]},{"title":"Deposits","slug":"deposits","depth":2,"children":[{"title":"EVM Chains","slug":"evm-chains","depth":3,"children":[]},{"title":"Solana","slug":"solana","depth":3,"children":[]},{"title":"Bitcoin","slug":"bitcoin","depth":3,"children":[]}]},{"title":"Withdrawals","slug":"withdrawals","depth":2,"children":[]},{"title":"Security","slug":"security","depth":2,"children":[]},{"title":"Contract References","slug":"contract-references","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/unevenlabs/e205e0c83de02f5e/script.js","/_mintlify/custom/unevenlabs/90d7a6a8bc7d1a3b/content/intercom-opener.js","/_mintlify/custom/unevenlabs/a13c5467619df0df/iframe-resizer.js","/_mintlify/custom/unevenlabs/411e1fdad39a2d9e/posthog.js","/_mintlify/custom/unevenlabs/9cf2d871386c2976/playground-enhancer.js"],"subdomain":"unevenlabs","siteName":"Relay","title":"Depository - Relay","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-03-20T12:54:51.667Z","originalFileLocation":"references/protocol/components/depository.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The escrow contract deployed on every supported chain\">\u003cmeta data-mint-head name=\"application-name\" content=\"Relay\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/unevenlabs/P-TdogRhaTE5DlJS/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/unevenlabs/P-TdogRhaTE5DlJS/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/unevenlabs/P-TdogRhaTE5DlJS/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/unevenlabs/P-TdogRhaTE5DlJS/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/unevenlabs/P-TdogRhaTE5DlJS/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/unevenlabs/P-TdogRhaTE5DlJS/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/unevenlabs/P-TdogRhaTE5DlJS/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/unevenlabs/P-TdogRhaTE5DlJS/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/unevenlabs/P-TdogRhaTE5DlJS/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Depository - Relay\">\u003cmeta data-mint-head property=\"og:description\" content=\"The escrow contract deployed on every supported chain\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Relay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.relay.link/references/protocol/components/depository\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://unevenlabs.mintlify.app/_mintlify/api/og/v2?division=Components\u0026amp;title=Depository\u0026amp;description=The+escrow+contract+deployed+on+every+supported+chain\u0026amp;theme=bb8130bdebc4204a02b71ad8\u0026amp;signature=0d1170352bb4c82df0e1d00930b14f0934f04d23c2b421d8d3e7bf9370f3b85f\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Depository - Relay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The escrow contract deployed on every supported chain\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://unevenlabs.mintlify.app/_mintlify/api/og/v2?division=Components\u0026amp;title=Depository\u0026amp;description=The+escrow+contract+deployed+on+every+supported+chain\u0026amp;theme=bb8130bdebc4204a02b71ad8\u0026amp;signature=0d1170352bb4c82df0e1d00930b14f0934f04d23c2b421d8d3e7bf9370f3b85f\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/unevenlabs/P-TdogRhaTE5DlJS/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Relay\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4615C8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.relay.link/references/protocol/components/depository\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/references/protocol/components/depository.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.relay.link/#organization\",\"name\":\"Relay\",\"url\":\"https://docs.relay.link\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/unevenlabs/Gbv82V37Oid9F6eG/logo/relay-black.svg?fit=max\u0026auto=format\u0026n=Gbv82V37Oid9F6eG\u0026q=85\u0026s=7983e6e441ff77eeac7e17c03c2d0e8c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.relay.link#website\",\"name\":\"Relay\",\"url\":\"https://docs.relay.link\",\"publisher\":{\"@id\":\"https://docs.relay.link/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.relay.link/references/protocol/components/depository#webpage\",\"url\":\"https://docs.relay.link/references/protocol/components/depository\",\"name\":\"Depository\",\"description\":\"The escrow contract deployed on every supported chain\",\"dateModified\":\"2026-03-20T12:54:51.667Z\",\"isPartOf\":{\"@id\":\"https://docs.relay.link#website\"},\"breadcrumb\":{\"@id\":\"https://docs.relay.link/references/protocol/components/depository#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.relay.link/references/protocol/components/depository#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Settlement\",\"item\":\"https://docs.relay.link/references/protocol/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Components\",\"item\":\"https://docs.relay.link/references/protocol/components/relay-chain\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Depository\",\"item\":\"https://docs.relay.link/references/protocol/components/depository\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.relay.link/references/protocol/components/depository#article\",\"headline\":\"Depository\",\"name\":\"Depository\",\"description\":\"The escrow contract deployed on every supported chain\",\"url\":\"https://docs.relay.link/references/protocol/components/depository\",\"mainEntityOfPage\":{\"@id\":\"https://docs.relay.link/references/protocol/components/depository#webpage\"},\"dateModified\":\"2026-03-20T12:54:51.667Z\",\"publisher\":{\"@id\":\"https://docs.relay.link/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.relay.link#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Relay\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Relay","nav":{"global":null,"tabs":[{"tab":"Relay Platform","pages":[{"title":"Relay Platform","href":"/what-is-relay"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/references/api/overview"}]},{"tab":"RelayKit","pages":[{"title":"RelayKit","href":"/references/relay-kit/overview"}]},{"tab":"Relay Protocol","groups":[{"group":"Settlement","pages":[{"title":"Relay Protocol","sidebarTitle":"Overview","href":"/references/protocol/overview"},{"title":"How It Works","sidebarTitle":"How It Works","href":"/references/protocol/how-it-works"},{"group":"Components","pages":[{"title":"The Relay Chain","description":"A purpose-built settlement chain for crosschain intent processing","sidebarTitle":"Relay Chain","href":"/references/protocol/components/relay-chain"},{"title":"Depository","sidebarTitle":"Depository","href":"/references/protocol/components/depository"},{"title":"Deposit Addresses","description":"Deterministic deposit addresses using counterfactual smart contracts","sidebarTitle":"Deposit Addresses","href":"/references/protocol/components/deposit-addresses"},{"title":"Oracle","sidebarTitle":"Oracle","href":"/references/protocol/components/oracle"},{"title":"Hub","sidebarTitle":"Hub","href":"/references/protocol/components/hub"},{"title":"Allocator","sidebarTitle":"Allocator","href":"/references/protocol/components/allocator"},{"title":"Security Council","sidebarTitle":"Security Council","href":"/references/protocol/components/security-council"}]},{"title":"Security \u0026 Audits","sidebarTitle":"Security \u0026 Audits","href":"/references/protocol/security"},{"group":"Guides","pages":[{"title":"For Apps","sidebarTitle":"For Apps","href":"/references/protocol/guides/for-apps"},{"title":"Programmatic Withdrawals","sidebarTitle":"Withdrawals","href":"/references/protocol/guides/withdrawals"},{"title":"Withdrawing with a Safe","sidebarTitle":"Safe Withdrawals","href":"/references/protocol/guides/safe-withdrawals"},{"title":"Operate a Third-Party Relay Oracle","sidebarTitle":"Third-Party Oracle","href":"/references/protocol/guides/third-party-oracle"}]},{"group":"Contracts","pages":[{"title":"Addresses","sidebarTitle":"Addresses","href":"/references/protocol/addresses"},{"title":"EVM Depository Reference","sidebarTitle":"EVM Depository Reference","href":"/references/protocol/contracts/evm-depository"},{"title":"SVM Depository Reference","sidebarTitle":"SVM Depository Reference","href":"/references/protocol/contracts/solana-depository"}]}]},{"group":"Vaults","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/references/protocol/vaults/overview"},{"title":"Architecture","sidebarTitle":"Architecture","href":"/references/protocol/vaults/architecture"},{"title":null,"href":"/references/protocol/vaults/security"},{"title":"Relay Vaults Backend","sidebarTitle":"Backend","href":"/references/protocol/vaults/backend"},{"group":"Guides","pages":[{"title":"Bridging","sidebarTitle":"Bridging","href":"/references/protocol/vaults/guides/bridging"},{"title":"Interacting with Relay Vaults","sidebarTitle":"Interacting","href":"/references/protocol/vaults/guides/interacting"},{"title":"Withdrawing from Relay Vaults","sidebarTitle":"Withdrawing","href":"/references/protocol/vaults/guides/withdrawing"}]},{"group":"Contracts Reference","pages":[{"title":null,"href":"/references/protocol/vaults/contracts/RelayPoolFactory"},{"title":null,"href":"/references/protocol/vaults/contracts/RelayPool"},{"title":null,"href":"/references/protocol/vaults/contracts/RelayPoolNativeGateway"},{"title":null,"href":"/references/protocol/vaults/contracts/RelayBridgeFactory"},{"title":null,"href":"/references/protocol/vaults/contracts/RelayBridge"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Depository - Relay","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":[],"chunks":[]}