3:I[50200,[],""] 5:I[72888,[],""] 6:I[20565,["924","static/chunks/924-9b288a3e7649fef0.js","45","static/chunks/45-1294e8d3913dcaae.js","185","static/chunks/app/layout-e10737454ab00367.js"],"Theme"] 7:I[17051,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"SectionProvider"] 8:I[65438,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"RouteCheck"] 9:I[25377,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"Header"] a:I[69762,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"Sidebar"] b:I[9602,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"Breadcrumbs"] c:I[69327,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","327","static/chunks/327-bff56f9bf74d8980.js","213","static/chunks/213-89037468e9ed8292.js","160","static/chunks/app/not-found-9ec62740c376cc12.js"],"Image"] d:I[35542,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],""] e:I[56322,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"Feedback"] f:I[75619,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"ContributeLink"] 4:["slug","resolvers/ccip-read","c"] 10:T47e,M16.238 4.515a14.842 14.842 0 0 0-3.664-1.136.055.055 0 0 0-.059.027 10.35 10.35 0 0 0-.456.938 13.702 13.702 0 0 0-4.115 0 9.479 9.479 0 0 0-.464-.938.058.058 0 0 0-.058-.027c-1.266.218-2.497.6-3.664 1.136a.052.052 0 0 0-.024.02C1.4 8.023.76 11.424 1.074 14.782a.062.062 0 0 0 .024.042 14.923 14.923 0 0 0 4.494 2.272.058.058 0 0 0 .064-.02c.346-.473.654-.972.92-1.496a.057.057 0 0 0-.032-.08 9.83 9.83 0 0 1-1.404-.669.058.058 0 0 1-.029-.046.058.058 0 0 1 .023-.05c.094-.07.189-.144.279-.218a.056.056 0 0 1 .058-.008c2.946 1.345 6.135 1.345 9.046 0a.056.056 0 0 1 .059.007c.09.074.184.149.28.22a.058.058 0 0 1 .023.049.059.059 0 0 1-.028.046 9.224 9.224 0 0 1-1.405.669.058.058 0 0 0-.033.033.056.056 0 0 0 .002.047c.27.523.58 1.022.92 1.495a.056.056 0 0 0 .062.021 14.878 14.878 0 0 0 4.502-2.272.055.055 0 0 0 .016-.018.056.056 0 0 0 .008-.023c.375-3.883-.63-7.256-2.662-10.246a.046.046 0 0 0-.023-.021Zm-9.223 8.221c-.887 0-1.618-.814-1.618-1.814s.717-1.814 1.618-1.814c.908 0 1.632.821 1.618 1.814 0 1-.717 1.814-1.618 1.814Zm5.981 0c-.887 0-1.618-.814-1.618-1.814s.717-1.814 1.618-1.814c.908 0 1.632.821 1.618 1.814 0 1-.71 1.814-1.618 1.814Z0:["YaM7wNFVIwRdNdGfmqd4D",[[["",{"children":[["slug","resolvers/ccip-read","c"],{"children":["__PAGE__?{\"slug\":[\"resolvers\",\"ccip-read\"]}",{}]}]},"$undefined","$undefined",true],["",{"children":[["slug","resolvers/ccip-read","c"],{"children":["__PAGE__",{},[["$L1","$L2",null],null],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","$4","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/40ab4cab4d9447b9.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/08e28b78fef21dfc.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"className":"not-system scrollbar","children":[["$","head",null,{"children":[["$","link",null,{"rel":"icon","href":"/favicon.ico","sizes":"any"}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"url\":\"https://docs.ens.domains\",\"name\":\"ENS Documentation\",\"description\":\"Documentation for the ENS protocol.\",\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":\"https://docs.ens.domains?q={search_term_string}\",\"query-input\":\"required name=search_term_string\"}}"}}]]}],["$","body",null,{"className":"bg-ens-light-background-primary text-ens-light-text-primary dark:bg-ens-dark-background-primary dark:text-ens-dark-text-primary","children":[["$","$L6",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":["$","$L7",null,{"sections":"$undefined","children":["$","div",null,{"className":"h-full","id":"app","children":[["$","$L8",null,{"slug":"/"}],["$","$L9",null,{}],["$","$La",null,{}],["$","div",null,{"className":"relative mt-16 lg:mt-16","children":["$","div",null,{"className":"lg:ml-72 xl:ml-80","children":[false,["$","div",null,{"className":"px-6 lg:px-8","children":[["$","main",null,{"className":"relative my-4 space-y-4 py-4","children":[["$","div",null,{"className":"prose x text-ens-light-text-secondary dark:text-ens-dark-text-secondary","children":["$","$Lb",null,{}]}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Not Found\",\"description\":\"ENS Documentation\",\"image\":\"https://docs.ens.domains/opengraph/.png\"}"}}],["$","article",null,{"className":"prose x dark:prose-invert","children":["$","div",null,{"className":"not-prose text-center","children":[["$","$Lc",null,{"alt":"Shrug","src":"/shrug.png","width":200,"height":200,"className":"mx-auto"}],["$","h1",null,{"className":"mt-4 text-2xl font-bold","children":"Article Not Found"}],["$","p",null,{"className":"mb-3","children":"It doesn't look like this page exists..."}],["$","$Ld",null,{"href":"/","target":"$undefined","onClick":"$undefined","className":"btn btn-blue-primary","disabled":false,"children":[["$","svg",null,{"viewBox":"0 0 20 20","fill":"none","aria-hidden":"true","className":"mt-0.5 h-5 w-5 -ml-1 rotate-180","children":["$","path",null,{"stroke":"currentColor","strokeLinecap":"round","strokeLinejoin":"round","d":"m11.5 6.5 3 3.5m0 0-3 3.5m3-3.5h-9"}]}],"Go to Home",false]}]]}]}],["$","div",null,{"className":"prose pt-8","children":"$undefined"}]]}],["$","div",null,{"className":"prose","children":["$","div",null,{"className":"notprose w-full","children":["$","footer",null,{"className":"w-full space-y-4 border-t border-t-ens-light-border pb-16 pt-4 dark:border-t-ens-dark-border","children":[["$","div",null,{"className":"flex flex-wrap items-end justify-between gap-2","children":[["$","$Le",null,{}],["$","div",null,{"className":"w-fit","children":["$","$Lf",null,{"url":"$undefined"}]}]]}],["$","div",null,{"className":"flex flex-col items-center justify-between gap-5 sm:flex-row","children":[["$","p",null,{"className":"text-xs text-ens-light-text-secondary dark:text-ens-dark-text-secondary","children":["© Copyright ",2024,". All rights reserved."]}],["$","div",null,{"className":"flex gap-4","children":[["$","$Ld",null,{"href":"https://x.com/ensdomains","className":"group","target":"_blank","rel":"nofollow","children":[["$","span",null,{"className":"sr-only","children":"Follow us on X"}],["$","svg",null,{"stroke":"currentColor","fill":"currentColor","strokeWidth":"0","viewBox":"0 0 512 512","className":"size-5 fill-zinc-700 transition group-hover:fill-zinc-900 dark:group-hover:fill-zinc-500","children":["$undefined",[["$","path","0",{"d":"M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z","children":[]}]]],"style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}],["$","$Ld",null,{"href":"https://github.com/ensdomains","className":"group","target":"_blank","rel":"nofollow","children":[["$","span",null,{"className":"sr-only","children":"Follow us on GitHub"}],["$","svg",null,{"viewBox":"0 0 20 20","aria-hidden":"true","className":"size-5 fill-zinc-700 transition group-hover:fill-zinc-900 dark:group-hover:fill-zinc-500","children":["$","path",null,{"fillRule":"evenodd","clipRule":"evenodd","d":"M10 1.667c-4.605 0-8.334 3.823-8.334 8.544 0 3.78 2.385 6.974 5.698 8.106.417.075.573-.182.573-.406 0-.203-.011-.875-.011-1.592-2.093.397-2.635-.522-2.802-1.002-.094-.246-.5-1.005-.854-1.207-.291-.16-.708-.556-.01-.567.656-.01 1.124.62 1.281.876.75 1.292 1.948.93 2.427.705.073-.555.291-.93.531-1.143-1.854-.213-3.791-.95-3.791-4.218 0-.929.322-1.698.854-2.296-.083-.214-.375-1.09.083-2.265 0 0 .698-.224 2.292.876a7.576 7.576 0 0 1 2.083-.288c.709 0 1.417.096 2.084.288 1.593-1.11 2.291-.875 2.291-.875.459 1.174.167 2.05.084 2.263.53.599.854 1.357.854 2.297 0 3.278-1.948 4.005-3.802 4.219.302.266.563.78.563 1.58 0 1.143-.011 2.061-.011 2.35 0 .224.156.491.573.405a8.365 8.365 0 0 0 4.11-3.116 8.707 8.707 0 0 0 1.567-4.99c0-4.721-3.73-8.545-8.334-8.545Z"}]}]]}],["$","$Ld",null,{"href":"https://chat.ens.domains","className":"group","target":"_blank","rel":"nofollow","children":[["$","span",null,{"className":"sr-only","children":"Join our Discord server"}],["$","svg",null,{"viewBox":"0 0 20 20","aria-hidden":"true","className":"size-5 fill-zinc-700 transition group-hover:fill-zinc-900 dark:group-hover:fill-zinc-500","children":["$","path",null,{"d":"$10"}]}]]}]]}]]}]]}]}]}]]}]]}]}]]}]}],"notFoundStyles":[]}]}],["$","script",null,{"defer":true,"data-domain":"docs.ens.domains","src":"https://ens.v3x.report/js/script.js"}],["$","script",null,{"defer":true,"data-domain":"docs.ens.domains","src":"https://plausible.io/js/script.js"}]]}]]}]],null],null],["$L11",null]]]] 12:I[30918,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"Heading"] 14:I[33885,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"CopyButton"] 19:I[22419,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"LanguageSwitcher"] 1a:I[963,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"GitCommitLink"] 1b:I[64369,["911","static/chunks/cff26bbf-8c0455ff1778be20.js","567","static/chunks/2670e29a-254f21884cc8db2b.js","977","static/chunks/1311dc6c-860c92853ee66e29.js","939","static/chunks/fb37554d-4c33b9e5e9d9c4ea.js","701","static/chunks/e2908a71-9885ade59aa6a5f5.js","689","static/chunks/fa53cd88-198aeaa2f51a3320.js","694","static/chunks/694-beddaae0408bd717.js","284","static/chunks/284-4fd62594f09a08c2.js","924","static/chunks/924-9b288a3e7649fef0.js","691","static/chunks/691-4f02b293450b28e5.js","821","static/chunks/821-8d28c0d35a379a3d.js","213","static/chunks/213-89037468e9ed8292.js","483","static/chunks/483-154e8d2e657430f1.js","877","static/chunks/app/%5B...slug%5D/page-8e328ed1115fd327.js"],"TimeSince"] 13:T474,error OffchainLookup( address sender, string[] urls, bytes callData, bytes4 callbackFunction, bytes extraData ) 1c:T47e,M16.238 4.515a14.842 14.842 0 0 0-3.664-1.136.055.055 0 0 0-.059.027 10.35 10.35 0 0 0-.456.938 13.702 13.702 0 0 0-4.115 0 9.479 9.479 0 0 0-.464-.938.058.058 0 0 0-.058-.027c-1.266.218-2.497.6-3.664 1.136a.052.052 0 0 0-.024.02C1.4 8.023.76 11.424 1.074 14.782a.062.062 0 0 0 .024.042 14.923 14.923 0 0 0 4.494 2.272.058.058 0 0 0 .064-.02c.346-.473.654-.972.92-1.496a.057.057 0 0 0-.032-.08 9.83 9.83 0 0 1-1.404-.669.058.058 0 0 1-.029-.046.058.058 0 0 1 .023-.05c.094-.07.189-.144.279-.218a.056.056 0 0 1 .058-.008c2.946 1.345 6.135 1.345 9.046 0a.056.056 0 0 1 .059.007c.09.074.184.149.28.22a.058.058 0 0 1 .023.049.059.059 0 0 1-.028.046 9.224 9.224 0 0 1-1.405.669.058.058 0 0 0-.033.033.056.056 0 0 0 .002.047c.27.523.58 1.022.92 1.495a.056.056 0 0 0 .062.021 14.878 14.878 0 0 0 4.502-2.272.055.055 0 0 0 .016-.018.056.056 0 0 0 .008-.023c.375-3.883-.63-7.256-2.662-10.246a.046.046 0 0 0-.023-.021Zm-9.223 8.221c-.887 0-1.618-.814-1.618-1.814s.717-1.814 1.618-1.814c.908 0 1.632.821 1.618 1.814 0 1-.717 1.814-1.618 1.814Zm5.981 0c-.887 0-1.618-.814-1.618-1.814s.717-1.814 1.618-1.814c.908 0 1.632.821 1.618 1.814 0 1-.71 1.814-1.618 1.814Z2:["$","$L7",null,{"sections":[{"title":"How does it work?","navtitle":"","id":"how-does-it-work","indent":"0"},{"title":"Demo","navtitle":"","id":"demo","indent":"0"},{"title":"Unruggable Gateway","navtitle":"","id":"unruggable-gateway","indent":"0"},{"title":"CCIP Read Flow","navtitle":"","id":"ccip-read-flow","indent":"0"},{"title":"Writing a Gateway","navtitle":"","id":"writing-a-gateway","indent":"0"},{"title":"Template Repositories","navtitle":"","id":"template-repositories","indent":"1"},{"title":"Implement Gateway Endpoint","navtitle":"Implement Gateway","id":"endpoint","indent":"1"},{"title":"Trust Assumptions","navtitle":"","id":"trust-assumptions","indent":"2"},{"title":"Deploying a Resolver","navtitle":"","id":"deploying-a-resolver","indent":"1"},{"title":"Callback Function","navtitle":"","id":"callback-function","indent":"2"},{"title":"Enabling your Resolver","navtitle":"Setting Resolver","id":"set","indent":"1"},{"title":"Testing your Gateway","navtitle":"","id":"testing-your-gateway","indent":"0"}],"children":["$","div",null,{"className":"h-full","id":"app","children":[["$","$L8",null,{"slug":"/resolvers/ccip-read"}],["$","$L9",null,{}],["$","$La",null,{}],["$","div",null,{"className":"relative mt-16 lg:mt-16","children":["$","div",null,{"className":"lg:ml-72 xl:ml-80","children":[["$","div",null,{"className":"fixed z-10 ml-4 hidden 2xl:block","style":{"left":"calc(50vw + 26rem)"},"children":["$","div",null,{"className":"m-4 p-4","children":[["$","div",null,{"className":"text-sm text-ens-light-text-secondary dark:text-ens-dark-text-secondary","children":"On this page"}],["$","ul",null,{"className":"text-sm","children":[["$","li",null,{"children":["$","$Ld",null,{"href":"#how-does-it-work","style":{"paddingLeft":"0rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"How does it work?"}]}],["$","li",null,{"children":["$","$Ld",null,{"href":"#demo","style":{"paddingLeft":"0rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"Demo"}]}],["$","li",null,{"children":["$","$Ld",null,{"href":"#unruggable-gateway","style":{"paddingLeft":"0rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"Unruggable Gateway"}]}],["$","li",null,{"children":["$","$Ld",null,{"href":"#ccip-read-flow","style":{"paddingLeft":"0rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"CCIP Read Flow"}]}],["$","li",null,{"children":["$","$Ld",null,{"href":"#writing-a-gateway","style":{"paddingLeft":"0rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"Writing a Gateway"}]}],["$","li",null,{"children":["$","$Ld",null,{"href":"#template-repositories","style":{"paddingLeft":"1rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"Template Repositories"}]}],["$","li",null,{"children":["$","$Ld",null,{"href":"#endpoint","style":{"paddingLeft":"1rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"Implement Gateway"}]}],["$","li",null,{"children":["$","$Ld",null,{"href":"#trust-assumptions","style":{"paddingLeft":"2rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"Trust Assumptions"}]}],["$","li",null,{"children":["$","$Ld",null,{"href":"#deploying-a-resolver","style":{"paddingLeft":"1rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"Deploying a Resolver"}]}],["$","li",null,{"children":["$","$Ld",null,{"href":"#callback-function","style":{"paddingLeft":"2rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"Callback Function"}]}],["$","li",null,{"children":["$","$Ld",null,{"href":"#set","style":{"paddingLeft":"1rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"Setting Resolver"}]}],["$","li",null,{"children":["$","$Ld",null,{"href":"#testing-your-gateway","style":{"paddingLeft":"0rem"},"className":"hover:text-ens-light-blue-primary dark:hover:text-ens-dark-blue-primary","children":"Testing your Gateway"}]}]]}]]}]}],["$","div",null,{"className":"px-6 lg:px-8","children":[["$","main",null,{"className":"relative my-4 space-y-4 py-4","children":[["$","div",null,{"className":"prose x text-ens-light-text-secondary dark:text-ens-dark-text-secondary","children":["$","$Lb",null,{}]}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"Article\",\"headline\":\"Offchain Resolvers (CCIP Read)\",\"description\":\"Learn about how CCIP Read enables Offchain ENS Resolvers, how a gateway works, trust assumptions, and more.\",\"image\":\"https://docs.ens.domains/opengraph/resolvers/ccip-read.png\",\"author\":[{\"@type\":\"Person\",\"name\":\"luc.eth\",\"url\":\"https://github.com/luc.eth\"}]}"}}],["$","article",null,{"className":"prose x dark:prose-invert","children":["\n","\n",["$","h1",null,{"children":"Cross Chain / Offchain Resolvers"}],"\n","\n",["$","p",null,{"children":["The source of truth for a name and its subdomains does not always have to be on-chain or on Ethereum L1 at all.\nBy leveraging ",["$","$Ld",null,{"href":"https://eips.ethereum.org/EIPS/eip-3668","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["EIP-3668",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}],", the Cross Chain Interoperability Protocol (or CCIP Read for short), we can load information by hitting a so called \"Gateway\".\nWithin the context of ENS, this enables us to read names, addresses, text records and more from other chains, or even off-chain."]}],"\n",["$","div",null,{"className":"card1 p-4 justify-center items-center gap-4 hidden sm:flex","children":[["$","div",null,{"className":"not-prose","children":["$","div",null,{"className":"flex h-fit items-center gap-1 overflow-hidden !rounded-full border border-ens-light-border dark:border-ens-dark-border","children":[["$","div",null,{"className":"aspect-square size-12 overflow-hidden rounded-full p-1","children":["$","img",null,{"src":"https://enstate.rs/i/luc.eth","alt":"","className":"rounded-full border border-ens-light-border dark:border-ens-dark-border"}]}],["$","div",null,{"className":"px-3 pl-0 font-bold text-ens-light-blue-primary first-of-type:pl-3 dark:text-ens-dark-blue-primary","children":"lucemans.cb.id"}]]}]}],["$","div",null,{"children":"➡️"}],["$","div",null,{"className":"text-center leading-4","children":[["$","div",null,{"className":"font-bold","children":"Resolver"}],["$","div",null,{"children":"0x1234"}]]}],["$","div",null,{"children":"➡️"}],["$","div",null,{"className":"text-center leading-4","children":[["$","div",null,{"className":"font-bold","children":"Gateway"}],["$","div",null,{"children":"api.example.com"}]]}],["$","div",null,{"children":"➡️"}],["$","div",null,{"className":"text-center leading-4 card p-2 no-margin","children":[["$","div",null,{"className":"font-bold","children":"Address:"}],["$","div",null,{"children":"0x225...c3b5"}]]}]]}],"\n",["$","$L12",null,{"level":2,"id":"how-does-it-work","children":"How does it work?"}],"\n",["$","p",null,{"children":["The Cross Chain Interoperability Protocol (CCIP Read), is a client-side implemented protocol that introduces the ",["$","$Ld",null,{"href":"https://eips.ethereum.org/EIPS/eip-3668#contract-interface","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["OffchainLookup",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}]," error.\nOnce the client encounters this error, it will attempt to handle it by calling a gateway url. Most Ethereum libraries handle this for you, at no additional cost."]}],"\n",["$","div",null,{"className":"text-ens-light-text-primary dark:text-ens-dark-text-primary my-6 bg-[--var(--shiki-color-background)] ","children":["$undefined",["$","div",null,{"className":"hidable-code not-prose group","data-code-variant":"c","data-code-group":"d9b22972","children":[["$","div",null,{"className":"border-ens-light-border dark:border-ens-dark-border overflow-hidden border rounded-xl","children":["$","div",null,{"className":"relative","children":[["$","pre",null,{"children":[["$","code",null,{"className":"language-c","dangerouslySetInnerHTML":{"__html":"$13"}}]]}],["$","$L14",null,{"code":"error OffchainLookup(\n address sender,\n string[] urls,\n bytes callData,\n bytes4 callbackFunction,\n bytes extraData\n)\n"}]]}]}],"$undefined"]}]]}],"\n",["$","$L12",null,{"level":2,"id":"demo","children":"Demo"}],"\n",["$","p",null,{"children":["An example of CCIP Read in action can be found at ",["$","$Ld",null,{"href":"https://offchain.ens.gregskril.com/","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["offchain.ens.gregskril.com",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}],".\nThis example application allows you to claim a subname for 24 hours.\nThe name ",["$","$Ld",null,{"href":"https://ens.app/offchaindemo.eth","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["offchaindemo.eth",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}]," with resolver ",["$","$Ld",null,{"href":"https://etherscan.io/address/0xDB34Da70Cfd694190742E94B7f17769Bc3d84D27#code","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["0xDB3...4D27",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}],", reverts with ",["$","$Ld",null,{"href":"https://eips.ethereum.org/EIPS/eip-3668","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["OffchainLookup",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}]," and directs the client to a gateway url.\nThe ",["$","$Ld",null,{"href":"https://ens-gateway.gregskril.workers.dev/lookup/%7Bsender%7D/%7Bdata%7D.json","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["gateway url",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}]," returns the information and loads it from a temporary database."]}],"\n",["$","$L12",null,{"level":2,"id":"unruggable-gateway","children":"Unruggable Gateway"}],"\n",["$","p",null,{"children":"The Unruggable Gateway is a gateway that allows you to load data from specific Layer 2's whose proofs are verifyable on L1.\nThis means if you are looking to load data from Optimism or Arbitrum, the Unruggable Gateway allows you to trustlessly do so."}],"\n",["$","div",null,{"children":"$L15"}],"\n",["$","$L12",null,{"level":2,"id":"ccip-read-flow","children":"CCIP Read Flow"}],"\n",["$","p",null,{"children":["When a name is looked up the resolver responsible is called to resolve the name.\nDuring this execution the ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"OffchainLookup"}}]," error is thrown, and the client will attempt to reach out to the gateway specified by the error.\nIf successful the gateways results are returned to the callback function specified in the error.\nThe output of the callback function is then returned to the client and considered the result of the original lookup."]}],"\n",["$","img",null,{"src":"/content/learn/ccip-read/1.png","className":"w-full card"}],"\n",["$","$L12",null,{"level":2,"id":"writing-a-gateway","children":"Writing a Gateway"}],"\n",["$","p",null,{"children":["A gateway is an off-chain service that is responsible for returning the data requested by a client.\nA gateway must be implemented using the ",["$","$Ld",null,{"href":"https://eips.ethereum.org/EIPS/eip-3668#gateway-interface","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["Gateway Interface",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}]," as specified in EIP-3668.\nThis means it must expose an API served over https, and return data in a specific format.\nThis service can be a server, a serverless function, worker, etc.\nThe URL for this gateway is determined by the ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"OffchainLookup"}}]," error, and is passed as a parameter to the error."]}],"\n",["$","$L12",null,{"level":3,"id":"template-repositories","children":"Template Repositories"}],"\n",["$","div",null,{"children":["$L16","$L17","$L18"]}],"\n",["$","$L12",null,{"level":3,"id":"endpoint","children":"Implement Gateway Endpoint","navtitle":"Implement Gateway"}],"\n",["$","p",null,{"children":["There are two methods (GET and POST) you can choose to implement when writing a gateway. When your smart-contract reverts with the ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"OffchainLookup"}}]," error you can decide the url it returns.\nIf ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"{data}"}}]," can be successfully substituted out of the URL a GET request will be made, if no ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"{data}"}}]," is present a POST request will be made instead, with the data instead submitted as the post body."]}],"\n",["$","div",null,{"className":"text-ens-light-text-primary dark:text-ens-dark-text-primary my-6 bg-[--var(--shiki-color-background)] ","children":[["$","div",null,{"className":"relative flex min-h-[calc(theme(spacing.12)+1px)] items-center justify-between gap-x-4 rounded-t-lg border border-b-0 border-ens-light-border bg-ens-light-grey-surface px-4 dark:border-ens-dark-border dark:bg-ens-dark-grey-surface","children":[["$","div",null,{"className":"text-base text-ens-light-text-primary dark:text-ens-dark-text-primary","children":"Request"}],["$","$L19",null,{"snippets":[{"title":"POST","language":"yaml","preset":"post","config":"$undefined"},{"title":"GET","language":"yaml","preset":"get","config":"$undefined"}],"identifier":"59f03d64","presets":"method"}]]}],["$","div",null,{"className":"not-prose","children":[["$","div",null,{"className":"hidable-code not-prose group","data-code-variant":"post","data-code-group":"59f03d64","children":[["$","div",null,{"className":"border-ens-light-border dark:border-ens-dark-border overflow-hidden border rounded-b-xl","children":["$","div",null,{"className":"relative","children":[["$","pre",null,{"children":["$","code",null,{"className":"language-yaml","dangerouslySetInnerHTML":{"__html":"// POST if URL does not include '{data}' parameter\nURL: https://example.com/gateway/{sender}.json\nMethod: POST\nBody: data\n"}}]}],["$","$L14",null,{"code":"// POST if URL does not include '{data}' parameter\nURL: https://example.com/gateway/{sender}.json\nMethod: POST\nBody: data\n"}]]}]}],"$undefined"]}],["$","div",null,{"className":"hidable-code not-prose group","data-code-variant":"get","data-code-group":"59f03d64","children":[["$","div",null,{"className":"border-ens-light-border dark:border-ens-dark-border overflow-hidden border rounded-b-xl","children":["$","div",null,{"className":"relative","children":[["$","pre",null,{"children":["$","code",null,{"className":"language-yaml","dangerouslySetInnerHTML":{"__html":"// GET if URL includes '{data}' parameter\nURL: https://example.com/gateway/{sender}/{data}.json\nMethod: GET\n"}}]}],["$","$L14",null,{"code":"// GET if URL includes '{data}' parameter\nURL: https://example.com/gateway/{sender}/{data}.json\nMethod: GET\n"}]]}]}],"$undefined"]}]]}]]}],"\n",["$","div",null,{"className":"my-6","children":["$","ul",null,{"className":"m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5","children":[["$","li",null,{"className":"m-0 px-0 py-4 first:pt-0 last:pb-0","children":["$","dl",null,{"className":"m-0 flex flex-wrap items-center gap-x-3 gap-y-2","children":[["$","dt",null,{"className":"sr-only","children":"Name"}],["$","dd",null,{"children":["$","code",null,{"children":"sender"}]}],["$","dt",null,{"className":"sr-only","children":"Type"}],["$","dd",null,{"className":"font-mono text-xs text-zinc-400 dark:text-zinc-500","children":"address"}],["$","dt",null,{"className":"sr-only","children":"Description"}],["$","dd",null,{"className":"w-full flex-none [&>:first-child]:mt-0 [&>:last-child]:mb-0","children":["$","p",null,{"children":["Lowercased address of the contract reverting with the ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"OffchainLookup"}}]," error."]}]}]]}]}],["$","li",null,{"className":"m-0 px-0 py-4 first:pt-0 last:pb-0","children":["$","dl",null,{"className":"m-0 flex flex-wrap items-center gap-x-3 gap-y-2","children":[["$","dt",null,{"className":"sr-only","children":"Name"}],["$","dd",null,{"children":["$","code",null,{"children":"data"}]}],["$","dt",null,{"className":"sr-only","children":"Type"}],["$","dd",null,{"className":"font-mono text-xs text-zinc-400 dark:text-zinc-500","children":"bytes"}],["$","dt",null,{"className":"sr-only","children":"Description"}],["$","dd",null,{"className":"w-full flex-none [&>:first-child]:mt-0 [&>:last-child]:mb-0","children":["$","p",null,{"children":["0x prefixed bytes of the data passed to the ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"OffchainLookup"}}]," error."]}]}]]}]}]]}]}],"\n",["$","$L12",null,{"level":4,"id":"trust-assumptions","children":"Trust Assumptions"}],"\n",["$","p",null,{"children":"The gateways response is returned to a callback function on the resolver, we assume this function verifies the data returned by the gateway.\nGateways form a \"one-of-many\" trust relationship as we require only one gateway to be honest for the system to keep functioning."}],"\n",["$","$L12",null,{"level":3,"id":"deploying-a-resolver","children":"Deploying a Resolver"}],"\n",["$","p",null,{"children":["Once you have written your gateway you need to deploy a resolver contract.\nFor ready-to-deploy contracts check the demo's above or visit ",["$","$Ld",null,{"href":"https://ccip.tools/ref=ens-docs","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["ccip.tools",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}],".\nIf you would like to read more about writing your own resolver checkout the ",["$","$Ld",null,{"href":"/resolvers/writing","target":"$undefined","className":"my-0 inline-flex items-center gap-1","children":["Writing a Resolver","$undefined"]}]," guide."]}],"\n",["$","p",null,{"children":["The gist is that this resolver must implement the specifications you plan to support (such as ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"addr()"}}]," or ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"resolve()"}}],"), and then revert with ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"OffchainLookup"}}]," and your gateway URL."]}],"\n",["$","$L12",null,{"level":4,"id":"callback-function","children":"Callback Function"}],"\n",["$","p",null,{"children":["When reverting with an ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"OffchainLookup"}}]," error you can specify a callback function.\nThe callback function is evaluated on the client side with the data returned from the gateway.\nThis makes it a perfect place to validate proofs, signatures, or other data."]}],"\n",["$","$L12",null,{"level":3,"id":"set","children":"Enabling your Resolver","navtitle":"Setting Resolver"}],"\n",["$","p",null,{"children":["Last but not least you need to instruct your name to use the resolver-gateway combo.\nTo do this, simply visit the ",["$","$Ld",null,{"href":"https://ens.app/","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["ENS Manager App",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}]," and set the resolver of your name to the contract address of your resolver.\nThis means that all resolution for this name from now on will be handled by your resolver."]}],"\n",["$","p",null,{"children":["An alternative option is to ",["$","$Ld",null,{"href":"/resolvers/interacting","target":"$undefined","className":"my-0 inline-flex items-center gap-1","children":["set the Resolver manually","$undefined"]}]," or ",["$","$Ld",null,{"href":"/resolvers/interacting","target":"$undefined","className":"my-0 inline-flex items-center gap-1","children":["from a dApp","$undefined"]}],"."]}],"\n",["$","$L12",null,{"level":2,"id":"testing-your-gateway","children":"Testing your Gateway"}],"\n",["$","p",null,{"children":["To test your gateway you can use the ",["$","$Ld",null,{"href":"https://ens.app/","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["ENS Manager App",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}]," or if you want more detail try using ",["$","$Ld",null,{"href":"https://enstate.rs/n/luc.willbreak.eth","target":"_blank","className":"my-0 inline-flex items-center gap-1","children":["enstate",["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}]," and notice the ",["$","code",null,{"dangerouslySetInnerHTML":{"__html":"ccip_urls"}}]," field.\nIf your results are loaded successfully, you have successfully implemented a gateway resolver."]}],"\n",["$","p",null,{"children":"A testing tool for CCIP Read functions will be available soon."}],"\n"]}],["$","div",null,{"className":"prose pt-8","children":[["$","div",null,{"className":"border-t border-ens-light-border pt-2 text-ens-light-text-primary dark:border-ens-dark-border dark:text-ens-dark-text-primary","children":["$","div",null,{"className":"leading-6","children":["$undefined","$undefined",["$","div",null,{"className":"flex justify-between text-xs","children":[["$","div",null,{"children":"Contributors"}],["$","div",null,{"className":"flex -space-x-2","children":["$undefined",[["$","a","luc.eth",{"href":"https://ens.page/luc.eth?ref=ens-docs","rel":"nofollow","target":"_blank","className":"group relative transition-all hover:scale-105","children":[["$","img",null,{"src":"https://avatarservice.xyz/64/luc.eth.webp","className":"my-0 aspect-square w-6 rounded-full shadow-md","alt":"luc.eth"}],["$","span",null,{"className":"absolute left-1/2 top-0 size-0","children":["$","span",null,{"className":"relative","children":["$","span",null,{"className":"absolute top-[-0.2rem] hidden -translate-x-1/2 -translate-y-full items-center gap-1 rounded-lg border border-ens-light-border bg-ens-light-background-primary px-2 py-1 text-xs group-hover:flex dark:border-ens-dark-border dark:bg-ens-dark-background-primary","children":[["$","span",null,{"children":"luc.eth"}],["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","children":[]}],["$","polyline","1",{"points":"15 3 21 3 21 9","children":[]}],["$","line","2",{"x1":"10","y1":"14","x2":"21","y2":"3","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}]}]}]]}]]]}]]}],["$","div",null,{"className":"flex items-center justify-between text-xs","children":[["$","div",null,{"children":"Hash"}],["$","$L1a",null,{"file":"/docs/resolvers/ccip-read.mdx","hash":"0989ab4","children":[["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","circle","0",{"cx":"12","cy":"12","r":"4","children":[]}],["$","line","1",{"x1":"1.05","y1":"12","x2":"7","y2":"12","children":[]}],["$","line","2",{"x1":"17.01","y1":"12","x2":"22.96","y2":"12","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}],"0989ab4"]}]]}],["$","div",null,{"className":"flex items-center justify-between text-xs","children":[["$","div",null,{"children":"Last Modified"}],["$","$L1a",null,{"file":"/docs/resolvers/ccip-read.mdx","hash":"0989ab4","children":[["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","circle","0",{"cx":"12","cy":"12","r":"10","children":[]}],["$","polyline","1",{"points":"12 6 12 12 16 14","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}],["$","$L1b",null,{"date":1732122334000}]]}]]}]]}]}],"$undefined","$undefined"]}]]}],["$","div",null,{"className":"prose","children":["$","div",null,{"className":"notprose w-full","children":["$","footer",null,{"className":"w-full space-y-4 border-t border-t-ens-light-border pb-16 pt-4 dark:border-t-ens-dark-border","children":[["$","div",null,{"className":"flex flex-wrap items-end justify-between gap-2","children":[["$","$Le",null,{}],["$","div",null,{"className":"w-fit","children":["$","$Lf",null,{"url":"/docs/resolvers/ccip-read.mdx"}]}]]}],["$","div",null,{"className":"flex flex-col items-center justify-between gap-5 sm:flex-row","children":[["$","p",null,{"className":"text-xs text-ens-light-text-secondary dark:text-ens-dark-text-secondary","children":["© Copyright ",2024,". All rights reserved."]}],["$","div",null,{"className":"flex gap-4","children":[["$","$Ld",null,{"href":"https://x.com/ensdomains","className":"group","target":"_blank","rel":"nofollow","children":[["$","span",null,{"className":"sr-only","children":"Follow us on X"}],["$","svg",null,{"stroke":"currentColor","fill":"currentColor","strokeWidth":"0","viewBox":"0 0 512 512","className":"size-5 fill-zinc-700 transition group-hover:fill-zinc-900 dark:group-hover:fill-zinc-500","children":["$undefined",[["$","path","0",{"d":"M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z","children":[]}]]],"style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]]}],["$","$Ld",null,{"href":"https://github.com/ensdomains","className":"group","target":"_blank","rel":"nofollow","children":[["$","span",null,{"className":"sr-only","children":"Follow us on GitHub"}],["$","svg",null,{"viewBox":"0 0 20 20","aria-hidden":"true","className":"size-5 fill-zinc-700 transition group-hover:fill-zinc-900 dark:group-hover:fill-zinc-500","children":["$","path",null,{"fillRule":"evenodd","clipRule":"evenodd","d":"M10 1.667c-4.605 0-8.334 3.823-8.334 8.544 0 3.78 2.385 6.974 5.698 8.106.417.075.573-.182.573-.406 0-.203-.011-.875-.011-1.592-2.093.397-2.635-.522-2.802-1.002-.094-.246-.5-1.005-.854-1.207-.291-.16-.708-.556-.01-.567.656-.01 1.124.62 1.281.876.75 1.292 1.948.93 2.427.705.073-.555.291-.93.531-1.143-1.854-.213-3.791-.95-3.791-4.218 0-.929.322-1.698.854-2.296-.083-.214-.375-1.09.083-2.265 0 0 .698-.224 2.292.876a7.576 7.576 0 0 1 2.083-.288c.709 0 1.417.096 2.084.288 1.593-1.11 2.291-.875 2.291-.875.459 1.174.167 2.05.084 2.263.53.599.854 1.357.854 2.297 0 3.278-1.948 4.005-3.802 4.219.302.266.563.78.563 1.58 0 1.143-.011 2.061-.011 2.35 0 .224.156.491.573.405a8.365 8.365 0 0 0 4.11-3.116 8.707 8.707 0 0 0 1.567-4.99c0-4.721-3.73-8.545-8.334-8.545Z"}]}]]}],["$","$Ld",null,{"href":"https://chat.ens.domains","className":"group","target":"_blank","rel":"nofollow","children":[["$","span",null,{"className":"sr-only","children":"Join our Discord server"}],["$","svg",null,{"viewBox":"0 0 20 20","aria-hidden":"true","className":"size-5 fill-zinc-700 transition group-hover:fill-zinc-900 dark:group-hover:fill-zinc-500","children":["$","path",null,{"d":"$1c"}]}]]}]]}]]}]]}]}]}]]}]]}]}]]}]}] 11:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Offchain Resolvers (CCIP Read) | ENS Docs"}],["$","meta","3",{"name":"description","content":"Learn about how CCIP Read enables Offchain ENS Resolvers, how a gateway works, trust assumptions, and more."}],["$","link","4",{"rel":"author","href":"https://ens.page/luc.eth?ref=ens-docs"}],["$","meta","5",{"name":"author","content":"luc.eth"}],["$","link","6",{"rel":"canonical","href":"https://docs.ens.domains/resolvers/ccip-read"}],["$","meta","7",{"property":"og:title","content":"Offchain Resolvers (CCIP Read)"}],["$","meta","8",{"property":"og:description","content":"Learn about how CCIP Read enables Offchain ENS Resolvers, how a gateway works, trust assumptions, and more."}],["$","meta","9",{"property":"og:image","content":"https://docs.ens.domains/opengraph/resolvers/ccip-read.png"}],["$","meta","10",{"property":"og:type","content":"article"}],["$","meta","11",{"property":"article:author","content":"https://ens.page/luc.eth?ref=ens-docs"}],["$","meta","12",{"property":"article:tag","content":"ENS"}],["$","meta","13",{"property":"article:tag","content":"Ethereum Name Service"}],["$","meta","14",{"property":"article:tag","content":".eth"}],["$","meta","15",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","16",{"name":"twitter:title","content":"Offchain Resolvers (CCIP Read)"}],["$","meta","17",{"name":"twitter:description","content":"Learn about how CCIP Read enables Offchain ENS Resolvers, how a gateway works, trust assumptions, and more."}],["$","meta","18",{"name":"twitter:image","content":"https://docs.ens.domains/opengraph/resolvers/ccip-read.png"}]] 1:null 17:["$","span",null,{"className":"not-prose gh-repo block","children":["$","a",null,{"href":"https://github.com/ensdomains/offchain-gateway-rs","target":"_blank","className":"mb-2 flex w-full rounded-lg border border-ens-light-border p-4 hover:bg-ens-light-background-secondary dark:border-ens-dark-border dark:hover:bg-ens-dark-background-secondary","children":[["$","span",null,{"className":"block pt-1","children":["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]}],["$","span",null,{"className":"grow pl-2 leading-5","children":[["$","b",null,{"children":"ensdomains/offchain-gateway-rs"}],["$","p",null,{"children":"Offchain CCIP Read Gateway Resolver implementation in Rust (& postgres)"}]]}],["$","span",null,{"className":"hidden items-start gap-2 md:flex","children":[["$","span",null,{"style":{"color":"#dea584"},"className":"flex items-center text-sm","children":[["$","span",null,{"className":"mr-0.5 text-xs leading-3","children":"●"}],["$","span",null,{"className":"leading-3","children":"Rust"}]]}],false,false]}]]}]}] 18:["$","span",null,{"className":"not-prose gh-repo block","children":["$","a",null,{"href":"https://github.com/gskril/ens-offchain-resolver-read-from-api","target":"_blank","className":"mb-2 flex w-full rounded-lg border border-ens-light-border p-4 hover:bg-ens-light-background-secondary dark:border-ens-dark-border dark:hover:bg-ens-dark-background-secondary","children":[["$","span",null,{"className":"block pt-1","children":["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]}],["$","span",null,{"className":"grow pl-2 leading-5","children":[["$","b",null,{"children":"gskril/ens-offchain-resolver-read-from-api"}],["$","p",null,{"children":"CCIP Read gateway that relays data from an external API"}]]}],["$","span",null,{"className":"hidden items-start gap-2 md:flex","children":[["$","span",null,{"style":{"color":"#2b7489"},"className":"flex items-center text-sm","children":[["$","span",null,{"className":"mr-0.5 text-xs leading-3","children":"●"}],["$","span",null,{"className":"leading-3","children":"TypeScript"}]]}],false,false]}]]}]}] 16:["$","span",null,{"className":"not-prose gh-repo block","children":["$","a",null,{"href":"https://github.com/ensdomains/offchain-resolver","target":"_blank","className":"mb-2 flex w-full rounded-lg border border-ens-light-border p-4 hover:bg-ens-light-background-secondary dark:border-ens-dark-border dark:hover:bg-ens-dark-background-secondary","children":[["$","span",null,{"className":"block pt-1","children":["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]}],["$","span",null,{"className":"grow pl-2 leading-5","children":[["$","b",null,{"children":"ensdomains/offchain-resolver"}],["$","p",null,{"children":"CCIP Read Offchain ENS Resolver with Cloudflare Workers"}]]}],["$","span",null,{"className":"hidden items-start gap-2 md:flex","children":[["$","span",null,{"style":{"color":"#2b7489"},"className":"flex items-center text-sm","children":[["$","span",null,{"className":"mr-0.5 text-xs leading-3","children":"●"}],["$","span",null,{"className":"leading-3","children":"TypeScript"}]]}],["$","span",null,{"className":"flex items-center text-gray-400","children":[["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","className":"mr-0.5","children":["$undefined",[["$","polygon","0",{"points":"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2","children":[]}]]],"style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}],["$","span",null,{"className":"leading-3","children":144}]]}],["$","span",null,{"className":"flex items-center text-gray-400","children":[["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","className":"mr-0.5","children":["$undefined",[["$","line","0",{"x1":"6","y1":"3","x2":"6","y2":"15","children":[]}],["$","circle","1",{"cx":"18","cy":"6","r":"3","children":[]}],["$","circle","2",{"cx":"6","cy":"18","r":"3","children":[]}],["$","path","3",{"d":"M18 9a9 9 0 0 1-9 9","children":[]}]]],"style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}],["$","span",null,{"className":"leading-3","children":68}]]}]]}]]}]}] 15:["$","span",null,{"className":"not-prose gh-repo block","children":["$","a",null,{"href":"https://github.com/unruggable-labs/unruggable-gateways","target":"_blank","className":"mb-2 flex w-full rounded-lg border border-ens-light-border p-4 hover:bg-ens-light-background-secondary dark:border-ens-dark-border dark:hover:bg-ens-dark-background-secondary","children":[["$","span",null,{"className":"block pt-1","children":["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","children":["$undefined",[["$","path","0",{"d":"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22","children":[]}]]],"className":"$undefined","style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}]}],["$","span",null,{"className":"grow pl-2 leading-5","children":[["$","b",null,{"children":"unruggable-labs/unruggable-gateways"}],["$","p",null,{"children":"This repository implements a complete solution for fetching proofs of data from rollup chains and verifying that data on Layer 1 Ethereum."}]]}],["$","span",null,{"className":"hidden items-start gap-2 md:flex","children":[["$","span",null,{"style":{"color":"#2b7489"},"className":"flex items-center text-sm","children":[["$","span",null,{"className":"mr-0.5 text-xs leading-3","children":"●"}],["$","span",null,{"className":"leading-3","children":"TypeScript"}]]}],["$","span",null,{"className":"flex items-center text-gray-400","children":[["$","svg",null,{"stroke":"currentColor","fill":"none","strokeWidth":"2","viewBox":"0 0 24 24","strokeLinecap":"round","strokeLinejoin":"round","className":"mr-0.5","children":["$undefined",[["$","polygon","0",{"points":"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2","children":[]}]]],"style":{"color":"$undefined"},"height":"1em","width":"1em","xmlns":"http://www.w3.org/2000/svg"}],["$","span",null,{"className":"leading-3","children":67}]]}],false]}]]}]}]