1<!DOCTYPE html><!-- Last Published: Mon Sep 07 2026 10:58:35 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="tatum-staging-be5f9165203262a0315c5a836.webflow.io" data-wf-page="6775511eea836401efb94fc6" data-wf-site="6541395f64fcf968b48ee20f" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Tatum Ecosystem - Find Best-in-Class Blockchain Solutions Fast</title><meta content="Easily find all necessary tools to build your Web3 application or submit your own application to the Easyblox partner ecosystem to reach thousands of developers looking for tools like yours." name="description"/><meta content="Tatum Ecosystem - Find Best-in-Class Blockchain Solutions Fast" property="og:title"/><meta content="Easily find all necessary tools to build your Web3 application or submit your own application to the Easyblox partner ecosystem to reach thousands of developers looking for tools like yours." property="og:description"/><meta content="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/68acccb3aa69102bc5e89a0a_Tatum%20Ecosystem.png" property="og:image"/><meta content="Tatum Ecosystem - Find Best-in-Class Blockchain Solutions Fast" name="twitter:title"/><meta content="Easily find all necessary tools to build your Web3 application or submit your own application to the Easyblox partner ecosystem to reach thousands of developers looking for tools like yours." name="twitter:description"/><meta content="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/68acccb3aa69102bc5e89a0a_Tatum%20Ecosystem.png" name="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="kZHIimsuD4IewWY8gaxrHUD7kfrtEIsORDhJQzig9Wc" name="google-site-verification"/><link href="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/css/tatum-staging-be5f9165203262a0315c5a836.shared.9fe0ab035.min.css" rel="stylesheet" type="text/css" integrity="sha384-n+CrA1X1nsAS8cYtcnPnzDaVrQAGEKESX2RYU34yog9/r0z0kTFRs1xTWz/xi8RX" crossorigin="anonymous"/><link href="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/css/tatum-staging-be5f9165203262a0315c5a836.6775511eea836401efb94fc6.57bf2f09c.opt.min.css" rel="stylesheet" type="text/css" integrity="sha384-V78vCcrY1Yw90oCsJByrfVWVOmDFXXSVX8ETb0p3TrSIZd5zRLYUFEIIlcSF3QhP" crossorigin="anonymous"/><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/>
1<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script>
1<script type="text/javascript">WebFont.load({ google: { families: ["Inconsolata:400,700","Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic","Poppins:300,400,500,600,700"] }});</script>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/67c4c36995901a1d7433ee86_Easyblox%20Favicon.svg" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/67c4bfd17eb5317535751ff1_Webclip.svg" rel="apple-touch-icon"/><link href="https://ecosystem.tatum.io" rel="canonical"/><!-- Performance optimizations --> 2<link rel="dns-prefetch" href="https://cdn.prod.website-files.com"> 3<link rel="preconnect" href="https://cdn.prod.website-files.com" crossorigin> 4 5<!-- Google Tag Manager -->
6<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 7new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 8j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 9'https://data.tatum.io/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 10})(window,document,'script','dataLayer','GTM-MCDBPXRS');</script>
10 11<!-- End Google Tag Manager --> 12 13<style> 14.ch2-icon-compact { 15 bottom: 50px !important; 16} 17</style> 18 19<meta property="og:site_name" content="Tatum Ecosystem" /> 20<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/sygnaltech/[email protected]/dist/css/webflow-html.css"> 21 22<!-- [Attributes by Finsweet] Copy to clipboard -->
23<script defer src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-copyclip@1/copyclip.js"></script>
23 24<!-- [Attributes by Finsweet] CMS Combine -->
25<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmscombine@1/cmscombine.js"></script>
25 26<!-- [Attributes by Finsweet] CMS Nest -->
27<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsnest@1/cmsnest.js"></script>
27 28<!-- [Attributes by Finsweet] CMS Static -->
29<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsstatic@1/cmsstatic.js"></script>
29 30<!-- [Attributes by Finsweet] CMS Filter -->
31<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsfilter@1/cmsfilter.js"></script>
31 32<!-- [Attributes by Finsweet] CMS Load -->
33<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsload@1/cmsload.js"></script>
33 34 35<style> 36 .multi-ref-target a { 37 border-bottom: none; 38} 39</style></head><body class="body ecosystem-home"><div class="page-wrap ecosystem-home"><div data-collapse="medium" data-animation="default" data-duration="400" data-w-id="07340897-bbfb-fdfb-8d4d-63fe5b863c2c" data-easing="ease" data-easing2="ease" role="banner" class="navbar is-recs-nav w-nav"><div class="navbar-wrapper"><div class="padding-global"><nav role="navigation" class="menu is-recs w-nav-menu"><div class="menu-left is-new"><a href="/" aria-current="page" class="brand-2 w-nav-brand w--current"><img width="139" loading="lazy" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/68a328f441c334b16394eb30_Ecosystem.svg" class="brand-img is-recs"/></a></div><div class="menu-right is-new"><a href="https://www.easyblox.io/" class="dropdown-toggle-5 is-recs-nav w-nav-link">Solutions</a><a href="/developers" class="dropdown-toggle-5 is-recs-nav w-nav-link">Developers</a><a href="https://www.easyblox.io/#about" class="dropdown-toggle-3 is-recs-nav w-nav-link">About</a><a href="https://www.easyblox.io/#FAQ" class="dropdown-toggle-3 is-recs-nav w-nav-link">FAQ</a><a href="/become-a-partner" class="nav-button is-purple is-rec-cta w-button">Become a Partner</a><div class="dropdown-toggle-3 line"></div><div class="dropdown-toggle-3 line"></div></div></nav><div class="container"><a href="/old-home" class="brand-2 responsive w-nav-brand"><img loading="lazy" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/68a328f441c334b16394eb30_Ecosystem.svg" alt="" class="tatum-logo"/></a><div class="dropdown-footer-wrapper tablet"><div class="container-3"></div></div><div class="menu-button w-nav-button"><div class="menu-button-line top"></div><div class="menu-button-line middle"></div><div class="menu-button-line last"></div></div></div></div></div><div class="svg-defs-01 hidden w-embed"><!-- SVG definitions. We are using 3 different embeds due to the 10000 character limit --> 40<svg> 41 <defs> 42 <path id="caret" d="M28 12.5l-2.5-2.5-8.914 8.914-9.086-8.914-2.5 2.5 11.5 11.5z"></path> 43 <path id="globe" d="M9.5,0 C4.275,0 0,4.275 0,9.5 C0,14.725 4.275,19 9.5,19 C14.725,19 19,14.725 19,9.5 C19,4.275 14.725,0 9.5,0 Z M16.98125,5.9375 L13.359375,5.9375 C13.0625,4.096875 12.528125,2.553125 11.815625,1.54375 C14.13125,2.196875 15.971875,3.8 16.98125,5.9375 Z M12.46875,9.5 C12.46875,10.33125 12.409375,11.103125 12.35,11.875 L6.65,11.875 C6.590625,11.103125 6.53125,10.33125 6.53125,9.5 C6.53125,8.66875 6.590625,7.896875 6.65,7.125 L12.35,7.125 C12.409375,7.896875 12.46875,8.66875 12.46875,9.5 Z M9.5,17.8125 C8.490625,17.8125 7.3625,15.971875 6.828125,13.0625 L12.171875,13.0625 C11.6375,15.971875 10.509375,17.8125 9.5,17.8125 Z M6.828125,5.9375 C7.3625,3.028125 8.490625,1.1875 9.5,1.1875 C10.509375,1.1875 11.6375,3.028125 12.171875,5.9375 L6.828125,5.9375 Z M7.184375,1.54375 C6.471875,2.553125 5.9375,4.096875 5.640625,5.9375 L2.01875,5.9375 C3.028125,3.8 4.86875,2.196875 7.184375,1.54375 Z M1.54375,7.125 L5.4625,7.125 C5.403125,7.896875 5.34375,8.66875 5.34375,9.5 C5.34375,10.33125 5.403125,11.103125 5.4625,11.875 L1.54375,11.875 C1.30625,11.103125 1.1875,10.33125 1.1875,9.5 C1.1875,8.66875 1.30625,7.896875 1.54375,7.125 Z M2.01875,13.0625 L5.640625,13.0625 C5.9375,14.903125 6.471875,16.446875 7.184375,17.45625 C4.86875,16.803125 3.028125,15.2 2.01875,13.0625 Z M11.815625,17.45625 C12.528125,16.3875 13.0625,14.903125 13.359375,13.0625 L16.98125,13.0625 C15.971875,15.2 14.13125,16.803125 11.815625,17.45625 Z M17.45625,11.875 L13.5375,11.875 C13.596875,11.103125 13.65625,10.33125 13.65625,9.5 C13.65625,8.66875 13.596875,7.896875 13.5375,7.125 L17.45625,7.125 C17.69375,7.896875 17.8125,8.66875 17.8125,9.5 C17.8125,10.33125 17.69375,11.103125 17.45625,11.875 Z"></path> 44 <path id="envelope" d="m15.4375 2.375h-11.875c-1.959375 0-3.5625 1.603125-3.5625 3.5625v7.125c0 1.959375 1.603125 3.5625 3.5625 3.5625h11.875c1.959375 0 3.5625-1.603125 3.5625-3.5625v-7.125c0-1.959375-1.603125-3.5625-3.5625-3.5625zm0 1.1875c.415625 0 .83125.11875 1.1875.35625l-6.709375 6.709375c-.2375.2375-.59375.2375-.83125 0l-6.709375-6.709375c.35625-.2375.771875-.35625 1.1875-.35625zm2.375 9.5c0 1.30625-1.06875 2.375-2.375 2.375h-11.875c-1.30625 0-2.375-1.06875-2.375-2.375v-7.125c0-.415625.11875-.83125.35625-1.1875l6.709375 6.709375c.35625.35625.771875.534375 1.246875.534375s.95-.178125 1.246875-.534375l6.709375-6.709375c.2375.35625.35625.771875.35625 1.1875z"></path> 45 <path id="objectives" d="M28.4801 24.0808L23.5201 16.4008C24.8001 14.8008 25.6001 12.7208 25.6001 10.4008C25.6001 5.12079 21.2801 0.800781 16.0001 0.800781C10.7201 0.800781 6.40008 5.12079 6.40008 10.4008C6.40008 12.7208 7.20008 14.8008 8.56008 16.4808L3.60008 24.1608C2.64008 25.6008 2.56008 27.3608 3.44008 28.8808C4.24008 30.4008 5.76008 31.2808 7.52008 31.2808H24.7201C26.4001 31.2808 27.9201 30.4008 28.8001 28.8808C29.6801 27.3608 29.3601 25.5208 28.4801 24.0808ZM8.80008 10.4008C8.80008 6.40079 12.0001 3.20079 16.0001 3.20079C20.0001 3.20079 23.2001 6.40079 23.2001 10.4008C23.2001 11.8408 22.8001 13.2008 22.0801 14.3208L19.9201 10.9608C19.0401 9.68079 17.6001 8.88079 16.0801 8.88079C14.5601 8.88079 13.1201 9.68079 12.2401 10.9608L10.0801 14.3208C9.20008 13.2008 8.80008 11.8408 8.80008 10.4008ZM20.4001 16.1608C19.1201 17.0408 17.6801 17.6008 16.0001 17.6008C14.3201 17.6008 12.8801 17.0408 11.6001 16.0808L14.1601 12.2408C14.5601 11.6008 15.2801 11.2808 16.0001 11.2808C16.7201 11.2808 17.4401 11.6808 17.8401 12.2408L20.4001 16.1608ZM26.5601 27.6808C26.1601 28.4008 25.4401 28.8008 24.6401 28.8
45008H7.36008C6.56008 28.8008 5.84008 28.4008 5.44008 27.6808C5.04008 26.9608 5.12008 26.1608 5.52008 25.4408L10.3201 18.1608C11.9201 19.3608 13.8401 20.0008 16.0001 20.0008C18.1601 20.0008 20.0801 19.2808 21.6801 18.1608L26.4801 25.4408C26.8801 26.0808 26.9601 26.9608 26.5601 27.6808Z"></path> 46 <path id="cronogram" d="M0,9 L0,11 C0,12.7 1.3,14 3,14 L14,14 L14,12 L3,12 C2.4,12 2,11.6 2,11 L2,9 C2,8.4 2.4,8 3,8 L14,8 L14,6 L3,6 C1.3,6 0,7.3 0,9 Z M8,19 L8,21 C8,22.7 9.3,24 11,24 L14,24 L14,22 L11,22 C10.4,22 10,21.6 10,21 L10,19 C10,18.4 10.4,18 11,18 L14,18 L14,16 L11,16 C9.3,16 8,17.3 8,19 Z M29,16 L18,16 L18,14 L21,14 C22.7,14 24,12.7 24,11 L24,9 C24,7.3 22.7,6 21,6 L18,6 L18,3 C18,2.4 17.6,2 17,2 C16.4,2 16,2.4 16,3 L16,27 C16,27.6 16.4,28 17,28 C17.6,28 18,27.6 18,27 L18,24 L29,24 C30.7,24 32,22.7 32,21 L32,19 C32,17.3 30.7,16 29,16 Z M18,8 L21,8 C21.6,8 22,8.4 22,9 L22,11 C22,11.6 21.6,12 21,12 L18,12 L18,8 Z M30,21 C30,21.6 29.6,22 29,22 L18,22 L18,18 L29,18 C29.6,18 30,18.4 30,19 L30,21 Z"></path> 47 <path id="portfolio" d="M4.44444444,30 C5.21481481,30 5.88888889,29.3466667 5.88888889,28.6 L5.88888889,3.4 C5.88888889,2.65333333 5.21481481,2 4.44444444,2 C3.67407407,2 3,2.65333333 3,3.4 L3,28.6 C3,29.3466667 3.67407407,30 4.44444444,30 Z M12.1481481,13.2 C12.9185185,13.2 13.5925926,13.8533333 13.5925926,14.6 L13.5925926,28.6 C13.5925926,29.3466667 12.9185185,30 12.1481481,30 C11.3777778,30 10.7037037,29.3466667 10.7037037,28.6 L10.7037037,14.6 C10.7037037,13.8533333 11.3777778,13.2 12.1481481,13.2 Z M21.2962963,7.13333333 C21.2962963,6.38666667 20.6222222,5.73333333 19.8518519,5.73333333 C19.0814815,5.73333333 18.4074074,6.38666667 18.4074074,7.13333333 L18.4074074,28.6 C18.4074074,29.3466667 19.0814815,30 19.8518519,30 C20.6222222,30 21.2962963,29.3466667 21.2962963,28.6 L21.2962963,7.13333333 Z M27.5555556,19.7333333 C28.3259259,19.7333333 29,20.3866667 29,21.1333333 L29,28.6 C29,29.3466667 28.3259259,3
470 27.5555556,30 C26.7851852,30 26.1111111,29.3466667 26.1111111,28.6 L26.1111111,21.1333333 C26.1111111,20.3866667 26.7851852,19.7333333 27.5555556,19.7333333 Z"></path> 48 <path id="resources" d="M26,28 L6,28 C2.7,28 0,25.3 0,22 L0,10 C0,6.7 2.7,4 6,4 L26,4 C29.3,4 32,6.7 32,10 L32,22 C32,25.3 29.3,28 26,28 Z M6,6 C3.8,6 2,7.8 2,10 L2,22 C2,24.2 3.8,26 6,26 L26,26 C28.2,26 30,24.2 30,22 L30,10 C30,7.8 28.2,6 26,6 L6,6 Z M8.6,20.2 L13.8,16.1 L18.9,19.2 C19.3,19.5 19.9,19.4 20.2,19 L24.8,13.3 C25.1,12.9 25.1,12.2 24.6,11.9 C24.2,11.6 23.5,11.6 23.2,12.1 L19.2,17.1 L14.2,14.1 C13.8,13.9 13.4,13.9 13.1,14.2 L7.4,18.8 C7,19.1 6.9,19.8 7.2,20.2 C7.4,20.4 7.7,20.6 8,20.6 C8.2,20.4 8.4,20.4 8.6,20.2 Z"></path> 49 <path id="forms" d="M26,3 C29.3,3 32,5.7 32,9 L32,23 C32,26.3 29.3,29 26,29 L6,29 C2.7,29 0,26.3 0,23 L0,9 C0,5.7 2.7,3 6,3 L26,3 Z M30,23 L30,9 C30,6.8 28.2,5 26,5 L6,5 C3.8,5 2,6.8 2,9 L2,23 C2,25.2 3.8,27 6,27 L26,27 C28.2,27 30,25.2 30,23 Z M9,15 L23,15 C24.6569,15 26,16.3431 26,18 L26,20 C26,21.6569 24.6569,23 23,23 L9,23 C7.34315,23 6,21.6569 6,20 L6,18 C6,16.3431 7.34315,15 9,15 Z M9,17 C8.44772,17 8,17.4477 8,18 L8,20 C8,20.5523 8.44772,21 9,21 L23,21 C23.5523,21 24,20.5523 24,20 L24,18 C24,17.4477 23.5523,17 23,17 L9,17 Z M7,9 L19,9 C19.5523,9 20,9.44772 20,10 C20,10.5523 19.5523,11 19,11 L7,11 C6.44772,11 6,10.5523 6,10 C6,9.44772 6.44772,9 7,9 Z"></path> 50 <path id="automation" d="M18.5641,2.02165 C20.0234,0.562365 22.4683,2.00098 21.9014,3.98531 L19.3257,13.9999 L25.5858,13.9999 C27.3676,13.9999 28.26,16.1542 27,17.4142 L13.4359,29.9782 C11.9766,31.4375 9.53172,29.9989 10.0987,28.0146 L12.6743,17.9999 L6.41423,17.9999 C4.63243,17.9999 3.74008,15.8457 5.00001,14.5857 L18.5641,2.02165 Z M19.9783,3.43587 L6.41423,16 L12.6743,15.9999 C14.003,15.9999 14.9624,17.2718 14.5973,18.5494 L12.0217,28.564 L25.5858,15.9999 L19.3257,15.9999 C17.997,15.9999 17.0377,14.7281 17.4027,13.4505 L19.9783,3.43587 Z"></path> 51 <path id="cog" d="M17.225 2l0.739 2.216 0.324 0.973 0.98 0.304c0.611 0.19 1.231 0.449 1.842 0.771l0.908 0.478 3.016-1.508 1.733 1.733-1.508 3.016 0.478 0.908c0.322 0.612 0.581 1.231 0.771 1.842l0.304 0.98 3.188 1.062v2.45l-3.189 1.063-0.304 0.98c-0.19 0.611-0.449 1.23-0.771 1.842l-0.478 0.908 1.508 3.016-1.733 1.733-3.016-1.508-0.908 0.478c-0.612 0.322-1.231 0.581-1.842 0.771l-0.98 0.304-0.324 0.973-0.738 2.215h-2.45l-0.739-2.216-0.324-0.973-0.98-0.304c-0.611-0.19-1.23-0.449-1.842-0.771l-0.908-0.478-3.016 1.508-1.733-1.733 1.508-3.016-0.477-0.907c-0.322-0.612-0.581-1.232-0.771-1.842l-0.304-0.98-3.189-1.063v-2.45l3.189-1.063 0.304-0.98c0.19-0.611 0.449-1.231 0.771-1.842l0.478-0.908-1.508-3.015 1.733-1.733 3.016 1.508 0.908-0.478c0.612-0.322 1.232-0.581 1.842-0.771l0.98-0.304 1.062-3.189h2.45zM16 22c3.308 0 6-2.692 6-6s-2.692-6-6-6-6 2.692-6 6 2.692 6 6 6zM18.667 0h-5.333l-1.194 3.583c-0.76 0.236-1.487 0.546-2.18 0.911l-3.388-1.693-3.771 3.771 1.693 3.387c-0.365 0.693-0.675 1.42-0.911 2.18l-3.583 1.194v5.333l3.583 1.194c0.236 0.76 0.546 1.487 0.911 2.18l-1.693 3.387 3.771 3.771 3.387-1.693c0.693 0.365 1.42 0.675 2.18 0.911l1.194 3.584h5.333l1.194-3.583c0.76-0.236 1.487-0.546 2.18-0.911l3.387 1.693 3.771-3.771-1.693-3.387c0.365-0.693 0.675-1.42 0.911-2.18l3.584-1.194v-5.333l-3.583-1.194c-0.236-0.76-0.546-1.487-0.911-2.18l1.693-3.387-3.771-3.771-3.387 1.693c-0.693-0.365-1.42-0.675-2.18-0.911l-1.194-3.584zM16 20c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4v0z"></path> 52 </defs> 53</svg></div><div id="asn-navbar-bg" class="navbar-bg"></div></div><div class="w-embed"><style> 54.text-post-card { 55 -webkit-line-clamp: 2; 56 word-break: normal; 57 } 58</style></div><main class="main-wrapper"><section class="section-hero-hp"><div class="padding-global"><div class="padding-section-extra-large no-bottom-padding"><div data-w-id="18663b13-b8a6-71f5-24a1-30c49e1bcd4c" class="container is-horizontal"><div class="spacer-hor-large"></div><div class="content-wr-50 mobile-100"></div></div></div></div></section><div class="w-layout-blockcontainer container-5 w-container"><div class="code-embed w-embed w-script"><div id="recommendation-container" style="display: flex; gap: 20px; align-items: flex-start;"> 59 <!-- Left Column: User Input --> 60 <div id="left-column" style="flex: 3; min-width: 400px;"> 61 <h1 style=" 62 width: 95%; 63 font-family: Inter, sans-serif; 64 font-size: var(--Font-size-display-xl, 60px); 65 font-style: normal; 66 font-weight: 600; 67 line-height: var(--Line-height-display-xl, 72px); /* 100% */ 68 letter-spacing: -1.2px; 69 margin-bottom: 10px; 70 "> 71 Find <span style="color: #39c89b;">Blockchain Solutions</span> in <span style="color: #4237ff;">Seconds</span>. 72 </h1> 73 <p style="width: 90%; font-size: 16px; line-height: 24px; color: #555; font-family: Inter, sans-serif;"> 74 Describe your challenge, and we'll recommend the most suitable selection of partners from the Tatum ecosystem. 75 </p> 76 77 <!-- Input Box --> 78 <div class="input" style="margin-top: 20px; margin-bottom: 20px; width: 90%;"> 79 <input type="text" id="user-input" placeholder="Find me a wallet solution" class="text" /> 80 <button id="submit-btn" class="buttons-button"> 81 <div class="text-padding"> 82 <img 83 id="star-icon" 84 src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6787f310859f752dcc738757_star%20white.svg" 85 alt="Star Icon" 86 class="star" 87 />
88 <span class="text2">Try Me</span> 89 </div> 90 </button> 91 </div> 92 93 <!-- Example Suggestions --> 94 <div style="margin-top: 20px;"> 95 <p style="font-size: 14px; color: #777; margin-bottom: 10px; font-family: Inter, sans-serif;">Get started with an example below:</p> 96 <div style="display: flex; flex-wrap: wrap; gap: 10px;"> 97 <button class="example-button" onclick="setExample('Find me a payment solution')">Find me a payment solution</button> 98 <button class="example-button" onclick="setExample('Suggest NFT tools')">Suggest NFT tools</button> 99 <button class="example-button" onclick="setExample('Best APIs for wallets?')">Best APIs for wallets?</button> 100 <button class="example-button" onclick="setExample('Help with DeFi setup')">Help with DeFi setup</button> 101 <button class="example-button" onclick="setExample('Recommend security tools')">Recommend security tools</button> 102 <button class="example-button" onclick="setExample('Cross-chain options?')">Cross-chain options?</button> 103 </div> 104 </div> 105 </div> 106 107 <!-- Right Column: Output --> 108 <div id="right-column" style="flex: 2; display: flex; flex-direction: column; justify-content: center; height: 100%; margin-top: -50px; width: 400px;"> 109 <div id="recommendation-output" class="output-box"> 110 <!-- Wrapper Div --> 111 <div style="background-color: #ffffff; border: 1px solid #d5d7da; border-radius: 8px; padding: 10px; margin-bottom: 5px; text-align: left; width: width: 80%; max-width: 390px; box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);"> 112 <h3 style="font-size: 18px; margin-bottom: 10px; font-family: Inter, sans-serif; margin: 10px;">Tatum Solutions Finder</h3> 113 <p style="font-size: 14px; color: #555; font-family: Inter, sans-serif; margin: 10px;">Start by sharing what you want to build...</p> 114 </div> 115 116 <p id="explanation" class="explanation-text"></p> 117 <div id="recommendations" style="display: grid; grid-template-columns: repeat(2, auto); width: 80%; height: 80%; gap: 10px;"></div> 118 119 <div id="recommendation-summary" style="margin-top: -30px; margin-left: 90px; width: 80%; position: relative; z-index: 10; 120"></div> 121 122 <!-- Add Image Below Recommendations --> 123 </div> 124 <div id="swinging-light-container" style="position: relative; width: 600px; height: 600px; margin: 0; margin-left: -80px; auto;"> 125 <!-- Light --> 126<img 127 src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/67abc8466374051a02c4fe12_Vector%2031%20(1).svg" 128 id="light" 129 style=" 130 position: absolute; 131 top: 17.9%; 132 left: 45.55%; 133 transform: translate(-50%, -50%) rotate(-5deg); 134 width: 462px; 135 transform-origin: bottom center; 136 z-index: 2; 137 animation: none; /* No animation initially */ 138 " 139 alt="Light" 140/> 141 142 143 <!-- Cube --> 144 <img 145 src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/67893dea0b5194aaf10628bc_Group%201.svg" 146 id="cube" 147 style=" 148 position: absolute; 149 top: 50%; 150 left: 50%; 151 transform: translate(-50%, -50%); 152 width: 250px; 153 z-index: 1; 154 " 155 alt="Cube" 156 /> 157 158 <style> 159 #light { 160 animation: swing 3s ease-in-out infinite; 161 } 162 163 @keyframes swing { 164 0% { 165 transform: translate(-50%, -50%) rotate(-5deg); 166 } 167 50% { 168 transform: translate(-50%, -50%) rotate(5deg); 169 } 170 100% { 171 transform: translate(-50%, -50%) rotate(-5deg); 172 } 173} 174 175@keyframes oscillateOpacity { 176 0%, 100% { 177 opacity: 1; 178 } 179 50% { 180 opacity: 0.5; 181 } 182 } 183 184 </style> 185</div> 186 </div> 187</div> 188 189<style> 190/* Input and CTA Button */ 191.input { 192 background: #ffffff; 193 border-radius: 8px; 194 border: 1px solid #d5d7da; 195 padding: 10px 16px; 196 display: flex; 197 gap: 8px; 198 align-items: center; 199 box-shadow: 0px 4px 3px rgba(10, 13, 18, 0.06); 200} 201.text { 202 flex: 1; 203 font-size: 16px; 204 color: #333; 205 border: none; 206 outline: none; 207} 208.buttons-button { 209 background: #4237ff; 210 color: #ffffff; 211 border: 1px solid transparent; 212 padding: 10px 16px; 213 border-radius: 8px; 214 font-size: 14px; 215 cursor: pointer; 216 display: flex; 217 align-items: center; 218 justify-content: center; 219 gap: 8px; 220 white-space: nowrap; 221 transition: background 0.3s, color 0.3s, border 0.3s; 222} 223.buttons-button:hover { 224 background: #ffffff; 225 color: #4237ff; 226 border: 1px solid #4237ff; 227} 228.buttons-button:hover .star { 229 content: url("https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6787f43181ff899f653454a6_Star%20Purple.svg"); 230} 231.star { 232 width: 16px; 233 height: 16px; 234 display: inline-block; 235 vertical-align: middle; 236} 237.text2 { 238 font-family: Inter, sans-serif; 239 font-size: 14px; 240 font-weight: 600; 241 line-height: 1; 242} 243.example-button { 244 background: #f3f3f3; 245 color: #333; 246 border: 1px solid #d5d7da; 247 padding: 5px 10px; 248 border-radius: 5px; 249 font-size: 12px; 250 cursor: pointer; 251 box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1); 252} 253.example-button:hover { 254 background: #e8e8e8; 255} 256.output-box { 257 border-radius: 8px; 258 width: 90%; 259 padding: 0px; 260 padding-top: 50px; 261 box-shadow: 0px 0px 0px rgba(10, 13, 18, 0.06); 262} 263 264.explanation-text { 265 font-size: 14px; 266 color: #555; 267 margin-bottom: 16px; 268} 269 270#recommendations { 271 width: 600px; 272 gap: 0px; 273 justify-content: left; 274 align-items: left; 275 position: relative; 276} 277 278@keyframes slideIn { 279 from { 280 transform: translateX(100%); 281 opacity: 0; 282 } 283 to { 284 transform: translateX(0); 285 opacity: 1; 286 } 287} 288 289.recommendation-item { 290 width: 400px; 291 display: grid; 292 grid-template-areas: 293 "image title" 294 "description description"; 295 grid-template-columns: 1fr; 296 gap: 5px; 297 background-color: #ffffff; 298 border: 1px solid #d5d7da; 299 border-radius: 8px; 300 padding: 15px; 301 height: 190px; 302 width: 190px; 303 align-items: start; /* Align items to the top */ 304 box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1); 305 transform: translateX(100px); /* Initial state: positioned to the right */ 306 opacity: 0; /* Initially hidden */ 307 animation: slideInRight 0.5s ease forwards;
307 /* Slide in from the right */ 308 transition: transform 0.3s ease, box-shadow 0.3s ease; 309} 310 311@keyframes slideInRight { 312 from { 313 transform: translateX(100px); /* Start to the right */ 314 opacity: 0; /* Fully transparent */ 315 } 316 to { 317 transform: translateX(0); /* End at the original position */ 318 opacity: 1; /* Fully visible */ 319 } 320} 321 322 323 324 325.recommendation-item:hover { 326 transform: scale(1.05); 327 box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.2); 328 position: relative; /* Required for z-index to work */ 329 z-index: 11; 330 331} 332 333.recommendation-image { 334 grid-area: image; 335 width: 70px; 336 height: 55px; 337 border-radius: 10px; 338 object-fit: cover; 339} 340 341.recommendation-title { 342 grid-area: title; 343 padding-top: 10px; 344 padding-left: 10px; 345 width: 100px; 346 display: flex; 347 align-items: center; 348 font-size: 16px; 349 font-weight: 600; 350 color: #333; 351 text-align: left; 352 line-height: 1; 353} 354 355.recommendation-description { 356 grid-area: description; 357 font-size: 10px; 358 color: #555; 359 margin-top: 0px; 360} 361 362 363/* Recommendation Details Styling */ 364.recommendation-details h3 { 365 font-size: 16px; 366 font-weight: 600; 367 text-align: left; 368 color: #333; 369 margin-bottom: 5px; 370} 371 372.recommendation-details p { 373 font-size: 14px; 374 text-align: left; 375 color: #555; 376 margin: 0; 377} 378 379/* Summary Box Styling */ 380.recommendation-summary-box { 381 background-color: #ffffff; 382 border: 1px solid #d5d7da; 383 border-radius: 8px; 384 padding: 20px; 385 text-align: left; 386 box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1); 387 transform: translateY(50px); /* Start slightly below */ 388 opacity: 0; /* Initially hidden */ 389 animation: slideInFromBottom 0.5s ease forwards; /* Slide in smoothly */ 390} 391 392/* Keyframes for sliding in from the bottom */ 393@keyframes slideInFromBottom { 394 0% { 395 transform: translateY(50px); /* Positioned slightly below */ 396 opacity: 0; /* Fully transparent */ 397 } 398 100% { 399 transform: translateY(0); /* Final position */ 400 opacity: 1; /* Fully visible */ 401 } 402} 403 404.recommendation-summary-box h3 { 405 font-size: 18px; 406 margin-bottom: 10px; 407 color: #333; 408} 409 410.recommendation-summary-box p { 411 font-size: 14px; 412 color: #555; 413} 414 415/* Base styles above */ 416 417/* Responsive styles */ 418@media (max-width: 1024px) { 419 #recommendation-container { 420 flex-direction: column; 421 } 422 423 #left-column, #right-column { 424 flex: 1; 425 min-width: 100%; /* Make each column take full width on smaller screens */ 426 margin-top: 00px; 427 } 428 429 .output-box, #recommendation-output { 430 width: auto; /* Allow box to expand full width */ 431 } 432 433 h1 { 434 font-size: 32px; /* Smaller font size for smaller screens */ 435 line-height: 40px; 436 } 437 438 .recommendation-item, .output-box { 439 grid-template-columns: 1fr; /* Stack image and text vertically on smaller screens */ 440 } 441} 442 443@media (max-width: 600px) { 444 #left-column { 445 max-width: 500px; 446 } 447 448 #swinging-light-container { 449 margin-left: -200px; /* Larger negative margin for smaller screens */ 450 width: 90%; /* Adjust width to 90% for smaller screens */ 451 } 452 453 .input { 454 width: 400px; 455 } 456 457 #right-column { 458 padding-top: 40px; 459 } 460 461 .text, .buttons-button { 462 width: 100px; /* Make input and button full width */ 463 } 464 465 #swinging-light-container { 466 width: 80%; /* Full width to fit smaller screens */ 467 height: auto; /* Adjust height to maintain aspect ratio */ 468 } 469 470 h1 { 471 font-size: 24px; 472 line-height: 28px; 473 } 474} 475 476 477.output-box, #recommendation-output { 478 width: 100%; /* Allow box to expand full width */ 479 } 480 481 #recommendations { 482 display: grid; 483 grid-template-columns: repeat(auto, auto) 484 width: 430px; 485 grid-template-columns:(250px, 250px); /* Flexible grid */ 486 gap: 0px; 487 justify-content: left; 488 align-items: left; 489 position: relative; /* For stacking effects */ 490} 491 492 .recommendation-item { 493 width: 400px; 494 display: grid; 495 grid-template-areas: 496 "image title" 497 "description description"; 498 grid-template-columns: auto 1fr; /* Image takes only as much space as needed, the rest for the title */ 499 gap: 5px; 500 background-color: #ffffff; 501 border: 1px solid #d5d7da; 502 border-radius: 8px; 503 padding: 15px; 504 height: 190px; 505 width: 190px; 506 align-items: start; /* Align items to the top */ 507 box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1); 508 transform: translateX(100px); /* Initial state: positioned to the right */ 509 opacity: 0; /* Initially hidden */ 510 animation: slideInRight 0.5s ease forwards;
510 /* Slide in from the right */ 511 transition: transform 0.3s ease, box-shadow 0.3s ease; 512} 513 514@keyframes slideInRight { 515 from { 516 transform: translateX(100px); /* Start to the right */ 517 opacity: 0; /* Fully transparent */ 518 } 519 to { 520 transform: translateX(0); /* End at the original position */ 521 opacity: 1; /* Fully visible */ 522 } 523} 524 525@keyframes bobbing { 526 0%, 100% { 527 transform: translateY(0); 528 } 529 50% { 530 transform: translateY(-10px); /* Moves up by 10 pixels */ 531 } 532} 533 534/* Applying the bobbing animation to the first child div of #recommendation-output */ 535#recommendation-output > div:first-child { 536 animation: bobbing 3s ease-in-out infinite; /* Continuous bobbing effect */ 537 position: relative; /* Needed to apply transform properties */ 538} 539 540 541.recommendation-item:hover { 542 transform: scale(1.05); 543 box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.2); 544 position: relative; /* Required for z-index to work */ 545 z-index: 11; 546 547} 548 549.recommendation-summary-box { 550 margin-left: 0px; 551} 552 553 554 555</style> 556
557<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.0/papaparse.min.js"></script>
557 558
559<script> 560let urlMapping = {}; 561 562async function loadUrlMapping() { 563 const response = await fetch('https://docs.google.com/spreadsheets/d/e/2PACX-1vSWjiJPvQSNi1zN1AOgiHQXW4vFRH-SU0OrQ5OYScYrChLFT9O08kdfE4Tobx-ecstTsEqILHjtS5LV/pub?output=csv'); 564 const csvData = await response.text(); 565 566 // Use PapaParse to parse the CSV data 567 Papa.parse(csvData, { 568 header: true, 569 skipEmptyLines: true, 570 complete: function(results) { 571 results.data.forEach((row, index) => { 572 const name = row['Partner'].trim(); 573 const url = row['Destination URL'].trim(); 574 if (url.startsWith('http')) { 575 urlMapping[name] = url; 576 } else { 577 console.error(`Invalid URL at row ${index + 1}:`, url); 578 } 579 }); 580 console.log("URL Mapping:", urlMapping); 581 } 582 }); 583} 584 585 586function getDestinationUrl(partnerName) { 587 const url = urlMapping[partnerName] || "#"; 588 console.log(`Fetching URL for ${partnerName}: ${url}`); // Debug URL fetching 589 return url; 590} 591 592// Load URLs when the document is ready 593document.addEventListener('DOMContentLoaded', loadUrlMapping); 594 595 596 597 598function setExample(example) { 599 document.getElementById("user-input").value = example; 600} 601 602// Placeholder for fetching URLs from a mapping based on the partner's name 603function getDestinationUrl(partnerName) { 604 return urlMapping[partnerName] || "#"; // Return the mapped URL or fallback to placeholder 605} 606 607 608// Main function to handle recommendations 609async function generateRecommendations() { 610 const query = document.getElementById("user-input").value; 611 612 // Reference elements 613 const light = document.getElementById("light"); 614 const lightContainer = document.getElementById("swinging-light-container"); 615 const finderTextElement = document.querySelector(".output-box > div > p"); 616 617 // Update text to "Preparing..." and show the light container 618 finderTextElement.innerText = "Preparing..."; 619 lightContainer.style.display = "block"; 620 621 if (!query) { 622 document.getElementById("recommendations").innerHTML = "Please enter what you're building."; 623 finderTextElement.innerText = "Start by sharing what you want to build..."; 624 return; 625 } 626 627 // Start the light swinging animation 628 light.style.animation = "swing 3s ease-in-out infinite"; 629 630 try { 631 // Use a different approach to avoid CORS issues 632 const url = `https://script.google.com/macros/s/AKfycbw7YjQ4bMxO7QWrQsEoPeio1lLe-6FXroYUzegl1laUrToW00qDly-3uJVaORz5Y-91oQ/exec?query=${encodeURIComponent(query)}`; 633 634 const response = await fetch(url, { 635 method: 'GET', 636 }); 637 638 const data = await response.json(); 639 640 const placeholderImage = 641 "https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/678807606430c3f2ca03e4b6_block%20placeholder.svg"; 642 643 if (data.recommendations && data.recommendations.length > 0) { 644 // Extract summary 645 const summaryIndex = data.recommendations.findIndex(item => 646 item.startsWith("Summary:") 647 ); 648 const summary = 649 summaryIndex !== -1 650 ? data.recommendations[summaryIndex].replace("Summary:", "").trim() 651 : ""; 652 653 // Update the finder text 654 finderTextElement.innerText = 655 "We analyzed your query, here's our response:"; 656 657 let recommendationsHTML = ""; 658 let currentPartner = {}; 659 660 // Parse recommendations 661 data.recommendations 662 .slice(0, summaryIndex !== -1 ? summaryIndex : data.recommendations.length) 663 .forEach(item => { 664 const line = item.trim(); 665 666 if (/^Title:/.test(line)) { 667 if (currentPartner.name) { 668 recommendationsHTML += generatePartnerHTML( 669 currentPartner, 670 placeholderImage, 671 getDestinationUrl(currentPartner.name) 672 ); 673 currentPartner = {}; 674 } 675 currentPartner.name = line.replace(/^Title:/, "").trim(); 676 } else if (/^Description:/.test(line)) { 677 currentPartner.description = line.replace(/^Description:/, "").trim(); 678 } else if (/^ImageURL:/.test(line)) { 679 const imageUrl = line.replace(/^ImageURL:/, "").trim(); 680 currentPartner.imageUrl = imageUrl.startsWith("http") 681 ? imageUrl 682 : placeholderImage; 683 } 684 }); 685 686 if (currentPartner.name) { 687 recommendationsHTML += generatePartnerHTML( 688 currentPartner, 689 placeholderImage, 690 getDestinationUrl(currentPartner.name) 691 ); 692 } 693 694 document.getElementById("recommendations").innerHTML = recommendationsHTML; 695 696 // Add summary below the recommendations 697 if (summary) { 698 document.getElementById("recommendation-summary").innerHTML = 699 `<div class="recommendation-summary-box"> 700 <h3>Summary</h3> 701 <p>${summary}</p> 702 </div>`; 703 } else { 704 document.getElementById("recommendation-summary").innerHTML = ""; 705 } 706 707 // Hide the light container after recommendations 708 lightContainer.style.display = "none"; 709 } else { 710 document.getElementById("recommendations").innerHTML =
711 "No recommendations found."; 712 finderTextElement.innerText = "Start by sharing what you want to build..."; 713 } 714 } catch (error) { 715 console.error("Error:", error); 716 document.getElementById("recommendations").innerHTML = 717 "Error generating recommendations."; 718 finderTextElement.innerText = "Start by sharing what you want to build..."; 719 } finally { 720 // Stop the light swinging animation 721 light.style.animation = "none"; 722 } 723} 724 725// Generate partner HTML with clickable link 726function generatePartnerHTML(partner, placeholderImage, destinationUrl) { 727 const name = partner.name || "Unnamed Partner"; 728 const description = partner.description || "No description available."; 729 const imageUrl = partner.imageUrl || placeholderImage; 730 const link = destinationUrl || "#"; // Fallback to a placeholder if no URL is provided 731 732 return ` 733 <a href="${link}" target="_blank" style="text-decoration: none; color: inherit;"> 734 <div class="recommendation-item"> 735 <img src="${imageUrl}" alt="${name}" class="recommendation-image"> 736 <div class="recommendation-title">${name}</div> 737 <div class="recommendation-description">${description}</div> 738 </div> 739 </a> 740 `; 741} 742 743// Add event listener for the "Try Me" button 744document.getElementById("submit-btn").addEventListener("click", () => { 745 // Clear previous results and trigger recommendations 746 document.getElementById("recommendations").innerHTML = ""; 747 document.getElementById("recommendation-summary").innerHTML = ""; 748 document.querySelector("#recommendation-output >
748 div:first-child").style.animation = 'none'; 749 generateRecommendations(); 750}); 751 752// Add event listener for "Enter" key press 753document.getElementById("user-input").addEventListener("keypress", (event) => { 754 if (event.key === "Enter") { 755 event.preventDefault(); // Prevent the default form submission behavior 756 // Clear previous results and trigger recommendations 757 document.getElementById("recommendations").innerHTML = ""; 758 document.getElementById("recommendation-summary").innerHTML = ""; 759 document.querySelector("#recommendation-output > div:first-child").style.animation = 'none'; 760 generateRecommendations(); 761 } 762}); 763 764document.addEventListener("DOMContentLoaded", function() { 765 const light = document.getElementById('light'); 766 // Apply the animation once the page has fully loaded 767 light.style.animation = 'oscillateOpacity 3s ease-in-out infinite'; 768}); 769 770</script>
770</div></div><div fs-cmsload-element="scroll-anchor" class="scroll-anchor"></div><div class="w-layout-blockcontainer container-11 is-easyblox w-container"><div class="filter-form is-easyblox-category w-form"><div class="code-embed-4 w-embed"><div class="explore-box"> 771 <span>Explore </span><span class="blox">Our </span> 772 <span class="party">Ecosystem.</span> 773</div> 774 775<style> 776 .explore-box { 777 font-size: 45px; 778 font-weight: 600; 779 font-family: 'Inter', sans-serif; 780 max-width: 300px; /* Adjust based on your design */ 781 white-space: normal; 782 margin-bottom: 20px; 783 --line-height: 1.2; /* Define the line height variable */ 784 line-height: var(--line-height); 785 } 786 787 } 788 789 .explore-box span { 790 color: #222; /* Default dark color */ 791 } 792 793 .explore-box .blox { 794 color: #4F37FD; /* Blue/Purple */ 795 } 796 797 .explore-box .party { 798 color: #39C89B; /* Green */ 799 } 800</style></div><form id="email-form" name="email-form" data-name="Email Form" method="get" fs-cmsfilter-element="filters" class="filter-form-inside" data-wf-page-id="6775511eea836401efb94fc6" data-wf-element-id="281b6f37-98b3-bfc4-2c0c-a5181d534edc"><div data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534edd" class="fs-filter-wrapper is-easyblox-category"><div class="fs-filter-dropdown-wrapper is-easyblox-category"><div data-hover="false" data-delay="0" class="fs-dropdown w-dropdown"><div class="fs-dropdown_toggle-1 w-dropdown-toggle"><div class="w-icon-dropdown-toggle"></div><div class="text-block-11">Use Case</div></div><nav class="fs-dropdown_list-1 w-dropdown-list"><div class="fs-dropdown-content"><div class="w-dyn-list"><div role="list" class="fs-dropdown_list-group-1 w-dyn-items"><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">Asset Management</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">Campaigns</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">Custody</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">Data</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">ENS</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">
800Infrastructure</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">Name Services</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">NFTs</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">Payments</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">Security</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">Tokenization</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">Transactions</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label data-w-id="281b6f37-98b3-bfc4-2c0c-a5181d534ee9" class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-3" name="checkbox-3" data-name="Checkbox 3" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="category" class="fs-checkbox_label-10 w-form-label" for="checkbox-3">Wallets</span></label></div></div></div></div><div class="filter-dropdown-reset"><a fs-cmsfilter-clear="category" fs-cmsfilter-element="clear" href="#" class="filter-clear w-inline-block"><div>Clear filters</div><div class="filter_tag-remove small w-embed"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 801<g clip-path="url(#clip0_377_2)"> 802<path fill-rule="evenodd" clip-rule="evenodd" d="M8.00053 8.94293L11.7719 12.7143C11.8976 12.8357 12.066 12.9029 12.2408 12.9014C12.4156 12.8999 12.5828 12.8297 12.7064 12.7061C12.83 12.5825 12.9001 12.4153 12.9016 12.2405C12.9032 12.0657 12.836 11.8973 12.7145 11.7716L8.9432 8.00026L12.7145 4.22893C12.836 4.10319 12.9032 3.93479 12.9016 3.75999C12.9001 3.5852 12.83 3.41799 12.7064 3.29438C12.5828 3.17078 12.4156 3.10067 12.2408 3.09915C12.066 3.09763 11.8976 3.16482 11.7719 3.28626L8.00053 7.0576L4.2292 3.28626C4.1029 3.16783 3.93548 3.10317 3.76235 3.10598C3.58923 3.1088 3.42399 3.17885 3.30161 3.30132C3.17922 3.4238 3.10928 3.58909 3.10659 3.76221C3.1039 3.93533 3.16867 4.10271 3.2872 4.22893L7.05787 8.00026L3.28653 11.7716C3.22286 11.8331 3.17207 11.9067 3.13713 11.988C3.10219 12.0693 3.0838 12.1568 3.08303 12.2453C3.08226 12.3338 3.09913
80212.4216 3.13265 12.5036C3.16617 12.5855 3.21567 12.6599 3.27827 12.7225C3.34086 12.7851 3.4153 12.8346 3.49723 12.8681C3.57916 12.9017 3.66695 12.9185 3.75547 12.9178C3.84399 12.917 3.93147 12.8986 4.0128 12.8637C4.09414 12.8287 4.1677 12.7779 4.2292 12.7143L8.00053 8.94293Z" fill="currentColor"/> 803</g> 804<defs> 805<clipPath id="clip0_377_2"> 806<rect width="16" height="16" fill="white"/> 807</clipPath> 808</defs> 809</svg></div></a></div></nav></div><div data-hover="false" data-delay="0" class="fs-dropdown w-dropdown"><div class="fs-dropdown_toggle-1 w-dropdown-toggle"><div class="w-icon-dropdown-toggle"></div><div class="text-block-12">Blockchain</div></div><nav class="fs-dropdown_list-1 is-last w-dropdown-list"><div class="fs-dropdown-content"><div class="w-dyn-list"><div role="list" class="fs-dropdown_list-group-1 w-dyn-items"><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Arbitrum</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Aurora</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Avalanche</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Base</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Binance Smart Chain</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Celo</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Chilliz</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Cronos</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Ethereum</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Ethereum Classic</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Fantom</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Flare</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Gnosis</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Haqq</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Harmony</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Horizen</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Klaytn</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">KuCoin</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Oasis</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Optimism</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Palm</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Polygon</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Solana</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">VeChain</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">XDC</span></label></div><div role="listitem" class="fs-checkbox_field-10 w-dyn-item"><label class="w-checkbox fs-checkbox_field-10"><input type="checkbox" id="checkbox-2" name="checkbox-2" data-name="Checkbox 2" class="w-checkbox-input fs-checkbox_button-10"/><span fs-cmsfilter-field="blockchain" class="fs-checkbox_label-10 w-form-label" for="checkbox-2">Xinfin</span></label></div></div></div></div></nav></div></div></div><div class="filter_tags-wrapper"><div class="filter-reset-wrapper"><div class="filter-left"><div fs-cmsfilter-element="tag-template" class="filter_tag"><div fs-cmsfilter-element="tag-text" class="filter_tag-text">Tag</div><div class="filter_tag-remove w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 810<g clip-path="url(#clip0_377_2)"> 811<path fill-rule="evenodd" clip-rule="evenodd" d="M10.0004 11.1783L14.7146 15.8925C14.8718 16.0443 15.0823 16.1283 15.3008 16.1264C15.5193 16.1245 15.7283 16.0368 15.8828 15.8823C16.0373 15.7278 16.1249 15.5188 16.1268 15.3003C16.1287 15.0818 16.0447 14.8713 15.8929 14.7141L11.1788 9.99996L15.8929 5.28579C16.0447 5.12863 16.1287 4.91812 16.1268 4.69963C16.1249 4.48113 16.0373 4.27212 15.8828 4.11761C15.7283 3.96311 15.5193 3.87547 15.3008 3.87357C1
8115.0823 3.87167 14.8718 3.95566 14.7146 4.10746L10.0004 8.82163L5.28626 4.10746C5.12838 3.95942 4.9191 3.8786 4.7027 3.88211C4.4863 3.88563 4.27975 3.9732 4.12676 4.12629C3.97378 4.27938 3.88636 4.48599 3.88299 4.7024C3.87963 4.9188 3.9606 5.12802 4.10876 5.28579L8.82209 9.99996L4.10792 14.7141C4.02833 14.791 3.96485 14.883 3.92117 14.9846C3.8775 15.0863 3.85451 15.1956 3.85355 15.3063C3.85259 15.4169 3.87367 15.5267 3.91557 15.6291C3.95747 15.7315 4.01935 15.8245 4.09759 15.9028C4.17584 15.981 4.26888 16.0429 4.37129 16.0848C4.47371 16.1267 4.58344 16.1478 4.69409 16.1468C4.80474 16.1459 4.91409 16.1229 5.01576 16.0792C5.11743 16.0355 5.20938 15.9721 5.28626 15.8925L10.0004 11.1783Z" fill="currentColor"/> 812</g> 813<defs> 814<clipPath id="clip0_377_2"> 815<rect width="20" height="20" fill="white"/> 816</clipPath> 817</defs> 818</svg></div></div></div><a fs-cmsfilter-element="clear" href="#" class="filter-reset-all w-inline-block"><div>Reset all filters</div></a></div></div></form><div class="w-form-done"><div>Thank you! Your submission has been received!</div></div><div class="w-form-fail"><div>Oops! Something went wrong while submitting the form.</div></div></div><div class="container is-recs-directory"><div class="w-layout-blockcontainer container-10 w-container"><div class="div-block-2"><div class="extension-collections-wr"><div fs-cmscombine-element="list" id="w-node-_581a1d5e-43b1-6aa6-f9a7-fdf93d1798ca-efb94fc6" class="blog-collection-list-wr w-dyn-list"><div fs-cmsload-mode="pagination" fs-cmsstatic-element="list" fs-cmsfilter-element="list" fs-cmsnest-element="list" fs-cmsload-element="list" role="list" class="blog-collection-list is-easyblox w-dyn-items"><div id="w-node-_581a1d5e-43b1-6aa6-f9a7-fdf93d1798cc-efb94fc6" role="listitem" class="blog-post-wr is-easyblox w-dyn-item"><div class="post-container"><div class="post-top-wrapper"><a href="/integrations/slamai" class="post-top-right w-inline-block"><div class="img-post-wr"><img loading="lazy" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/68f00e66e25aa82e26445dd7_SlamAI.png" sizes="(max-width: 767px) 100vw, (max-width: 991px) 728px, 940px" srcset="https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/68f00e66e25aa82e26445dd7_SlamAI-p-500.png 500w, https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/68f00e66e25aa82e26445dd7_SlamAI-p-800.png 800w, https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/68f00e66e25aa82e26445dd7_SlamAI-p-1080.png 1080w, https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/68f00e66e25aa82e26445dd7_SlamAI.png 1200w" class="image-full"/></div></a><div class="post-top-left"><a href="/integrations/slamai" class="text-post-wr w-inline-block"><h3 id="partner-name" class="heading-10">SLAMai</h3></a><div class="tag-post-wr"><div class="collection-list-wrapper w-dyn-list"><div role="list" class="post-categories-wr w-dyn-items"><div role="listitem" class="collection-item w-dyn-item"><a href="/category/asset-management" class="tag-post w-inline-block"><div fs-cmsfilter-field="category" class="tag-text">Asset Management</div></a></div></div></div><div class="blockchain-tag"><div fs-cmsnest-collection="blockchain" fs-cmsnest-element="nest-target" class="tag-target"></div></div></div></div></div><a href="/integrations/slamai" class="post-bottom-wrapper w-inline-block"><p class="text-post-card">SLAMai is a definitive platform for web3 intelligence, offering leading blockchain data, APIs for builders, and an MCP layer for agents. </p></a></div></div><div id="w-node-_581a1d5e-43b1-6aa6-f9a7-fdf93d1798cc-efb94fc6" role="listitem" class="blog-post-wr is-easyblox w-dyn-item"><div class="post-container"><div class="post-top-wrapper"><a href="/integrations/exolix" class="post-top-right w-inline-block"><div class="img-post-wr"><img loading="lazy" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/68ad624da01a4ef67a70c31c_Exolix.png" sizes="(max-width: 767px) 100vw, (max-width: 991px) 728px, 940px" srcset="https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/68ad624da01a4ef67a70c31c_Exolix-p-500.png 500w, https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/68ad624da01a4ef67a70c31c_Exolix-p-800.png 800w, https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/68ad624da01a4ef67a70c31c_Exolix-p-1080.png 1080w, https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/68ad624da01a4ef67a70c31c_Exolix.png 1200w" class="image-full"/></div></a><div class="post-top-left"><a href="/integrations/exolix" class="text-post-wr w-inline-block"><h3 id="partner-name" class="heading-10">Exolix</h3></a><div class="tag-post-wr"><div class="collection-list-wrapper w-dyn-list"><div role="list" class="post-categories-wr w-dyn-items"><div role="listitem" class="collection-item w-dyn-item"><a href="/category/payments" class="tag-post w-inline-block"><div fs-cmsfilter-field="category" class="tag-text">Payments</div></a></div></div></div><div class="blockchain-tag"><div fs-cmsnest-collection="blockchain" fs-cmsnest-element="nest-target" class="tag-target"></div></div></div></div></div><a href="/integrations/exolix" class="post-bottom-wrapper w-inline-block"><p class="text-post-card">Exolix gives developers the tools they need to deliver fast, secure, and frictionless crypto swaps inside any application.</p></a></div></div><div id="w-node-_581a1d5e-43b1-6aa6-f9a7-fdf93d1798cc-efb94fc6" role="listitem" class="blog-post-wr is-easyblox w-dyn-item"><div class="post-container"><div class="post-top-wrapper"><a href="/integrations/hexens" class="post-top-right w-inline-block"><div class="img-post-wr"><img loading="lazy" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/67ddcf0858c8f765c6dc0025_Hexens.svg" class="image-full"/></div></a><div class="post-top-left"><a href="/integrations/hexens" class="text-post-wr w-inline-block"><h3 id="partner-name" class="heading-10">Hexens</h3></a><div class="tag-post-wr"><div class="collection-list-wrapper w-dyn-list"><div role="list" class="post-categories-wr w-dyn-items"><div role="listitem" class="collection-item w-dyn-item"><a href="/category/security" class="tag-post w-inline-block"><div fs-cmsfilter-field="category" class="tag-text">Security</div></a></div></div></div><div class="blockchain-tag"><div fs-cmsnest-collection="blockchain" fs-cmsnest-element="nest-target" class="tag-target"></div></div></div></div></div><a href="/integrations/hexens" class="post-bottom-wrapper w-inline-block"><p class="text-post-card">Hexens provides in-depth security solutions for Web3 and decentralized apps, focusing on blockchain security, penetration testing, and security advisory.</p></a></div></div><div id="w-node-_581a1d5e-43b1-6aa6-f9a7-fdf93d1798cc-efb94fc6" role="listitem" class="blog-post-wr is-easyblox w-dyn-item"><div class="post-container"><div class="post-top-wrapper"><a href="/integrations/boomfi" class="post-top-right w-inline-block"><div class="img-post-wr"><img loading="lazy" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/67d43295b8bacff813743019_BoomFi.avif" class="image-full"/></div></a><div class="post-top-left"><a href="/integrations/boomfi" class="text-post-wr w-inline-block"><h3 id="partner-name" class="heading-10">BoomFi</h3></a><div class="tag-post-wr"><div class="collection-list-wrapper w-dyn-list"><div role="list" class="post-categories-wr w-dyn-items"><div role="listitem" class="collection-item w-dyn-item"><a href="/category/payments" class="tag-post w-inline-block"><div fs-cmsfilter-field="category" class="tag-text">Payments</div></a></div></div></div><div class="blockchain-tag"><div fs-cmsnest-collection="blockchain" fs-cmsnest-element="nest-target" class="tag-target"></div></div></div></div></div><a href="/integrations/boomfi" class="post-bottom-wrapper w-inline-block"><p class="text-post-card">BoomFi helps businesses easily manage crypto payments via an easy-to-use compliant gateway. </p></a></div></div><div id="w-node-_581a1d5e-43b1-6aa6-f9a7-fdf93d1798cc-efb94fc6" role="listitem" class="blog-post-wr is-easyblox w-dyn-item"><div class="post-container"><div class="post-top-wrapper"><a href="/integrations/borg-security" class="post-top-right w-inline-block"><div class="img-post-wr"><img loading="lazy" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/67c4967174e8a6b2605cdeee_Borg%20Security.avif" class="image-full"/></div></a><div class="post-top-left"><a href="/integrations/borg-security" class="text-post-wr w-inline-block"><h3 id="partner-name" class="heading-10">Borg Security</h3></a><div class="tag-post-wr"><div class="collection-list-wrapper w-dyn-list"><div role="list" class="post-categories-wr w-dyn-items"><div role="listitem" class="collection-item w-dyn-item"><a href="/category/security" class="tag-post w-inline-block"><div fs-cmsfilter-field="category" class="tag-text">Security</div></a></div></div></div><div class="blockchain-tag"><div fs-cmsnest-collection="blockchain" fs-cmsnest-element="nest-target" class="tag-target"></div></div></div></div></div><a href="/integrations/borg-security" class="post-bottom-wrapper w-inline-block"><p class="text-post-card">Borg Security is a leader in Web3 cybersecurity, focusing on addressing Web2-on-Web3 attack vectors like zero-day exploits and more. </p></a></div></div><div id="w-node-_581a1d5e-43b1-6aa6-f9a7-fdf93d1798cc-efb94fc6" role="listitem" class="blog-post-wr is-easyblox w-dyn-item"><div class="post-container"><div class="post-top-wrapper"><a href="/integrations/squid-swap-widget" class="post-top-right w-inline-block"><div class="img-post-wr"><img loading="lazy" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/67bb01e17a2ea65794b63fe6_Squid.svg" class="image-full"/></div></a><div class="post-top-left"><a href="/integrations/squid-swap-widget" class="text-post-wr w-inline-block"><h3 id="partner-name" class="heading-10">Squid</h3></a><div class="tag-post-wr"><div class="collection-list-wrapper w-dyn-list"><div role="list" class="post-categories-wr w-dyn-items"><div role="listitem" class="collection-item w-dyn-item">
818<a href="/category/infrastructure" class="tag-post w-inline-block"><div fs-cmsfilter-field="category" class="tag-text">Infrastructure</div></a></div></div></div><div class="blockchain-tag"><div fs-cmsnest-collection="blockchain" fs-cmsnest-element="nest-target" class="tag-target"></div></div></div></div></div><a href="/integrations/squid-swap-widget" class="post-bottom-wrapper w-inline-block"><p class="text-post-card">Squid Swap Widgets let's you instantly add swap capability to your app for virtually any blockchain. Easy, quick, and you get exclusive savings through Easyblox</p></a></div></div><div id="w-node-_581a1d5e-43b1-6aa6-f9a7-fdf93d1798cc-efb94fc6" role="listitem" class="blog-post-wr is-easyblox w-dyn-item"><div class="post-container"><div class="post-top-wrapper"><a href="/integrations/expand-network" class="post-top-right w-inline-block"><div class="img-post-wr"><img loading="lazy" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/67b8922508c6e4b15c652965_Expand.network%20(1).svg" class="image-full"/></div></a><div class="post-top-left"><a href="/integrations/expand-network" class="text-post-wr w-inline-block"><h3 id="partner-name" class="heading-10">expand. network</h3></a><div class="tag-post-wr"><div class="collection-list-wrapper w-dyn-list"><div role="list" class="post-categories-wr w-dyn-items"><div role="listitem" class="collection-item w-dyn-item"><a href="/category/data" class="tag-post w-inline-block"><div fs-cmsfilter-field="category" class="tag-text">Data</div></a></div></div></div><div class="blockchain-tag"><div fs-cmsnest-collection="blockchain" fs-cmsnest-element="nest-target" class="tag-target"></div></div></div></div></div><a href="/integrations/expand-network" class="post-bottom-wrapper w-inline-block"><p class="text-post-card">expand.network offers 170+ API endpoints for DeFi protocols, providing developers and traders with tools for real-time data and trading. </p></a></div></div><div id="w-node-_581a1d5e-43b1-6aa6-f9a7-fdf93d1798cc-efb94fc6" role="listitem" class="blog-post-wr is-easyblox w-dyn-item"><div class="post-container"><div class="post-top-wrapper"><a href="/integrations/inabit" class="post-top-right w-inline-block"><div class="img-post-wr"><img loading="lazy" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee213/67b3c3459cd29a4f78de6ccf_Inabit%20(1).svg" class="image-full"/></div></a><div class="post-top-left"><a href="/integrations/inabit" class="text-post-wr w-inline-block"><h3 id="partner-name" class="heading-10">Inabit</h3></a><div class="tag-post-wr"><div class="collection-list-wrapper w-dyn-list"><div role="list" class="post-categories-wr w-dyn-items"><div role="listitem" class="collection-item w-dyn-item"><a href="/category/asset-management" class="tag-post w-inline-block"><div fs-cmsfilter-field="category" class="tag-text">Asset Management</div></a></div></div></div><div class="blockchain-tag"><div fs-cmsnest-collection="blockchain" fs-cmsnest-element="nest-target" class="tag-target"></div></div></div></div></div><a href="/integrations/inabit" class="post-bottom-wrapper w-inline-block"><p class="text-post-card">Inabit is a Crypto Finance Control Center that simplifies digital asset management and crypto-to-fiat transactions. </p></a></div></div></div><div role="navigation" aria-label="List" class="w-pagination-wrapper pagination-easyblox"><div class="pagination-wrap"><a href="#" fs-cmsload-element="page-button" class="pagination_page-button">1</a></div><a href="?32f46bda_page=2" aria-label="Next Page" class="w-pagination-next button-stroke"><div class="w-inline-block">Next</div><svg class="w-pagination-next-icon" height="12px" width="12px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" transform="translate(0, 1)"><path fill="none" stroke="currentColor" fill-rule="evenodd" d="M4 2l4 4-4 4"></path></svg></a><link rel="prerender" href="?32f46bda_page=2"/></div></div></div></div></div><div fs-cmsstatic-order="1" data-w-id="da8a7a10-9cb4-dbae-e77c-644e8f85fda8" class="end-card-wrapper"><div class="post-container"><div class="end-card"><div class="end-card-text"><h3 class="is-purple is-easyblox">Want to join our ecosystem?</h3><p class="text-post-card">
818Apply, get listed, and access thousands of developers.</p></div><a href="/become-a-partner" class="button-primary w-button">Become a Partner</a></div></div></div><div fs-cmsfilter-element="empty" class="extension-empty-state"><div class="text-size-regular">No partners match your criteria just yet, but check in later as new partners are submitted daily. </div></div></div></div><div id="sdk-extensions" data-w-id="581a1d5e-43b1-6aa6-f9a7-fdf93d179883" class="section-extensions"><div class="padding-global"><div class="padding-section-medium no-top-padding"><div class="nested-source"><div class="w-dyn-list"><div fs-cmsnest-collection="category" fs-cmsnest-element="nest-source" role="list" class="end-card-collection-list w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/category/nfts" class="tag-post w-inline-block"><div class="tag-text">NFTs</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/custody" class="tag-post w-inline-block"><div class="tag-text">Custody</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/security" class="tag-post w-inline-block"><div class="tag-text">Security</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/infrastructure" class="tag-post w-inline-block"><div class="tag-text">
818Infrastructure</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/campaigns" class="tag-post w-inline-block"><div class="tag-text">Campaigns</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/tokenization" class="tag-post w-inline-block"><div class="tag-text">Tokenization</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/asset-management" class="tag-post w-inline-block"><div class="tag-text">Asset Management</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/data" class="tag-post w-inline-block"><div class="tag-text">Data</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/payments" class="tag-post w-inline-block"><div class="tag-text">Payments</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/name-services" class="tag-post w-inline-block"><div class="tag-text">Name Services</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/ens" class="tag-post w-inline-block"><div class="tag-text">ENS</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/transactions" class="tag-post w-inline-block"><div class="tag-text">Transactions</div></a></div><div role="listitem" class="w-dyn-item"><a href="/category/wallets" class="tag-post w-inline-block"><div class="tag-text">Wallets</div></a></div></div></div><div class="w-dyn-list"><div fs-cmsnest-collection="blockchain" fs-cmsnest-element="nest-source" role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/blockchain/xinfin" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Xinfin</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/solana" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Solana</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/base" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Base</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/xdc" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">XDC</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/vechain" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">VeChain</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/polygon" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Polygon</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/palm" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Palm</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/optimism" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Optimism</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/oasis" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Oasis</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/kucoin" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">KuCoin</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/klaytn" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Klaytn</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/horizen" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Horizen</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/haqq" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Haqq</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/harmony" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Harmony</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/gnosis" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Gnosis</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/flare" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Flare</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/fantom" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Fantom</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/ethereum-classic" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Ethereum Classic</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/ethereum" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Ethereum</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/cronos" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Cronos</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/chilliz" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">
818Chilliz</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/celo" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Celo</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/binance-smart-chain" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Binance Smart Chain</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/avalanche" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Avalanche</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/aurora" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Aurora</div></a></div><div role="listitem" class="w-dyn-item"><a href="/blockchain/arbitrum" class="tag-post w-inline-block"><div fs-cmsfilter-field="blockchain" class="tag-text">Arbitrum</div></a></div></div></div></div></div></div></div><section id="about" class="about-section"><div class="w-layout-blockcontainer container-7 w-container"><div class="code-embed-3 w-embed"><div class="applications-box"> 819 <span>Blockchain Solutions </span><span class="blox">Tailored</span> <span class="party">to You.</span> 820</div> 821 822<style> 823 .applications-box { 824 font-size: 45px; 825 font-weight: 600; 826 font-family: 'Inter', sans-serif; 827 } 828 829 .applications-box span { 830 color: #222; /* Default dark color */ 831 } 832 833 .applications-box .blox { 834 color: #4F37FD; /* Blue/Purple */ 835 } 836 837 .applications-box .party { 838 color: #39C89B; /* Green */ 839 } 840</style></div><div class="text-block-10">Our ecosystem helps you find best-in-class tools designed to scale your blockchain project fast. </div></div><div class="w-layout-blockcontainer container-6 w-container"><div data-current="Tab 1" data-easing="ease" data-duration-in="300" data-duration-out="100" class="tabs w-tabs"><div class="w-tab-content"><div data-w-tab="Tab 1" class="tab-pane-tab-1 w-tab-pane w--tab-active"><div class="w-layout-blockcontainer w-container"><img sizes="(max-width: 606px) 100vw, 606px" srcset="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6798d032036aab9910a0b40c_Frame%20102-p-500.png 500w, https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6798d032036aab9910a0b40c_Frame%20102.png 606w" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6798d032036aab9910a0b40c_Frame%20102.png" loading="lazy" class="image-2"/></div></div><div data-w-tab="Tab 2" class="tab-pane-tab-2 w-tab-pane"><div class="w-layout-blockcontainer w-container"><img loading="lazy" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/67a4bef9b443b56ba5902c49_Pyramid.svg" alt="" class="image-2"/></div></div><div data-w-tab="Tab 3" class="tab-pane-tab-3 w-tab-pane"><div class="w-layout-blockcontainer w-container"><img loading="lazy" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/67a4be1bf8f4923e49978dca_Frame%20104.svg" alt="" class="image-2"/></div></div></div><div class="tabs-menu w-tab-menu"><a data-w-tab="Tab 1" class="tab-link-tab-1 w-inline-block w-tab-link w--current"><h3 class="heading-7">Curated Ecosystem</h3><div class="text-block-3">Our ecosystem is built on trust and expertise. We pride in vetting every partner we work with.</div></a><a data-w-tab="Tab 2" class="tab-link-tab-2 w-inline-block w-tab-link"><h3 class="heading-7">Best-in-Class <br/>Vendors</h3><div class="text-block-2">We recognize that most blockchain solutions require customization. We ensure we have a selection of robust best-in-class tools to cover your use-case.</div></a><a data-w-tab="Tab 3" class="tab-link-tab-3 w-inline-block w-tab-link"><h3 class="heading-7">AI-Powered Solutions Engine</h3><div class="text-block-4">Why dig for hours looking for the right tools? Our recommendation engine will gather a complete set of tools you need. </div></a></div></div></div></section><section class="section-405"><div class="w-layout-blockcontainer container-8 w-container"><div class="code-embed-2 w-embed"><div class="applications-box"> 841 <span>Join the </span><span class="blox">Tatum</span> <span class="party">party.</span> 842</div> 843 844<style> 845 .applications-box { 846 font-size: 45px; 847 font-weight: 600; 848 font-family: 'Inter', sans-serif; 849 } 850 851 .applications-box span { 852 color: #222; /* Default dark color */ 853 } 854 855 .applications-box .blox { 856 color: #4F37FD; /* Blue/Purple */ 857 } 858 859 .applications-box .party { 860 color: #39C89B; /* Green */ 861 } 862</style></div><div class="text-block-5">Are you a blockchain provider? Partner with Tatum to showcase your solutions globally.</div><div class="w-layout-blockcontainer container-9 w-container"><a href="/become-a-partner" class="button-primary is-purple is-rec-cta w-button">Become a Partner</a></div><div class="div-block"><img src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6799183225308d56d7184178_Content.svg" loading="lazy" data-w-id="689ed2d3-8584-ec22-0eec-c225f00f569a" alt="" class="image-3"/></div></div></section><section id="FAQ" class="section-faq faq is-easyblox"><div data-w-id="2a3e4325-f484-f683-2bdf-3b3e42a6b50b" class="div-block-3"><div id="w-node-_2a3e4325-f484-f683-2bdf-3b3e42a6b50c-efb94fc6" class="div-block-4"><div class="code-embed-5 w-embed"><div class="applications-box"> 863 <span>Most </span><span class="blox">Frequently</span> <span class="party">Asked Questions.</span> 864</div> 865 866<style> 867 .applications-box { 868 font-size: 45px; 869 font-weight: 600; 870 font-family: 'Inter', sans-serif; 871 } 872 873 .applications-box span { 874 color: #222; /* Default dark color */ 875 } 876 877 .applications-box .blox { 878 color: #4F37FD; /* Blue/Purple */ 879 } 880 881 .applications-box .party { 882 color: #39C89B; /* Green */ 883 } 884</style></div><div class="text-block-6">Have questions? Find quick answers to the most common queries about the Tatum Ecosystem and how we
884can support your blockchain journey.</div></div><div id="w-node-_2a3e4325-f484-f683-2bdf-3b3e42a6b50f-efb94fc6" class="grid-6 faq-wrap"><div><div class="faq-question-2"><div class="text-block-7"><a href="#" class="link-faq"><strong class="bold-text-17">Can anyone become a partner?</strong></a></div><div class="faq-icon"><div class="faq-icon-bar hoz"></div><div class="faq-icon-bar ver"></div></div></div><div class="faq-answer"><p class="paragraph-2">We interview every organization that submits the applications and evaluate if the vendor fits the best-in-class standards set by the Tatum Ecosystem. </p></div></div><div><div class="faq-question-2"><div class="text-block-9"><a href="#" class="link-faq"><strong>Are your SDK extensions compatible with any blockchain?</strong></a></div><div class="faq-icon"><div class="faq-icon-bar hoz"></div><div class="faq-icon-bar ver"></div></div></div><div class="faq-answer"><p class="paragraph-3">Our SDK extensions are designed to be as interoperable as possible, but compatibility may vary for each extension. Extension descriptions include compatible blockchain protocols or specific networks.</p></div></div><div><div class="faq-question-2"><div class="text-block-96"><a href="#" class="link-faq"><strong class="bold-text-16">Under what license do you offer your SDK extension?</strong></a></div><div class="faq-icon"><div class="faq-icon-bar hoz"></div><div class="faq-icon-bar ver"></div></div></div><div class="faq-answer"><p class="faq-answer-text">Extensions are offered under various licenses, depending on the developer's preferences and the nature of the extension. Common licenses include open-source licenses like MIT, GPL, or Apache, which allow for broad use and modification. The specific license for each extension is listed on its respective page in the directory. We recommend reading the license terms carefully to understand your rights and obligations when using the extension.</p></div></div><div><div class="faq-question-2"><div class="text-block-97"><a href="#" class="link-faq"><strong class="bold-text-16">What if a partner has a service interruption? </strong></a></div><div class="faq-icon"><div class="faq-icon-bar hoz"></div><div class="faq-icon-bar ver"></div></div></div><div class="faq-answer"><p class="faq-answer-text">We recommend to communicate directly with partners and check that their SLAs meet your requirements. We do check that our partners are committed to their service reliability when we select partners for the ecosystem. </p></div></div></div></div></section></main><div class="footer is-easyblox"><div class="padding-global"><div class="padding-section-medium no-bottom-padding"><div class="container"><div class="w-layout-grid footer-grid"><div id="w-node-_1c11cd9f-ac10-b798-6286-ea3af82ae888-f82ae883" class="column-xs"><img width="Auto" height="Auto" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6541395f64fcf968b48ee3fe_logo_tatum.png" loading="lazy" srcset="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6541395f64fcf968b48ee3fe_logo_tatum-p-500.png 500w, https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6541395f64fcf968b48ee3fe_logo_tatum.png 1026w" sizes="100vw" class="brand-footer"/><div class="footer-text-wr"><div class="text-footer black">Tatum Ecosystem simplifies blockchain integration with curated tools and trusted partners. Build, scale, and innovate with confidence.</div><div class="social-wrap"><a href="https://www.linkedin.com/company/tatumio" target="_blank" class="icon-social-footer w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6541395f64fcf968b48ee309_logo--linkedin.svg" alt="" class="social-icon"/></a><a href="https://www.youtube.com/channel/UCF-OAfXNJ9h3U2ycHE1NGNw" target="_blank" class="icon-social-footer w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6541395f64fcf968b48ee2b6_logo--youtube.svg" alt="" class="social-icon"/></a><a href="https://twitter.com/tatum_io" target="_blank" class="icon-social-footer w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6541395f64fcf968b48ee2fa_logo--twitter.svg" alt="" class="social-icon"/></a><a href="https://github.com/tatumio" target="_blank" class="icon-social-footer w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6541395f64fcf968b48ee42b_bi_github-white.svg" alt="" class="social-icon"/></a><a href="https://discord.gg/tatum" target="_blank" class="icon-social-footer w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6541395f64fcf968b48ee2b8_logo--discord.svg" alt="" class="social-icon"/></a></div></div></div><div id="w-node-_1c11cd9f-ac10-b798-6286-ea3af82ae898-f82ae883" class="footer-links-wrap hidden"><div class="footer-title">Quickstart</div>
884<div id="w-node-_1c11cd9f-ac10-b798-6286-ea3af82ae89b-f82ae883"><a href="https://docs.tatum.io/sdk/get-started-with-tatum-sdk" target="_blank" class="footer-link">Your first App</a><img id="w-node-_1c11cd9f-ac10-b798-6286-ea3af82ae89e-f82ae883" loading="lazy" alt="" src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/6541395f64fcf968b48ee333_external.svg" class="external-link"/></div><div id="w-node-_1c11cd9f-ac10-b798-6286-ea3af82ae89f-f82ae883"></div><div id="w-node-_1c11cd9f-ac10-b798-6286-ea3af82ae8a3-f82ae883"></div></div><div id="w-node-_1c11cd9f-ac10-b798-6286-ea3af82ae8a7-f82ae883" class="footer-links-wrap black"><div class="footer-title">Company</div><a href="/" aria-current="page" class="footer-link w--current">About Tatum Ecosystem</a><a href="https://tatum.io" target="_blank" class="footer-link">Go to Tatum Platform</a><a href="/become-a-partner" class="footer-link">Become a Partner</a></div><div id="w-node-_1c11cd9f-ac10-b798-6286-ea3af82ae8b0-f82ae883" class="footer-links-wrap black"><div class="footer-title">Ecosystem</div><a href="/" aria-current="page" class="footer-link w--current">Explore Partners</a><a href="/" aria-current="page" class="footer-link w--current">FAQ</a></div></div><div class="footer-bottom"><div id="w-node-_1c11cd9f-ac10-b798-6286-ea3af82ae8ba-f82ae883" class="text-footer">© 2025 Tatum Technology LLC. All rights reserved.</div><div id="w-node-_1c11cd9f-ac10-b798-6286-ea3af82ae8bc-f82ae883" class="footer-legacy-link-wr"><a href="/terms-of-use" class="footer-legacy-link">Terms of Use</a><a href="/privacy-policy" class="footer-legacy-link">Privacy Policy</a><a href="/cookie-policy" class="footer-legacy-link">Cookie Policy</a></div></div></div></div></div></div></div>
884<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=6541395f64fcf968b48ee20f" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
884<script src="https://cdn.prod.website-files.com/6541395f64fcf968b48ee20f/js/tatum-staging-be5f9165203262a0315c5a836.98c06488.d952ac6ec5033d26.js" type="text/javascript" integrity="sha384-6tEuYltydmt78lfVNT5gHUXwBFbUzgjER2kwn7bvGHahw64LWTWQyt+38S+nhgb5" crossorigin="anonymous"></script>
884<!-- Google Tag Manager (noscript) --> 885<noscript><iframe src="https://data.tatum.io/ns.html?id=GTM-MCDBPXRS" 886height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 887<!-- End Google Tag Manager (noscript) --> 888
889<script src="https://cdnjs.cloudflare.com/ajax/libs/postscribe/2.0.8/postscribe.min.js"></script>
889 890
891<script> 892// define the load gist function 893var loadGist = function(elem) { 894 var gistUrl = $(elem).text().match(/\bhttps?:\/\/\S+(.js)/gi); 895 if (typeof gistUrl === 'undefined' || gistUrl === null || gistUrl.length == 0) 896 return; 897 //load gist 898 $(elem).show(); 899 $(elem).empty(); 900 postscribe(elem, '
900<script src=' + gistUrl+ '><\/script>'); 901 }; 902 903if (postscribe) { 904 var gists = $('p:contains("CODE:")'); 905 gists.hide(); 906 gists.toArray().forEach(loadGist); 907} else { 908 console.log("you need to include postscribe in your site for this to work") 909} 910</script>
910 911 912<!-- Canonical pagination hack of Webflow - remove query params -->
913<script> 914document.addEventListener("DOMContentLoaded", function() { 915 const canonical = document.querySelector('link[rel="canonical"]'); 916 if (canonical) { 917 try { 918 const url = new URL(canonical.href); 919 url.search = ""; // remove all query parameters 920 canonical.href = url.toString(); 921 } catch (e) { 922 console.error("Invalid canonical URL:", canonical.href); 923 } 924 } 925}); 926</script>
926 927 928<template id="tatum-contact-modal-tpl"> 929 <div class="tatum-contact-modal-root" hidden aria-hidden="true"> 930 <div class="tatum-contact-modal__backdrop" data-contact-form-close tabindex="-1" aria-hidden="true"></div> 931 <div class="tatum-contact-modal__dialog" role="dialog" aria-modal="true" aria-labelledby="tatum-contact-modal-title"> 932 <button type="button" class="tatum-contact-modal__close" data-contact-form-close aria-label="Close contact form"> 933 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"> 934 <path d="M18 6L6 18M6 6l12 12" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" /> 935 </svg> 936 </button> 937 938 <div id="tatum-contact-modal-form-wrap"> 939 <h2 id="tatum-contact-modal-title" class="tatum-contact-modal__title">Get in Touch</h2> 940 941 <form id="tatum-contact-form" class="tatum-contact-modal__form" novalidate> 942 <input 943 type="text" 944 name="tatum_hp" 945 class="tatum-contact-modal__honeypot" 946 tabindex="-1" 947 autocomplete="off" 948 aria-hidden="true" 949 /> 950 951 <div class="tatum-contact-modal__row"> 952 <label class="tatum-contact-modal__field"> 953 <span class="tatum-contact-modal__label">First name</span> 954 <input 955 type="text" 956 id="tatum-contact-first-name" 957 name="firstName" 958 aria-required="false" 959 aria-label="First name" 960 maxlength="40" 961 placeholder="Satoshi" 962 autocomplete="given-name" 963 /> 964 </label> 965 <label class="tatum-contact-modal__field"> 966 <span class="tatum-contact-modal__label"> 967 Last name <span class="tatum-contact-modal__required" aria-hidden="true">*</span> 968 </span> 969 <input 970 type="text" 971 id="tatum-contact-last-name" 972 name="lastName" 973 aria-required="true" 974 aria-label="Last name" 975 maxlength="80" 976 placeholder="Nakamoto" 977 autocomplete="family-name" 978 required 979 /> 980 </label> 981 </div> 982 983 <label class="tatum-contact-modal__field"> 984 <span class="tatum-contact-modal__label"> 985 Email <span class="tatum-contact-modal__required" aria-hidden="true">*</span> 986 </span> 987 <input 988 type="email" 989 id="tatum-contact-email" 990 name="email" 991 aria-required="true" 992 aria-label="Email" 993 maxlength="100" 994 placeholder="[email protected]" 995 autocomplete="email" 996 required 997 /> 998 </label> 999 1000 <label class="tatum-contact-modal__field"> 1001 <span class="tatum-contact-modal__label">Phone Number</span> 1002 <input 1003 type="tel" 1004 id="tatum-contact-phone" 1005 name="phone" 1006 aria-required="false" 1007 aria-label="Phone Number" 1008 maxlength="50" 1009 placeholder="+1 555 867 1234" 1010 autocomplete="tel" 1011 inputmode="tel" 1012 /> 1013 </label> 1014 1015 <label class="tatum-contact-modal__field"> 1016 <span class="tatum-contact-modal__label">Telegram Handle</span> 1017 <input 1018 type="text" 1019 id="tatum-contact-telegram" 1020 name="telegram" 1021 aria-required="false" 1022 aria-label="Telegram Handle" 1023 maxlength="255" 1024 placeholder="@satoshinakamoto" 1025 /> 1026 </label> 1027 1028 <label class="tatum-contact-modal__field"> 1029 <span class="tatum-contact-modal__label"> 1030 Tell us more about your project <span class="tatum-contact-modal__required" aria-hidden="true">*</span> 1031 </span> 1032 <textarea 1033 id="tatum-contact-project" 1034 name="project" 1035 aria-required="true" 1036 aria-label="Tell us more about your project" 1037 rows="2" 1038 placeholder="Tell us about your project and timeline." 1039 required 1040 ></textarea> 1041 </label> 1042 1043 <label class="tatum-contact-modal__consent"> 1044 <input 1045 id="tatum-contact-privacy" 1046 name="termsAccepted" 1047 type="checkbox" 1048 aria-checked="false" 1049 aria-errormessage="tatum-contact-privacy-error" 1050 aria-label="Accept terms and privacy policy" 1051 />
1052 <span class="tatum-contact-modal__consent-text"> 1053 I agree to the 1054 <a href="https://tatum.io/terms-of-use" target="_blank" rel="noopener noreferrer">Terms</a> 1055 and 1056 <a href="https://tatum.io/privacy-policy" target="_blank" rel="noopener noreferrer">Privacy Policy</a> 1057 <span class="tatum-contact-modal__required" aria-hidden="true">*</span> 1058 </span> 1059 </label> 1060 <div id="tatum-contact-privacy-error" aria-live="polite" class="tatum-contact-modal__privacy-error"> 1061 Please accept this 1062 </div> 1063 1064 <div id="tatum-contact-form-error" class="tatum-contact-modal__form-error" role="alert" hidden></div> 1065 1066 <div class="tatum-contact-modal__form-actions"> 1067 <button type="submit" id="tatum-contact-submit" class="tatum-contact-modal__submit" aria-label="Submit"> 1068 Submit 1069 </button> 1070 </div> 1071 </form> 1072 </div> 1073 1074 <div id="tatum-contact-modal-success" class="tatum-contact-modal__success" hidden aria-live="polite"> 1075 <div class="tatum-contact-modal__success-icon" aria-hidden="true"> 1076 <svg width="28" height="28" viewBox="0 0 24 24" fill="none"> 1077 <path d="M20 6L9 17l-5-5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /> 1078 </svg> 1079 </div> 1080 <h2 id="tatum-contact-modal-success-title" class="tatum-contact-modal__success-title" tabindex="-1">Thank you!</h2> 1081 <p class="tatum-contact-modal__success-text">Our team will get in touch shortly.</p> 1082 </div> 1083 </div> 1084 </div> 1085</template> 1086 1087<style id="tatum-contact-modal-css" media="not all"> 1088 .tatum-contact-embed-root[data-tatum-contact-mode='inline'], 1089 .tatum-contact-embed-root:has(.tatum-contact-modal-root--inline) { 1090 display: block; 1091 width: 100%; 1092 height: auto; 1093 overflow: visible; 1094 position: static; 1095 pointer-events: auto; 1096 clip: auto; 1097 white-space: normal; 1098 } 1099 1100 .tatum-contact-modal-root--inline .tatum-contact-modal__backdrop, 1101 .tatum-contact-modal-root--inline .tatum-contact-modal__close { 1102 display: none !important; 1103 } 1104 1105 .tatum-contact-modal-root, 1106 .tatum-contact-modal-root--inline, 1107 .tatum-contact-modal-root *, 1108 .tatum-contact-modal-root--inline * { 1109 box-sizing: border-box; 1110 font-family: Poppins, sans-serif; 1111 } 1112 1113 .tatum-contact-modal-root:not(.tatum-contact-modal-root--inline) { 1114 position: fixed; 1115 inset: 0; 1116 z-index: 1000000; 1117 display: flex; 1118 align-items: center; 1119 justify-content: center; 1120 padding: 16px; 1121 -webkit-font-smoothing: antialiased; 1122 } 1123 1124 .tatum-contact-modal-root:not(.tatum-contact-modal-root--inline)[hidden] { 1125 display: none !important; 1126 } 1127 1128 .tatum-contact-modal-root:not(.tatum-contact-modal-root--inline) .tatum-contact-modal__backdrop { 1129 position: fixed; 1130 inset: 0; 1131 background: rgba(10, 13, 18, 0.55); 1132 backdrop-filter: blur(2px); 1133 } 1134 1135 .tatum-contact-modal-root:not(.tatum-contact-modal-root--inline) .tatum-contact-modal__dialog { 1136 position: relative; 1137 z-index: 1; 1138 width: min(100%, 32rem); 1139 max-height: min(90vh, 640px); 1140 overflow: auto; 1141 margin: 0; 1142 background: #ffffff; 1143 border: 1px solid #e9eaeb; 1144 border-radius: 16px; 1145 padding: 20px; 1146 box-shadow: 0 25px 50px -12px rgba(10, 13, 18, 0.25); 1147 } 1148 1149 .tatum-contact-modal-root:not(.tatum-contact-modal-root--inline) .tatum-contact-modal__close { 1150 position: absolute; 1151 top: 16px; 1152 right: 16px; 1153 display: inline-flex; 1154 align-items: center; 1155 justify-content: center; 1156 width: 36px; 1157 height: 36px; 1158 margin: 0; 1159 padding: 0; 1160 border: 1px solid #e9eaeb; 1161 border-radius: 8px; 1162 background: #ffffff; 1163 color: #414651; 1164 cursor: pointer; 1165 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1), border-color 150ms cubic-bezier(0.4, 0, 0.2, 1); 1166 } 1167 1168 .tatum-contact-modal-root:not(.tatum-contact-modal-root--inline) .tatum-contact-modal__close:hover { 1169 background: #fafafa; 1170 border-color: #d5d7da; 1171 } 1172 1173 .tatum-contact-modal-root:not(.tatum-contact-modal-root--inline) .tatum-contact-modal__close:focus-visible { 1174 outline: 0; 1175 border-color: #4f37fd; 1176 box-shadow: 0 0 0 4px rgba(79, 55, 253, 0.12); 1177 } 1178 1179 .tatum-contact-modal-root .tatum-contact-modal__title, 1180 .tatum-contact-modal-root--inline .tatum-contact-modal__title { 1181 margin: 0 32px 14px 0; 1182 font-size: 24px; 1183 font-weight: 600; 1184 line-height: 32px; 1185 color: #181d27; 1186 } 1187 1188 .tatum-contact-modal-root--inline .tatum-contact-modal__dialog { 1189 position: relative; 1190 z-index: auto; 1191 width: 100%; 1192 max-width: none; 1193 max-height: none; 1194 overflow: visible; 1195 margin: 0; 1196 background: transparent; 1197 border: none; 1198 border-radius: 0; 1199 padding: 0 0 20px; 1200 box-shadow: none; 1201 } 1202 1203 .tatum-contact-modal-root .tatum-contact-modal__form, 1204 .tatum-contact-modal-root--inline .tatum-contact-modal__form { 1205 display: flex; 1206 flex-direction: column; 1207 gap: 10px; 1208 margin: 0; 1209 padding: 0; 1210 border: none; 1211 background: transparent; 1212 } 1213 1214 .tatum-contact-modal-root .tatum-contact-modal__row { 1215 display: flex; 1216 gap: 12px; 1217 flex-wrap: wrap; 1218 } 1219 1220 .tatum-contact-modal-root .tatum-contact-modal__field { 1221 display: flex; 1222 flex-direction: column; 1223 gap: 4px; 1224 flex: 1 1 100%; 1225 margin: 0; 1226 padding: 0; 1227 border: none; 1228 background: transparent; 1229 text-align: left; 1230 } 1231 1232 .tatum-contact-modal-root .tatum-contact-modal__row .tatum-contact-modal__field { 1233 flex: 1 1 calc(50% - 6px); 1234 min-width: 8rem; 1235 } 1236 1237 .tatum-contact-modal-root .tatum-contact-modal__required { 1238 color: #f04438; 1239 } 1240 1241 .tatum-contact-modal-root .tatum-contact-modal__label { 1242 display: block; 1243 margin: 0; 1244 font-size: 14px; 1245 font-weight: 500; 1246 line-height: 20px; 1247 color: #414651; 1248 } 1249 1250 .tatum-contact-modal-root .tatum-contact-modal__field input:not([type='checkbox']), 1251 .tatum-contact-modal-root .tatum-contact-modal__field textarea { 1252 display: block; 1253 width: 100%; 1254 min-height: 2.75rem; 1255 margin: 0; 1256 padding: 10px 12px; 1257 border: 1px solid #d5d7da; 1258 border-radius: 8px; 1259 background: #ffffff; 1260 font-family: Poppins, sans-serif; 1261 font-size: 16px; 1262 font-weight: 400; 1263 line-height: 24px; 1264 color: #181d27; 1265 appearance: none; 1266 -webkit-appearance: none; 1267 box-shadow: none; 1268 } 1269 1270 .tatum-contact-modal-root .tatum-contact-modal__field textarea { 1271 min-height: 3.75rem; 1272 resize: vertical; 1273 line-height: 1.4; 1274 padding: 8px 12px; 1275 } 1276 1277 .tatum-contact-modal-root .tatum-contact-modal__field input:not([type='checkbox'])::placeholder, 1278 .tatum-contact-modal-root .tatum-contact-modal__field textarea::placeholder { 1279 color: #a4a7ae;
1280 opacity: 1; 1281 } 1282 1283 .tatum-contact-modal-root .tatum-contact-modal__field input:not([type='checkbox']):focus, 1284 .tatum-contact-modal-root .tatum-contact-modal__field textarea:focus { 1285 outline: 0; 1286 border-color: #4f37fd; 1287 box-shadow: 0 0 0 4px rgba(79, 55, 253, 0.12); 1288 } 1289 1290 .tatum-contact-modal-root .tatum-contact-modal__consent { 1291 display: flex !important; 1292 flex-direction: row !important; 1293 align-items: flex-start !important; 1294 gap: 10px !important; 1295 margin: 0; 1296 padding: 0; 1297 border: none; 1298 background: transparent; 1299 cursor: pointer; 1300 text-align: left; 1301 } 1302 1303 .tatum-contact-modal-root .tatum-contact-modal__consent input[type='checkbox'] { 1304 display: block; 1305 flex: 0 0 auto; 1306 width: 18px; 1307 height: 18px; 1308 min-height: 18px; 1309 margin: 2px 0 0; 1310 padding: 0; 1311 border: 1px solid #d5d7da; 1312 border-radius: 4px; 1313 accent-color: #4f37fd; 1314 cursor: pointer; 1315 } 1316 1317 .tatum-contact-modal-root .tatum-contact-modal__consent-text { 1318 display: block; 1319 flex: 1; 1320 margin: 0; 1321 font-size: 14px; 1322 font-weight: 400; 1323 line-height: 20px; 1324 color: #535862; 1325 text-align: left; 1326 } 1327 1328 .tatum-contact-modal-root .tatum-contact-modal__consent-text a { 1329 display: inline; 1330 color: #4f37fd; 1331 font-weight: 500; 1332 text-decoration: underline; 1333 text-underline-offset: 2px; 1334 } 1335 1336 .tatum-contact-modal-root .tatum-contact-modal__consent-text a:hover { 1337 color: #402dce; 1338 } 1339 1340 .tatum-contact-modal-root .tatum-contact-modal__privacy-error { 1341 visibility: hidden; 1342 height: 0; 1343 overflow: hidden; 1344 margin: 0; 1345 padding: 0; 1346 font-size: 12px; 1347 line-height: 18px; 1348 color: #f04438; 1349 } 1350 1351 .tatum-contact-modal-root .tatum-contact-modal__privacy-error.is-visible { 1352 visibility: visible; 1353 height: auto; 1354 margin-top: 4px; 1355 } 1356 1357 .tatum-contact-modal-root .tatum-contact-modal__form-error { 1358 margin: 0; 1359 padding: 10px 12px; 1360 border-radius: 8px; 1361 background: #fef3f2; 1362 color: #b42318; 1363 border: 1px solid #fecdca; 1364 font-size: 14px; 1365 line-height: 20px; 1366 } 1367 1368 .tatum-contact-modal-root .tatum-contact-modal__form-error[hidden] { 1369 display: none !important; 1370 } 1371 1372 .tatum-contact-modal-root .tatum-contact-modal__honeypot { 1373 position: absolute; 1374 left: -9999px; 1375 width: 1px; 1376 height: 1px; 1377 opacity: 0; 1378 pointer-events: none; 1379 } 1380 1381 .tatum-contact-modal-root .tatum-contact-modal__form-actions { 1382 display: flex; 1383 align-items: center; 1384 justify-content: flex-start; 1385 margin-top: 2px; 1386 } 1387 1388 .tatum-contact-modal-root .tatum-contact-modal__submit { 1389 display: inline-flex; 1390 align-items: center; 1391 justify-content: center; 1392 width: auto; 1393 min-width: 9rem; 1394 height: 2.5rem; 1395 min-height: 2.5rem; 1396 margin: 0; 1397 padding: 0 20px; 1398 border: none; 1399 border-radius: 8px; 1400 background: #4f37fd; 1401 color: #ffffff; 1402 font-family: Poppins, sans-serif; 1403 font-size: 14px; 1404 font-weight: 600; 1405 line-height: 20px; 1406 white-space: nowrap; 1407 cursor: pointer; 1408 box-sizing: border-box; 1409 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1); 1410 } 1411 1412 .tatum-contact-modal-root .tatum-contact-modal__submit:hover:not(:disabled) { 1413 background: #4832e7; 1414 } 1415 1416 .tatum-contact-modal-root .tatum-contact-modal__submit:focus-visible { 1417 outline: 0; 1418 box-shadow: 0 0 0 4px rgba(79, 55, 253, 0.12); 1419 } 1420 1421 .tatum-contact-modal-root .tatum-contact-modal__submit:disabled { 1422 opacity: 0.55; 1423 cursor: not-allowed; 1424 } 1425 1426 .tatum-contact-modal-root .tatum-contact-modal__success { 1427 display: flex; 1428 flex-direction: column; 1429 align-items: center; 1430 justify-content: center; 1431 text-align: center; 1432 padding: 32px 8px 24px; 1433 min-height: 280px; 1434 } 1435 1436 .tatum-contact-modal-root .tatum-contact-modal__success[hidden] { 1437 display: none !important; 1438 } 1439 1440 .tatum-contact-modal-root .tatum-contact-modal__success-icon { 1441 display: inline-flex; 1442 align-items: center; 1443 justify-content: center; 1444 width: 56px; 1445 height: 56px; 1446 margin-bottom: 20px; 1447 border-radius: 50%; 1448 background: #ecfdf3; 1449 color: #17b26a; 1450 } 1451 1452 .tatum-contact-modal-root .tatum-contact-modal__success-title { 1453 margin: 0 0 8px; 1454 font-size: 24px; 1455 font-weight: 600; 1456 line-height: 32px; 1457 color: #181d27; 1458 } 1459 1460 .tatum-contact-modal-root .tatum-contact-modal__success-text { 1461 margin: 0; 1462 max-width: 24rem; 1463 font-size: 16px; 1464 font-weight: 400; 1465 line-height: 24px; 1466 color: #535862; 1467 } 1468 1469 .tatum-contact-modal-root.is-success:not(.tatum-contact-modal-root--inline) .tatum-contact-modal__dialog { 1470 max-height: min(92vh, 420px); 1471 } 1472 1473 @media (max-width: 479px) { 1474 .tatum-contact-modal-root:not(.tatum-contact-modal-root--inline) { 1475 padding: 12px; 1476 } 1477 1478 .tatum-contact-modal-root:not(.tatum-contact-modal-root--inline) .tatum-contact-modal__dialog { 1479 padding: 20px 16px 16px; 1480 border-radius: 12px; 1481 } 1482 1483 .tatum-contact-modal-root .tatum-contact-modal__row .tatum-contact-modal__field, 1484 .tatum-contact-modal-root--inline .tatum-contact-modal__row .tatum-contact-modal__field { 1485 flex: 1 1 100%; 1486 } 1487 1488 .tatum-contact-modal-root .tatum-contact-modal__submit { 1489 width: 100%; 1490 min-width: 0; 1491 } 1492 } 1493 1494 .tatum-contact-modal-root.tatum-contact-modal-root--inline { 1495 position: static; 1496 inset: auto; 1497 display: block; 1498 align-items: stretch; 1499 justify-content: flex-start; 1500 padding: 0; 1501 z-index: auto; 1502 } 1503 1504 .tatum-contact-modal-root--inline .tatum-contact-modal__title { 1505 display: none; 1506 } 1507 1508 .tatum-contact-modal-root--inline.is-success .tatum-contact-modal__success { 1509 min-height: 12rem; 1510 padding-bottom: 20px; 1511 } 1512</style> 1513
1514<script> 1515 (function () { 1516 var CONTACT_API = 'https://tatum.io/forms/api/zoho-contact'; 1517 var UTM_KEYS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'gclid']; 1518 var UTM_STORAGE = 'tatum_crm_utm_v1'; 1519 1520 var ns = window.__tatumContactForm = window.__tatumContactForm || { 1521 version: 0, 1522 ready: false, 1523 loading: false 1524 }; 1525 1526 if (ns.version === 3) return; 1527 if (ns.registered) return; 1528 ns.registered = true; 1529 1530 function readUtms() { 1531 var params = new URLSearchParams(window.location.search); 1532 var out = {}; 1533 UTM_KEYS.forEach(function (key) { 1534 var value = params.get(key); 1535 if (value) out[key] = value; 1536 }); 1537 if (document.referrer) out.referrer = document.referrer; 1538 return out; 1539 } 1540 1541 function getStoredUtms() { 1542 try { 1543 return JSON.parse(sessionStorage.getItem(UTM_STORAGE) || '{}'); 1544 } catch (e) { 1545 return {}; 1546 } 1547 } 1548 1549 function persistUtms() { 1550 var fresh = readUtms(); 1551 var stored = getStoredUtms(); 1552 var merged = Object.assign({}, stored, fresh); 1553 if (Object.keys(merged).length) { 1554 sessionStorage.setItem(UTM_STORAGE, JSON.stringify(merged)); 1555 } 1556 } 1557 1558 function isInlineEmbedRoot(root) { 1559 if (!root) return false; 1560 if (root.getAttribute('data-tatum-contact-mode') === 'inline') return true; 1561 if (root.getAttribute('data-tatum-contact-mode') === 'modal') return false;
1562 return !!(root.closest('.hubspot-form, .zohoform, [class*="form-center"]')); 1563 } 1564 1565 function hasInlineEmbed() { 1566 var roots = document.querySelectorAll('#tatum-contact-embed-root'); 1567 for (var i = 0; i < roots.length; i++) { 1568 if (isInlineEmbedRoot(roots[i])) return true; 1569 } 1570 return false; 1571 } 1572 1573 function findEmbedBundle(root) { 1574 if (!root) return null; 1575 1576 var tpl = root.querySelector('.tatum-contact-embed-tpl'); 1577 var css = root.querySelector('.tatum-contact-embed-css'); 1578 if (tpl && getModalSourceNode(tpl)) { 1579 return { tpl: tpl, css: css, root: root }; 1580 } 1581 1582 return null; 1583 } 1584 1585 function findFooterBundle() { 1586 var tpl = document.getElementById('tatum-contact-modal-tpl'); 1587 var css = document.getElementById('tatum-contact-modal-css'); 1588 if (tpl && getModalSourceNode(tpl)) { 1589 return { tpl: tpl, css: css, root: null }; 1590 } 1591 1592 return null; 1593 } 1594 1595 function findInlineEmbedRoot() { 1596 var roots = document.querySelectorAll('#tatum-contact-embed-root'); 1597 for (var i = 0; i < roots.length; i++) { 1598 if (isInlineEmbedRoot(roots[i])) return roots[i]; 1599 } 1600 return null; 1601 } 1602 1603 function findModalTemplateBundle() { 1604 var inlineRoot = findInlineEmbedRoot(); 1605 if (inlineRoot) { 1606 var inlineBundle = findEmbedBundle(inlineRoot); 1607 if (inlineBundle) return inlineBundle; 1608 } 1609 1610 var modalHost = document.querySelector('#tatum-contact-embed-root:not([data-tatum-contact-mode="inline"])'); 1611 if (modalHost && isInlineEmbedRoot(modalHost)) modalHost = null; 1612 var embedBundle = findEmbedBundle(modalHost); 1613 if (embedBundle) return embedBundle; 1614 1615 return findFooterBundle(); 1616 } 1617 1618 function isTrigger(el) { 1619 if (!el || !el.closest) return null; 1620 1621 var explicit = el.closest('#Contact-Form, [data-contact-form-open]'); 1622 if (explicit) return explicit; 1623 1624 var salesTrigger = el.closest('button, a'); 1625 if (salesTrigger && /contact\s+sales/i.test((salesTrigger.textContent || '').replace(/\s+/g, ' '))) { 1626 return salesTrigger; 1627 } 1628 1629 var touchLink = el.closest('a[href*="get-in-touch"]'); 1630 if (touchLink) return touchLink; 1631 1632 return null; 1633 } 1634 1635 function getModalSourceNode(tpl) { 1636 if (tpl.content && tpl.content.firstElementChild) { 1637 return tpl.content.firstElementChild; 1638 } 1639 1640 if (tpl.firstElementChild) { 1641 return tpl.firstElementChild; 1642 } 1643 1644 return null; 1645 } 1646 1647 function getFormPage(shell) { 1648 var embedRoot = shell.closest('#tatum-contact-embed-root'); 1649 if (embedRoot) { 1650 var override = embedRoot.getAttribute('data-tatum-contact-form-page'); 1651 if (override) return override; 1652 } 1653 return window.location.pathname || 'Get in Touch'; 1654 } 1655 1656 function trim(value) { 1657 return (value || '').replace(/^\s+|\s+$/g, ''); 1658 } 1659 1660 function isValidEmail(value) { 1661 var emailVal = trim(value); 1662 if (!emailVal.length) return false; 1663 var atpos = emailVal.indexOf('@'); 1664 var dotpos = emailVal.lastIndexOf('.'); 1665 return atpos >= 1 && dotpos > atpos + 1 && dotpos + 2 < emailVal.length; 1666 } 1667 1668 function buildPayload(form, shell) { 1669 var utm = getStoredUtms(); 1670 var honeypot = form.querySelector('[name="tatum_hp"]'); 1671 1672 return { 1673 firstName: trim(form.querySelector('[name="firstName"]') && form.querySelector('[name="firstName"]').value), 1674 lastName: trim(form.querySelector('[name="lastName"]') && form.querySelector('[name="lastName"]').value), 1675 email: trim(form.querySelector('[name="email"]') && form.querySelector('[name="email"]').value), 1676 phone: trim(form.querySelector('[name="phone"]') && form.querySelector('[name="phone"]').value), 1677 telegram: trim(form.querySelector('[name="telegram"]') && form.querySelector('[name="telegram"]').value), 1678 project: trim(form.querySelector('[name="project"]') && form.querySelector('[name="project"]').value), 1679 termsAccepted: true, 1680 honeypot: honeypot ? honeypot.value : '', 1681 utmSource: utm.utm_source || '', 1682 utmMedium: utm.utm_medium || '', 1683 utmCampaign: utm.utm_campaign || '', 1684 utmTerm: utm.utm_term || '', 1685 utmContent: utm.utm_content || '', 1686 referrerUrl: utm.referrer || '', 1687 gclid: utm.gclid || '', 1688 formPage: getFormPage(shell) 1689 }; 1690 } 1691 1692 function handleContactFormSubmit(event, state) { 1693 if (state.isSubmitting) return; 1694 1695 event.preventDefault(); 1696 1697 state.clearFormError(); 1698 1699 if (!state.checkMandatory()) { 1700 if (state.submitBtn) { 1701 state.submitBtn.disabled = false;
1702 state.setSubmitLabel('Submit'); 1703 } 1704 return; 1705 } 1706 1707 var payload = buildPayload(state.form, state.shell); 1708 if (payload.honeypot) return; 1709 1710 if (state.submitBtn) { 1711 state.submitBtn.disabled = true; 1712 state.setSubmitLabel('Sendingâ¦'); 1713 } 1714 1715 state.isSubmitting = true; 1716 1717 function finishSubmitting() { 1718 state.isSubmitting = false; 1719 if (state.submitBtn) { 1720 state.submitBtn.disabled = false; 1721 state.setSubmitLabel('Submit'); 1722 } 1723 } 1724 1725 fetch(CONTACT_API, { 1726 method: 'POST', 1727 headers: { 'Content-Type': 'application/json' }, 1728 body: JSON.stringify(payload), 1729 cache: 'no-cache' 1730 }) 1731 .then(function (response) { 1732 return response.json().then(function (data) { 1733 return { response: response, data: data }; 1734 }); 1735 }) 1736 .then(function (result) { 1737 if (!result.response.ok || !result.data.ok) { 1738 throw new Error(result.data.error || 'Something went wrong while submitting the form. Please try again.'); 1739 } 1740 1741 finishSubmitting(); 1742 state.showSuccessView(); 1743 }) 1744 .catch(function (error) { 1745 finishSubmitting(); 1746 state.showFormError(error && error.message ? error.message : 'Something went wrong while submitting the form. Please try again.'); 1747 }); 1748 } 1749 1750 function registerContactFormShell(shell, state) { 1751 if (!shell.id) { 1752 shell.id = state.isModal ? 'tatum-contact-modal' : 'tatum-contact-inline-form'; 1753 } 1754 1755 shell.setAttribute('data-tatum-contact-wired', 'true'); 1756 ns.shellRegistry = ns.shellRegistry || {}; 1757 ns.shellRegistry[shell.id] = state; 1758 } 1759 1760 function wireContactFormShell(shell, config) { 1761 var isModal = config.mode === 'modal'; 1762 var formWrap = shell.querySelector('#tatum-contact-modal-form-wrap'); 1763 var successPanel = shell.querySelector('#tatum-contact-modal-success'); 1764 var form = shell.querySelector('#tatum-contact-form'); 1765 var submitBtn = shell.querySelector('#tatum-contact-submit'); 1766 var privacyTool = shell.querySelector('#tatum-contact-privacy'); 1767 var privacyErr = shell.querySelector('#tatum-contact-privacy-error'); 1768 var formError = shell.querySelector('#tatum-contact-form-error'); 1769 1770 if (!formWrap || !successPanel || !form) return null; 1771 1772 var lastFocused = null; 1773 1774 function clearFormError() { 1775 if (!formError) return; 1776 formError.textContent = ''; 1777 formError.hidden = true; 1778 } 1779 1780 function showFormError(message) { 1781 if (!formError) { 1782 alert(message); 1783 return; 1784 } 1785 formError.textContent = message; 1786 formError.hidden = false; 1787 } 1788 1789 function privacyAlert() { 1790 if (privacyTool && !privacyTool.checked) { 1791 if (privacyErr) privacyErr.classList.add('is-visible'); 1792 privacyTool.setAttribute('aria-invalid', 'true'); 1793 privacyTool.focus(); 1794 return false; 1795 } 1796 return true; 1797 } 1798 1799 function disablePrivacyErr() { 1800 if (privacyTool && privacyTool.checked && privacyErr) { 1801 privacyErr.classList.remove('is-visible'); 1802 privacyTool.setAttribute('aria-invalid', 'false'); 1803 } 1804 } 1805 1806 function checkMandatory() { 1807 var lastName = form.querySelector('[name="lastName"]'); 1808 var email = form.querySelector('[name="email"]'); 1809 var project = form.querySelector('[name="project"]'); 1810 1811 if (lastName && !trim(lastName.value).length) { 1812 showFormError('Last name cannot be empty.'); 1813 lastName.focus(); 1814 return false; 1815 } 1816 1817 if (email && !trim(email.value).length) { 1818 showFormError('Email cannot be empty.'); 1819 email.focus(); 1820 return false; 1821 } 1822 1823 if (email && !isValidEmail(email.value)) { 1824 showFormError('Please enter a valid email address.'); 1825 email.focus(); 1826 return false; 1827 } 1828 1829 if (project && !trim(project.value).length) { 1830 showFormError('Tell us more about your project cannot be empty.'); 1831 project.focus(); 1832 return false;
1833 } 1834 1835 if (!privacyAlert()) return false; 1836 1837 return true; 1838 } 1839 1840 function showFormView() { 1841 formWrap.hidden = false; 1842 successPanel.hidden = true; 1843 shell.classList.remove('is-success'); 1844 shell.setAttribute('aria-labelledby', 'tatum-contact-modal-title'); 1845 } 1846 1847 function showSuccessView() { 1848 formWrap.hidden = true; 1849 successPanel.hidden = false; 1850 shell.classList.add('is-success'); 1851 shell.setAttribute('aria-labelledby', 'tatum-contact-modal-success-title'); 1852 var successTitle = shell.querySelector('#tatum-contact-modal-success-title'); 1853 if (successTitle) { 1854 window.setTimeout(function () { 1855 successTitle.focus(); 1856 }, 50); 1857 } 1858 } 1859 1860 function setSubmitLabel(label) { 1861 if (!submitBtn) return; 1862 submitBtn.textContent = label; 1863 } 1864 1865 function resetFormState() { 1866 form.reset(); 1867 if (submitBtn) { 1868 submitBtn.disabled = false; 1869 setSubmitLabel('Submit'); 1870 } 1871 if (privacyErr) privacyErr.classList.remove('is-visible'); 1872 clearFormError(); 1873 showFormView(); 1874 } 1875 1876 function openModal(event) { 1877 if (event) event.preventDefault(); 1878 lastFocused = document.activeElement; 1879 resetFormState(); 1880 shell.hidden = false; 1881 shell.setAttribute('aria-hidden', 'false'); 1882 shell.classList.add('is-open'); 1883 document.body.style.overflow = 'hidden'; 1884 var firstField = shell.querySelector('#tatum-contact-first-name'); 1885 if (firstField) { 1886 window.setTimeout(function () { 1887 firstField.focus(); 1888 }, 50); 1889 } 1890 } 1891 1892 function closeModal() { 1893 shell.hidden = true; 1894 shell.setAttribute('aria-hidden', 'true'); 1895 shell.classList.remove('is-open'); 1896 document.body.style.overflow = ''; 1897 resetFormState(); 1898 if (lastFocused && typeof lastFocused.focus === 'function') { 1899 lastFocused.focus(); 1900 } 1901 } 1902 1903 if (privacyTool) { 1904 privacyTool.addEventListener('change', disablePrivacyErr); 1905 } 1906 1907 var state = { 1908 shell: shell, 1909 form: form, 1910 formWrap: formWrap, 1911 successPanel: successPanel, 1912 submitBtn: submitBtn, 1913 isModal: isModal, 1914 isSubmitting: false, 1915 checkMandatory: checkMandatory, 1916 showSuccessView: showSuccessView, 1917 showFormError: showFormError, 1918 clearFormError: clearFormError, 1919 setSubmitLabel: setSubmitLabel 1920 }; 1921 1922 registerContactFormShell(shell, state); 1923 1924 form.addEventListener('submit', function (event) { 1925 handleContactFormSubmit(event, state); 1926 }); 1927 1928 if (isModal) { 1929 shell.querySelectorAll('[data-contact-form-close]').forEach(function (el) { 1930 el.addEventListener('click', closeModal); 1931 }); 1932 1933 document.addEventListener('keydown', function (event) { 1934 if (event.key === 'Escape' && shell.classList.contains('is-open')) { 1935 closeModal(); 1936 } 1937 }); 1938 } 1939 1940 return { 1941 open: openModal, 1942 close: closeModal, 1943 reset: resetFormState 1944 }; 1945 } 1946 1947 function initInlineEmbed(root) { 1948 if (root.dataset.tatumContactMounted === 'true') { 1949 if (document.getElementById('tatum-contact-inline-form')) return true; 1950 delete root.dataset.tatumContactMounted; 1951 } 1952 1953 root.setAttribute('data-tatum-contact-mode', 'inline'); 1954 1955 var bundle = findEmbedBundle(root); 1956 if (!bundle) return false; 1957 1958 if (bundle.css) bundle.css.media = 'all'; 1959 1960 var sourceNode = getModalSourceNode(bundle.tpl); 1961 if (!sourceNode) return false; 1962 1963 var shell = sourceNode.cloneNode(true); 1964 shell.classList.add('tatum-contact-modal-root', 'tatum-contact-modal-root--inline'); 1965 shell.id = 'tatum-contact-inline-form'; 1966 shell.removeAttribute('hidden'); 1967 shell.setAttribute('aria-hidden', 'false'); 1968 1969 var backdrop = shell.querySelector('.tatum-contact-modal__backdrop'); 1970 if (backdrop) backdrop.remove(); 1971 1972 var closeBtn = shell.querySelector('.tatum-contact-modal__close'); 1973 if (closeBtn) closeBtn.remove(); 1974 1975 root.insertBefore(shell, bundle.tpl); 1976 1977 if (!wireContactFormShell(shell, { mode: 'inline' })) return false;
1978 1979 root.dataset.tatumContactMounted = 'true'; 1980 return true; 1981 } 1982 1983 function initInlineEmbeds() { 1984 var mounted = false; 1985 var roots = document.querySelectorAll('#tatum-contact-embed-root'); 1986 1987 for (var i = 0; i < roots.length; i++) { 1988 if (!isInlineEmbedRoot(roots[i])) continue; 1989 if (initInlineEmbed(roots[i])) mounted = true; 1990 } 1991 1992 return mounted; 1993 } 1994 1995 function initContactModal() { 1996 var existingModal = document.getElementById('tatum-contact-modal'); 1997 if (existingModal) { 1998 if (existingModal.querySelector('#tatum-contact-form') && typeof window.openTatumContactModal === 'function') { 1999 return window.openTatumContactModal; 2000 } 2001 2002 existingModal.remove(); 2003 if (ns.shellRegistry) delete ns.shellRegistry['tatum-contact-modal']; 2004 window.openTatumContactModal = undefined; 2005 } 2006 2007 var bundle = findModalTemplateBundle(); 2008 if (!bundle) return null; 2009 2010 if (bundle.css) bundle.css.media = 'all'; 2011 2012 var sourceNode = getModalSourceNode(bundle.tpl); 2013 if (!sourceNode) return null; 2014 2015 var modal = sourceNode.cloneNode(true); 2016 modal.id = 'tatum-contact-modal'; 2017 modal.classList.add('tatum-contact-modal-root'); 2018 modal.hidden = true; 2019 modal.setAttribute('aria-hidden', 'true'); 2020 document.body.appendChild(modal); 2021 2022 var wired = wireContactFormShell(modal, { mode: 'modal' }); 2023 if (!wired) return null; 2024 2025 window.openTatumContactModal = wired.open; 2026 ns.version = 3; 2027 return wired.open; 2028 } 2029 2030 function initAll() { 2031 persistUtms(); 2032 var inlineMounted = initInlineEmbeds(); 2033 var openModal = initContactModal(); 2034 return inlineMounted || !!openModal; 2035 } 2036 2037 function boot(onReady) { 2038 if (ns.ready) { 2039 onReady(window.openTatumContactModal); 2040 return; 2041 } 2042 2043 if (ns.loading) { 2044 var wait = setInterval(function () { 2045 if (ns.ready) { 2046 clearInterval(wait); 2047 onReady(window.openTatumContactModal); 2048 } 2049 }, 20); 2050 return; 2051 } 2052 2053 ns.loading = true; 2054 ns.ready = initAll(); 2055 ns.loading = false; 2056 2057 if (ns.ready) onReady(window.openTatumContactModal); 2058 } 2059 2060 document.addEventListener('click', function (event) { 2061 var trigger = isTrigger(event.target); 2062 if (!trigger) return; 2063 event.preventDefault(); 2064 boot(function (openModal) { 2065 if (openModal) { 2066 openModal(event); 2067 return; 2068 } 2069 2070 var inline = document.getElementById('tatum-contact-inline-form'); 2071 if (inline) { 2072 inline.scrollIntoView({ behavior: 'smooth', block: 'center' }); 2073 } 2074 }); 2075 }, true); 2076 2077 function startAfterPageLoad() { 2078 initInlineEmbeds(); 2079 2080 if (!document.getElementById('tatum-contact-modal') && document.getElementById('tatum-contact-modal-tpl')) { 2081 ns.ready = false; 2082 } 2083 2084 boot(function (openModal) { 2085 if (window.location.hash === '#contact-sales' && openModal) { 2086 openModal(); 2087 } 2088 }); 2089 } 2090 2091 function scheduleBoot() { 2092 startAfterPageLoad(); 2093 window.setTimeout(startAfterPageLoad, 300); 2094 window.setTimeout(startAfterPageLoad, 1500); 2095 } 2096 2097 if (document.readyState === 'complete') { 2098 scheduleBoot(); 2099 } else { 2100 window.addEventListener('load', scheduleBoot); 2101 } 2102 })(); 2103</script>
2103<!-- F'in sweet CMS Library for Webflow -->
2104<script src="https://cdn.jsdelivr.net/npm/@finsweet/cms-library@1/cms-library.js"></script>
vendor: 1 bytes, line 2104
2104
2105<script> 2106(function() { 2107var fsComponent = new FsLibrary('.blog-featured-list') 2108 2109fsComponent.nest({ 2110Â Â textList: '.text-of-categories-list', 2111 nestSource: '.nest-multi-reference', 2112 nestTarget: '.multi-ref-target' 2113}) 2114})(); 2115</script>
2115 2116 2117<!-- Clamp.js script -->
2118<script src="https://cdn.jsdelivr.net/npm/[email protected]/clamp.min.js"></script>
vendor: 1 bytes, line 2118
2118
2119<script> 2120$('.text-post-card').each(function(index, element) { 2121 $clamp(element, { clamp: 4, useNativeClamp: false }); 2122}); 2123</script>
2123 2124
2125<script> 2126// Function to check if any filter is active 2127function isAnyFilterActive() { 2128 const filters = document.querySelectorAll('.fs-checkbox_field-10 input[type="checkbox"]'); 2129 for (let filter of filters) { 2130 if (filter.checked) { 2131 return true; 2132 } 2133 } 2134 return false; 2135} 2136 2137// Function to update the visibility of the reset button 2138function updateResetButtonVisibility() { 2139 const resetButton = document.querySelector('.filter-reset-all'); 2140 if (isAnyFilterActive()) { 2141 resetButton.style.display = 'block'; 2142 } else { 2143 resetButton.style.display = 'none'; 2144 } 2145} 2146 2147// Attach event listeners to the filter checkboxes 2148const filterCheckboxes = document.querySelectorAll('.fs-checkbox_field-10 input[type="checkbox"]'); 2149filterCheckboxes.forEach(checkbox => { 2150 checkbox.addEventListener('change', updateResetButtonVisibility); 2151}); 2152</script>
2152 2153
2154<script> 2155document.addEventListener("DOMContentLoaded", function() { 2156 // Function to check if it's the first page 2157 function isFirstPage() { 2158 // Check if the URL contains '_page=1' 2159 return window.location.search.includes('_page=1') || !window.location.search.includes('_page='); 2160 } 2161 2162 // Select the grid element 2163 var grid = document.querySelector('.blog-collection-list'); 2164 2165 // Assuming your static item is already on the page but hidden 2166 var staticItem = document.querySelector('.end-card-wrapper'); 2167 2168 // Check if both elements exist 2169 if (grid && staticItem) { 2170 // Check if it's the first page 2171 if (isFirstPage()) { 2172 // Insert the static item in the 6th position 2173 if (grid.children.length >= 5) { 2174 grid.insertBefore(staticItem, grid.children[5]); 2175 } else { 2176 // If there are less than 5 items, append it at the end 2177 grid.appendChild(staticItem); 2178 } 2179 2180 // Make sure the static item is visible 2181 staticItem.style.display = 'block'; 2182 } else { 2183 // Hide the static item on other pages 2184 staticItem.style.display = 'none'; 2185 } 2186 } 2187}); 2188 2189 2190</script>
2190</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.