[{"data":1,"prerenderedAt":1864},["ShallowReactive",2],{"sanity-0vx860qANOB8CccsDGE2gHIvftsFnrZIEPQEzBiaaYg":3,"sanity-M3ecfVdT1haLVC6W5tbM4X39CNYacavIuqPq8YoIHrc":401,"sanity-HBo8yr32c1cDjwcErH33RRW5GSKFIyGZkagd_IL3aPg":407},{"data":4},{"bannerText":5,"bannerUpdatedAt":6,"menuPrimaryNav":7,"menuPrimaryNavSecond":5,"menuSecondaryNav":120,"metrics":5,"newsletterErrorMessage":299,"newsletterInstructions":300,"newsletterPlaceholder":301,"newsletterSubmitButtonLabel":302,"newsletterSuccessMessage":303,"rightsText":5,"socials":304,"socialsListLabel":396,"swapButton":397},null,"2026-07-31T01:45:59Z",[8,28,42,55,68,81,94,107],{"icon":9,"link":12,"media":18},{"isCustom":10,"raw":11},true,"\u003Csvg width=\"100\" height=\"149\" viewBox=\"0 0 100 149\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Ccircle cx=\"49.9834\" cy=\"98.2666\" r=\"49.9834\" fill=\"#FAFAFA\"\u002F>\n\u003Ccircle cx=\"49.9834\" cy=\"49.9834\" r=\"49.9834\" fill=\"#33FF99\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":5,"getParameters":5,"isInternal":10,"label":13,"openInNewTab":5,"page":14,"title":5,"url":17},"Swap",{"slug":15,"type":16},"swap","page","https:\u002F\u002Fswap.thorchain.org\u002Fswap",{"image":19,"lottie":25,"type":27},{"alt":20,"assetId":21,"caption":5,"crop":5,"height":22,"hotspot":5,"lqip":23,"width":24},"","image-2be7810d802cf6b01bae376ec68083be67c3df8b-249x217-png",217,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAC2ElEQVR4nJ2T30tTYRjHNzMh+31TDe8iioRy58wiKq0MEyK6qv6AoCCMfhFBEJ2LAhG6iaIQt50zf0ULg0zn5nRutbZRmbXMQlqu\u002FNGF0Sws5znPc75x\u002FHG1NO0LDy+8vO\u002Fn+bwPvCbTfAIpS4KUNa+zcwYw21C1OB+3l21FzdI9kLKNvf8AmcyGkQER9OrNgmY\u002FLGquQ4Wwb7KhKdckTdrOEwyY8+HOKYCSJ8JZJrJSaWM5ILLSLkK5LkDeb0OtJR9Szj9tj8K9aDfqV2+DvVCEclZk+ZHISlJg57jA8m8RSkJkpbEQcnkhXEIB5FUmuBfNarZl9M5qq1Z90MrKXYGVuMDyD4GdJLCTBXLoAjlIYHlUZFe3leVbVjhL16NqZaYppuaxA0peEdVd3M0N8W3sSlsNENt1gR2YLDLKydu5ZryI618VU92ZItRa\u002Fvp0AOZG9Foc9OZ8BUd7jrNH3ct1usgOWCfLDhs7UUL1+klunaik6GsZb8obkFhr3M2ATa95KTV96aOaeu+jfu06h3GEG7GTa7CLXTjGD1HBEbRTUv2kjr79oarnAFgygDPQZC8snxN0fnBQ6xlOpdV4ekRvoHe4zEFc4SDuUy960t\u002F04VR6YmiIupMJKk8kkGloMk1ttD9GXjhAF7qi1N0bp\u002FGBQY37f44hro7grTqC5M8x\u002FcsA8bs4\u002FX4R4RdPO+l0qHVsdkO\u002FHyuDLVppyKvdDAeoqytGqb73RF+\u002FavrwMOl9H0h7GaXv4QA\u002FD\u002Fn4RtCr7QuHsfyvwGlolgH1NU9YOzzqqWAbPYiGKNEdo19dMfoVe8J9wTa+19FCJ\u002Fwt2BLz6CskCXP\u002FcaOb242czmas6\u002FBpJQGvdu2Jn72hNvYE2+hqyIfiZz6sqarC4lnNTJlYs9H5ZRNy\u002FS3pjYFWrazDox3wesc3RCJYYrxkZu4LimHQ2Ynspqah3IgbSyQJ2Quwmj2G7T9nNZ0\u002F2NEWuqs0czUAAAAASUVORK5CYII=",249,{"url":26},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002F2f04a6f9a8bbc129979c437905f8a4f3fcd36d85.json","lottie",{"icon":29,"link":31,"media":36},{"isCustom":10,"raw":30},"\u003Csvg width=\"141\" height=\"150\" viewBox=\"0 0 141 150\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M66.8085 59.1811C69.0743 57.793 71.9271 57.793 74.1929 59.1811L137.624 98.0414C142.125 100.799 142.125 107.341 137.624 110.099L74.1929 148.959C71.9271 150.347 69.0743 150.347 66.8085 148.959L3.37782 110.099C-1.12402 107.341 -1.12401 100.799 3.37783 98.0414L66.8085 59.1811Z\" fill=\"#00CCFF\"\u002F>\n\u003Cpath d=\"M66.8085 32.8102C69.0743 31.422 71.9271 31.422 74.1929 32.8102L137.624 71.6705C142.125 74.4285 142.125 80.9697 137.624 83.7277L74.1929 122.588C71.9271 123.976 69.0743 123.976 66.8085 122.588L3.37782 83.7277C-1.12402 80.9697 -1.12401 74.4285 3.37783 71.6705L66.8085 32.8102Z\" fill=\"white\"\u002F>\n\u003Cpath d=\"M66.8071 1.0411C69.0729 -0.347034 71.9257 -0.347034 74.1915 1.0411L137.622 39.9014C142.124 42.6594 142.124 49.2006 137.622 51.9586L74.1915 90.8189C71.9257 92.207 69.0729 92.207 66.8071 90.8189L3.37638 51.9586C-1.12546 49.2006 -1.12546 42.6594 3.37638 39.9014L66.8071 1.0411Z\" fill=\"#33FF99\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":5,"getParameters":5,"isInternal":10,"label":32,"openInNewTab":5,"page":33,"title":5,"url":35},"Integrate",{"slug":34,"type":16},"integrate","http:\u002F\u002Fgoogle.fr",{"image":37,"lottie":40,"type":27},{"alt":20,"assetId":38,"caption":5,"crop":5,"height":22,"hotspot":5,"lqip":39,"width":24},"image-442ea594fc28e849a79d248439f25021504e3ed4-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACfElEQVR4nK3UX0hTURwH8LPdOxSdrggUghSrh8gmXQcR9MeHyHwyEFT689RTD1FPPe+pnnqxB8Ey01UY96HAJCWCqIc95Oxuc3\u002FuvWzezDaxrTV1bWz3nPONmUGQf8nfy3n78P19z+EQstUAFrIrA1ja8E48zPsq2uAW3XBb\u002FwOThSMY2ecsDrVK5uA5CQ9bnOjfS+AWd54YsiBhcL+EkV6JDQ1K7NGkyxzqdxafdx9Y9B0iCVQRwErIdmDA4sJAlQue8y54Xkjsceq4OZx3FuSFpsz7t7WzX9yC37xAfPkG8lqv2AIjlnJPLgw4WrnnSisb8Ut0mDXnZdaw4GWO+HzOpuZjYoi+sgbpDaKiicgQNgUJ3NYT\u002FEntKYxePsk9imQO84OZCe7Q5mALFJgQLFEhSJfFGTohhMwO4ltdf+PVAVhkhOx3qLfnFt5MXzRf8qPpD7wmmoL4qQRRKXLRX2KC35y2ztBeEkUNca\u002FevmVdDIA1zXltAiuXpnlSeWpG+PWMCqeagV0pwqaUuF0psjql8LHR\u002F7OrfgHVGyb8AwJwALha4jSQpnnmzX7nd\u002FU02v1ZtCg53h5YojcDKe+9wNfOAV+iCtsAqwF0ABjnlP0oLC2b8dgcHwsa\u002FEFgno\u002FPfGaRcHzqW1jtRihk3xD8CxYANAC4BmAU2WyEzhrLK1GNpiMay0U0SlVtiqpqTyoardkSXENtAOpRwmm6mLrN4sYk0\u002FUk0\u002FQc1\u002FUENO0ZNO0sDKNyW+AaaoWBSiSTjTwW64Kq32eqOgZV70M02olYrE6W5U3e4fpouVcBhrGnGIkcQzh8BuFwM+JxB3aK\u002FZP2d7flKsrn7nxp24F+AWDE1D2IfDaeAAAAAElFTkSuQmCC",{"url":41},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002Fc699ba1aa0682709d7c6e535d53be7084f6929d9.json",{"icon":43,"link":45,"media":49},{"isCustom":10,"raw":44},"\u003Csvg width=\"143\" height=\"137\" viewBox=\"0 0 143 137\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Ccircle cx=\"12.6266\" cy=\"12.6266\" r=\"12.6266\" transform=\"matrix(-1 -8.74228e-08 -8.74228e-08 1 142.12 110.995)\" fill=\"white\"\u002F>\n\u003Ccircle cx=\"12.6266\" cy=\"12.6266\" r=\"12.6266\" transform=\"matrix(-1 -8.74228e-08 -8.74228e-08 1 25.2534 0)\" fill=\"white\"\u002F>\n\u003Ccircle cx=\"12.6266\" cy=\"12.6266\" r=\"12.6266\" transform=\"matrix(-1 -8.74228e-08 -8.74228e-08 1 25.2534 110.995)\" fill=\"white\"\u002F>\n\u003Ccircle cx=\"12.6266\" cy=\"12.6266\" r=\"12.6266\" transform=\"matrix(-1 -8.74228e-08 -8.74228e-08 1 142.12 0)\" fill=\"white\"\u002F>\n\u003Ccircle cx=\"70.7652\" cy=\"68.419\" r=\"38.4672\" transform=\"rotate(-180 70.7652 68.419)\" fill=\"#00CCFF\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":5,"getParameters":5,"isInternal":10,"label":46,"openInNewTab":5,"page":47,"title":5,"url":35},"Ecosystem",{"slug":48,"type":16},"ecosystem",{"image":50,"lottie":53,"type":27},{"alt":20,"assetId":51,"caption":5,"crop":5,"height":22,"hotspot":5,"lqip":52,"width":24},"image-2251f76bcba98a54dcec09c6e948c96105491ec5-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAADJ0lEQVR4nJVU3U9SYRh\u002FEXAmGlAiGhiMDFTOOZyPBgytLppfa13k1uZFWxf9Id607tq66IYsjA+N0dZcaza6OZUrszCZEuYSSERRKwhxJODxaYfV1srTx297tuf9Pe9+7\u002Fs8z\u002Fs+CAkBkAgBiH7nYX\u002F+j4ChqtPASjogUI0gIObXvF2AgJjn+FiF+xcw4JTiMKq0wB2Nde+mlgFnc8f2jSYbDKt5n+couHXEAiMKJuSU\u002FuVmrITcCqiIogcji7ctFAwTZMnpsJSdPUx5uJveu2lnwInzsfbiHbNxa7ShksH+YiDq2AjUmXLjpra8H2sv+HQ4eE3m0kgnWR7uJsuubrLkchA7bqPp6129MT9GtOXuGwkIyvavKYAI\u002FzKpNORZrPXLxDFD4cFRc9FvwUteO1W6dYoG10m8NGLHivcIfeGhTp97ZDLkg5guyyrQUKWev4gCiPig9vNzTJd9QrVuj1Pmkr+T3B25THHu6zR4rjG77kvmwl1H6\u002FYE1fKRPcHvNWRCckFBdToo06zPEJrNyX59LmijyqPnGPAGaM6TojlPkuE8XurrWF\u002Frp8d2zdpkvzr9HNMmXxwQTBkl2BpVappsWpsZ0KafWinwDzLge0lz7iLNeXYozv2MLo+d16ZfW5tWXg2o09NmFIlUCzZFnQ7LVPE3FlVyofdQ\u002FK2tbWf8LLPn8zGcN8GAd4nmvK627Qc99fFFmyoR7lMnw1jzaqhW8IbybELRGFvAFfG4pTaSIlWpeQdWuH+R4rxXac53xVwYH2xcidprF1Ok\u002FMN7Wp2MYspMTLiG8uVlpTKZxuTL64aa+VSLbC5DHFqM21pWp7qaV6e6DsaSVtlCBq+JZY7Wx1Mm5VISkycSwl1GkY26+timURb9jKGZjA6FwSgJFbrE4XIvb5LZQieazhnRbFbPH1a\u002FtHkchcMC75AHy0rQu60G6WzejOaKBAoBjkIlO5opn6kY708VCT5WPb\u002FTjqK5wwhA4Kf8QAikaDarQCFoRi9Ag8LQiN6AqmJToK5wEWhCMZAjAMmfxX5OnwVJRRygqrIegioUCIi\u002Fc+L\u002FH2FIYO79ZR5+A0EntCzHjHt8AAAAAElFTkSuQmCC",{"url":54},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002Fbffe987c6ddbee89a1359b0d22c0bf2a91b0b597.json",{"icon":56,"link":58,"media":62},{"isCustom":10,"raw":57},"\u003Csvg width=\"150\" height=\"150\" viewBox=\"0 0 150 150\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M136.836 13.1619C128.078 4.40429 113.375 2.06162 95.5823 6.83743C77.9208 11.5782 58.144 23.1638 40.6539 40.6539C23.1638 58.144 11.5782 77.9208 6.83742 95.5823C2.0616 113.375 4.40428 128.078 13.1619 136.836C21.9195 145.594 36.6232 147.936 54.4155 143.16C72.0771 138.42 91.8538 126.834 109.344 109.344L112.463 112.464C76.5889 148.338 30.7334 160.647 10.0423 139.956C-10.6488 119.264 1.65979 73.4089 37.5343 37.5343C73.4088 1.65977 119.264 -10.6488 139.955 10.0423C160.647 30.7335 148.338 76.5889 112.463 112.464L109.344 109.344C126.834 91.8538 138.42 72.0771 143.16 54.4155C147.936 36.6232 145.594 21.9195 136.836 13.1619Z\" fill=\"url(#paint0_linear_3771_9698)\"\u002F>\n\u003Cpath d=\"M13.1722 13.1638C21.9298 4.40624 36.6335 2.06357 54.4258 6.83938C72.0873 11.5802 91.8641 23.1658 109.354 40.6558C126.844 58.1459 138.43 77.9227 143.171 95.5843C147.946 113.377 145.604 128.08 136.846 136.838C128.089 145.596 113.385 147.938 95.5926 143.162C77.931 138.422 58.1543 126.836 40.6642 109.346L37.5446 112.465C73.4192 148.34 119.275 160.649 139.966 139.957C160.657 119.266 148.348 73.4108 112.474 37.5363C76.5992 1.66172 30.7438 -10.6468 10.0526 10.0443C-10.6386 30.7354 1.67003 76.5909 37.5446 112.465L40.6642 109.346C23.1741 91.8558 11.5885 72.079 6.84771 54.4175C2.07189 36.6252 4.41454 21.9215 13.1722 13.1638Z\" fill=\"url(#paint1_linear_3771_9698)\"\u002F>\n\u003Cpath d=\"M105.739 74.8666C105.739 91.9223 91.913 105.749 74.8573 105.749C57.8015 105.749 43.9751 91.9223 43.9751 74.8666C43.9751 57.8108 57.8015 43.9844 74.8573 43.9844C91.913 43.9844 105.739 57.8108 105.739 74.8666Z\" fill=\"white\"\u002F>\n\u003Cdefs>\n\u003ClinearGradient id=\"paint0_linear_3771_9698\" x1=\"128.772\" y1=\"24.0563\" x2=\"18.396\" y2=\"120.989\" gradientUnits=\"userSpaceOnUse\">\n\u003Cstop stop-color=\"#33FF99\"\u002F>\n\u003Cstop offset=\"1\" stop-color=\"#00CCFF\"\u002F>\n\u003C\u002FlinearGradient>\n\u003ClinearGradient id=\"paint1_linear_3771_9698\" x1=\"128.782\" y1=\"24.0582\" x2=\"18.4062\" y2=\"120.991\" gradientUnits=\"userSpaceOnUse\">\n\u003Cstop stop-color=\"#33FF99\"\u002F>\n\u003Cstop offset=\"1\" stop-color=\"#00CCFF\"\u002F>\n\u003C\u002FlinearGradient>\n\u003C\u002Fdefs>\n\u003C\u002Fsvg>\n",{"anchor":5,"getParameters":5,"isInternal":10,"label":59,"openInNewTab":5,"page":60,"title":5},"Community",{"slug":61,"type":16},"community",{"image":63,"lottie":66,"type":27},{"alt":20,"assetId":64,"caption":5,"crop":5,"height":22,"hotspot":5,"lqip":65,"width":24},"image-836dbd9c989ab6f984060eaaef0abb1dd7068e0a-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACT0lEQVR4nK2UzUtUURjGz9zrtzELEbMZrZEyxCQbL7kJ7BtcRFIwikVkBmKtXbUZbCFK9AcIomaL4EJUNklqdglqlxohBLOpTQQy6WROeueO5xdHRw0aZwx64IHDy+H3vNz3PVeIFAJc4n8JcAWDaEKkg+IS6k6mYMsi780zKsaf2zXWKMWmia4C1jveti7eUSI+2DVi+tcBEZa5KRNVVxNP8UyG4h2vQnbPeCjeoAIATTmY9N5xCvVp56w+a\u002Fdos3ab+MjeFJ1uAydG452TIbt3KhRvmJtjD1AE+FbAF4WixrB06zPOOX3G7tVm7Rs7ADdkmuRPja0cfPnYrp1+iweoBFqBu8oJaJ2HyvqwLMuesWvFJ3zCIi\u002FTUDTLIgvwAreB11LKL8rqDHTGYniDFlnqE4hMSg5BAeuBR0BUSplQVudk7Xjyjmu3wBzgDDABrP4BXE3WTgHZ\u002FwC0VLoBjEgpFzaBUsrvwAPADxsrJTIDAzp0qPRSoF1KOQaElddYewG0LbNc2sH7bIGpp4d9vVDAj5bDRK8YxO54YcWH4zQBXQkSXQ7OxW8sVjTxpLyOYcPPyKEy7uen6Eq4IKgRCXiJttziZ0ufXGo9CfcKpZRuwBMj5onIiPtq5KHbYPB8HcN9xxJDN6sZKv1rD7eA85f2sRhoZ7G5m6XmE3y+nrde33otQc2gv8BwBk771wa7\u002FYmBa0cZKdlxsaVszGUhsJ+ly1VEA0UbMBW2+Z6FK4CpG\u002FQXGwxVHWGwvBozJ8NQFECsg9Jc2v5Z7EZpYRn0GxIhDrvY9lKtAAAAAElFTkSuQmCC",{"url":67},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002Ff49b9fa081e7bf97fdfcd6f8e85660c34fd33150.json",{"icon":69,"link":71,"media":75},{"isCustom":10,"raw":70},"\u003Csvg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Ccircle cx=\"24\" cy=\"24\" r=\"24\" fill=\"url(#paint0_linear_3843_66150)\"\u002F>\n\u003Cpath d=\"M8.63989 42.3996L33.2353 31.5813L25.4492 23.3346L8.63989 42.3996ZM17.6752 15.1005L25.4613 23.3346L39.3599 5.59961L17.6752 15.1005Z\" fill=\"white\"\u002F>\n\u003Cdefs>\n\u003ClinearGradient id=\"paint0_linear_3843_66150\" x1=\"48\" y1=\"24.0368\" x2=\"-1.71443e-07\" y2=\"24.0368\" gradientUnits=\"userSpaceOnUse\">\n\u003Cstop stop-color=\"#33FF99\"\u002F>\n\u003Cstop offset=\"1\" stop-color=\"#00CCFF\"\u002F>\n\u003C\u002FlinearGradient>\n\u003C\u002Fdefs>\n\u003C\u002Fsvg>\n",{"anchor":5,"getParameters":5,"isInternal":10,"label":72,"openInNewTab":5,"page":73,"title":5,"url":35},"$RUNE",{"slug":74,"type":16},"rune",{"image":76,"lottie":79,"type":27},{"alt":20,"assetId":77,"caption":5,"crop":5,"height":22,"hotspot":5,"lqip":78,"width":24},"image-7d03dcb9e362797128e360b59ec0cc0cb5032643-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACcUlEQVR4nJ1UXUhUQRi9u5lE6VNIUCRFYSWy3plZW6hoswJJ7I8QggjyoXyxh4gIitqe86EezFB378ysWrFJvyCClCWYEEXPEdGjIBWUkdrONydmExHczZ8DH\u002Ffhzj3zfeec73reUgAvtKTz8wCEAIS82UqEc89lAZkV25AsFb91OZvq2iEgt0cRbKxEpsS9WxJXIzLFkcnOzT70UW7kdQHdzki2M6OvRpBqENDllcgUL4pMoGNlDXQFs+oCIzXISX9hpMc5pcd3UvfnqFEDwsjzAmqLO+sVHtELJZAIV6FrHbf6LLd6hJH8xY2k3dRNDdRHx+mx2Uf3JgSpYW7kGf9nquyfxvnMAkJxJIo4lOBWd3OrvjMKaI\u002FRtpn6bSuN2otm0B6g+8RJfeVQSX86Vd1YUE8gJNCxOgp1hJN8wyjI+pRELfXgmn2Nu\u002FY9mug5YiStb4I\u002FnOQrP5s6FIdcNd\u002F5mXF34UkpQ\u002FokJ\u002FWBmZR1hPupF1doCDftKI5RHxilrOuck3zLIE\u002FE0VaSP0ozHTIEhxnJEZ+CbIwUTtPTXHd37Ds00iMIChzhtCD5kkPX5e9wpksPiaIINGPQkpP65vRqMQP2Bg3bc9Rva02P5SSJw7muOqJIV+XCXshld5OPVBmDahKkh\u002FdS70Q9PTQH6QHFSLsxDSP1g5F+wa08VQO9dsHNcdlik11bGYIWQbpfkP7EkB5jpMc40h85qWfMBM0xyE1xDBV5i4HbArdmPoJ6ZoLLgvRtRuoWN\u002FoSzwZ11VAb\u002Fh9qL58ECFeircR9XIPOishUZwVDcn0ErWsK67YwaS5Oc2v5f5tZUmfWnFoAfwHy1auqFdA+IAAAAABJRU5ErkJggg==",{"url":80},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002Fd12cfbb5e858bd1fdf6e05856b035b3410af7a5c.json",{"icon":82,"link":84,"media":88},{"isCustom":10,"raw":83},"\u003Csvg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Ccircle cx=\"24\" cy=\"24\" r=\"24\" fill=\"#00CCFF\"\u002F>\n\u003Cpath d=\"M8.63989 42.3996L33.2353 31.5813L25.4492 23.3346L8.63989 42.3996ZM17.6752 15.1005L25.4613 23.3346L39.3599 5.59961L17.6752 15.1005Z\" fill=\"white\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":5,"getParameters":5,"isInternal":10,"label":85,"openInNewTab":5,"page":86,"title":5,"url":35},"$TCY",{"slug":87,"type":16},"tcy",{"image":89,"lottie":92,"type":27},{"alt":20,"assetId":90,"caption":5,"crop":5,"height":22,"hotspot":5,"lqip":91,"width":24},"image-df576c744b36236856b41bda8a36721818c34d73-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACYklEQVR4nL1USWsUURCudHVPXBKFEJcEYxQJhoCKIt48eBEMBlxAL4KoiIgXRQKCh4D+BD0pgiB48O5BDy5oNMg46e73embMgokEQiAEIctkXtXrkhcH3CYx5mBBnR71VX3fV\u002FUA\u002FmuI1FTNFYIhDKTrIJFWyM13LKSWrVCQengi+G9gA2ktqNIOVHQSI7qFMd3HmO752vRgTMegr7QdtGSWB6YlA\u002FF8u6e429P8AhMeRc2TgebJNXn+vCqxz\u002F2Ir0EibZCVYCmONdAjHmSlyVN8GbXtQ8WztTFxoyLbUSC7u2jshjzPBIm89RRfgN7pjd81raare3AdtRxAZR+j4q8Ykm2IyumRQZN2j3F6etikzZqsr3gKFT0MwvLeip6LAI7LWsynJ1DZPgwNY85Ic2zk\u002FAjJ7XErhwZI6kKTYmgIY3qDIR2FL7K6ivMVusOy3ivKGVQcoSvMGWlRRs6NkFwfY9lVMBL0lx2gxdB89BI5teC6q\u002F2DtusSugnpOCp+jxFRXWjk4Cc3HUvPOMu+gpFa1ygyBhW\u002Fxlg64V3VCSuAL8X3Y9mP2j5CbaeatEm7hkx6aZTSw4Mm3RyX0yAii4onUdMDUOU9S+xkhXYsmzzNFwNtexsSnmkrMrcmZOuVsX5MjBFNo+ZXnuazUJTGynRLXI9zOidtfmSuZjQ\u002Fy+R5OEh4AhOe8BIe8hQ\u002F9SJzBbKlHX\u002FZw9+Wu7+0DRV1+crcRGXvorJ3PM03MKZOUHMtoPUyLwUq4bTRUgcf5logO98OkeyEaHaLMw7EubqScPo4XX\u002FOFf82P1Arp7XYif0a3wBb6qnvxaS6lwAAAABJRU5ErkJggg==",{"url":93},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002F5f05576aa4c091df234a605d02cc0d364dda67ae.json",{"icon":95,"link":97,"media":101},{"isCustom":10,"raw":96},"\u003Csvg width=\"171\" height=\"171\" viewBox=\"0 0 171 171\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Crect width=\"171\" height=\"170.045\" rx=\"2\" fill=\"white\"\u002F>\n\u003Crect x=\"14\" y=\"14\" width=\"142.341\" height=\"66.3939\" rx=\"4\" fill=\"#33FF99\"\u002F>\n\u003Crect x=\"14\" y=\"99\" width=\"66.3939\" height=\"9.55307\" rx=\"2\" fill=\"#E0E0E0\"\u002F>\n\u003Crect x=\"14\" y=\"118.106\" width=\"66.3939\" height=\"9.55307\" rx=\"2\" fill=\"#E0E0E0\"\u002F>\n\u003Crect x=\"14\" y=\"136.734\" width=\"66.3939\" height=\"9.55307\" rx=\"2\" fill=\"#E0E0E0\"\u002F>\n\u003Crect x=\"89.9473\" y=\"89.9463\" width=\"66.3939\" height=\"66.3939\" rx=\"4\" fill=\"#E0E0E0\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":5,"getParameters":5,"isInternal":10,"label":98,"openInNewTab":5,"page":99,"title":5,"url":35},"Blog",{"slug":100,"type":16},"blog",{"image":102,"lottie":105,"type":27},{"alt":20,"assetId":103,"caption":5,"crop":5,"height":22,"hotspot":5,"lqip":104,"width":24},"image-60b273ef3f61fb210391ace13ae24fd54315e903-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACwUlEQVR4nJWUS2gTQRjHE6nWRvAqouihEVQoqDfbXsRLhYIPEFG0B08KPhAUtAfNSWjQnmvbYMGbxbRQlGIpaStt7ANqH+kjkSbZdjeJO9ndZLPZ7Lw+2ZqAtGmqAz\u002F+zAzzY2aYbxyOLQ0AnACwpwJOx782+CPbCwA1AOAqQ01xfncpADhFANdYIXb6Iyw2dZOZK50wffkd+b6Zdt8eH+HRUyKIrsq7BXC+AtgzC8KRHjr74CkMfW6B\u002FuBt+DRxh\u002Fk3swX6gs\u002FY8JcPdO5xKLN+AiF0MBqN7i8vLQqHIV77lgXbbrC+jUboIfXgIw3cR+1shPfkJu1HnZkfffMR7eHPJeOqIOh1xatw7ih8zca9zaxXPAdd7Ax0sLPQwUtcK\u002FTiLmElEZwyF+en8WA4bNyLxX4d3n78ojBgRtxv2KT3OveLjdDDzkM3rwcf2DRwH9zK+8G3GuEjIxabGSfx0ILpWVtTjm8Tlp7Koim4B1jE284mxVY2zJ7Tr\u002FwFGwKbVjYE7fkgDKxKbDSA6dQ3GgstWJ61UAWhZmruJNO9UaqKKyTFlnCSL5MUlFjNI5gP5\u002FjEKGYzEyS+HNpFCAC1hBAvpVQkhFDLsjjGGEqYJgZx3eShhTyLLFvx9bjpkdZ2ETLG2hhjG7YQY8z+FhYKFqiKzpNJjSkoF1dV3aNIFYSGYRzFGD+ilA4SQuYsy0pYloULhQK3MU2TZzJZpmkaNQwjpuuGR5Kk7cKSNJFIHNB1vY4Q0owxvp\u002FP5\u002FsNw0jruo6z2SzOZDJEURSsqirW9Vw0l8u9VBTl2I5VU9zpPlusaZobIfREVdUBhNAYQmjURpZlO8cURfEjhO4mk8lDFcuwKHWKouiSZfmkLMsX0+l0UyqVaiqlJEmXZFm+IAiC2y6\u002F8vVcXlzFOa+2F20lHA5XBwKBKofD8d\u002Ff2Y5\u002FYznZb5MYH+0zomWxAAAAAElFTkSuQmCC",{"url":106},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002F9f4f2678daa0ced5ddeb857c80aba99cdc2327df.json",{"icon":108,"link":110,"media":114},{"isCustom":10,"raw":109},"\u003Csvg width=\"219\" height=\"150\" viewBox=\"0 0 219 150\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M218.878 75C195.267 116.421 154.167 150 109.439 150C64.7096 150 23.6107 116.421 0 75C23.6107 33.5786 64.7096 0 109.439 0C154.167 0 195.267 33.5786 218.878 75Z\" fill=\"white\"\u002F>\n\u003Ccircle cx=\"109.439\" cy=\"74.9988\" r=\"62.0301\" fill=\"#00CCFF\"\u002F>\n\u003Ccircle cx=\"110.03\" cy=\"74.4075\" r=\"27.1751\" fill=\"black\"\u002F>\n\u003C\u002Fsvg>\n",{"anchor":5,"getParameters":5,"isInternal":10,"label":111,"openInNewTab":5,"page":112,"title":5},"Vision",{"slug":113,"type":16},"vision",{"image":115,"lottie":118,"type":27},{"alt":20,"assetId":116,"caption":5,"crop":5,"height":22,"hotspot":5,"lqip":117,"width":24},"image-b942f780208164574bc627717b8ba767769679c8-249x217-png","data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAARCAYAAADdRIy+AAAACXBIWXMAAAsTAAALEwEAmpwYAAACW0lEQVR4nK2Uz0tUURTHdaKiH0RUFLUJiqJdBEG7FrUogiRq06a\u002FINpE4NYgMGjZIttEi2qhRAS1yGlGR0cdxSxGndExmxlnlPnhqM004\u002FjuPfcT7\u002FkYBrI068KXd+Cd+73fc8733oaGdRbQuFa8qQU0Ah73W4s3S7QF2A0cAY65OAzscv9tjJhVFTbRKeCaZXGvXOJhuUSrVeUucBU46eZ41iOzTz4IXFIrPFoq0J1OEJuKkP4aJTUTl9hCAb9StAIXgQP2nj+R2SXdtCw68llJjn1R1YHAivT5Sw5CgaqMh\u002FXyfE7iSvESuOEK8KzVs\u002F12gghvS0WZj44q3fOxYvp8cRMOdZtwqMv0+76ZoL8ik+NaFb9LVoQOpWgC9tZ6agfGmO3AOeCZ1mRyGa2Hgsr0eLPERt6wONPMYqqZ2OfX9HozDPcrM58TpbWZFaENOANsdUjrhtAEpktrU8nMigwENH2+GVLRNqz8LQep6BP6fUkGexXZORGtKQOdwGVgh1O6W+424CzwVCnm8llRjsLOPNHh9xTiLRQSLUQ\u002FvaOnM1enkBTwGDhdU1jXQ7sPTXZffhTJTI4pFfRVJehNm5HgkAM7DvqrEotoq1SUORFe2eqMMXt+8WV7+6pljDHXlTIvCnmZjoR1JRSwJOhfdjDYq\u002FTEqC4X8jJlWfLcHcj+3\u002FrRtY6dcEEpHiwV8KYTRKcnSE7HTGI2KZHFBfkgihbgPLBvI+b2uNfrBHDFsrizXOa+DW1x2x3AcWDn31y\u002FRletTXwIOOrCNrEzzX95JOzN9fgvT1gN6234Cega0QKe7QqpAAAAAElFTkSuQmCC",{"url":119},"https:\u002F\u002Fcdn.sanity.io\u002Ffiles\u002F355nlzcp\u002Fproduction\u002F10605a7dc834718366393857d9c7dc4b3459fd63.json",[121,140,182,209,230,251,266,281],{"children":122,"label":139},[123,125,127,129,131,133,135,137],{"anchor":5,"getParameters":5,"isInternal":10,"label":13,"openInNewTab":5,"page":124,"title":5},{"slug":15,"type":16},{"anchor":5,"getParameters":5,"isInternal":10,"label":32,"openInNewTab":5,"page":126,"title":5},{"slug":34,"type":16},{"anchor":5,"getParameters":5,"isInternal":10,"label":46,"openInNewTab":5,"page":128,"title":5},{"slug":48,"type":16},{"anchor":5,"getParameters":5,"isInternal":10,"label":59,"openInNewTab":5,"page":130,"title":5},{"slug":61,"type":16},{"anchor":5,"getParameters":5,"isInternal":10,"label":72,"openInNewTab":5,"page":132,"title":5},{"slug":74,"type":16},{"anchor":5,"getParameters":5,"isInternal":10,"label":85,"openInNewTab":5,"page":134,"title":5},{"slug":87,"type":16},{"anchor":5,"getParameters":5,"isInternal":10,"label":98,"openInNewTab":5,"page":136,"title":5},{"slug":100,"type":16},{"anchor":5,"getParameters":5,"isInternal":10,"label":111,"openInNewTab":5,"page":138,"title":5},{"slug":113,"type":16},"Menu",{"children":141,"label":181},[142,146,150,154,158,162,166,170,173,177],{"anchor":5,"getParameters":5,"isInternal":10,"label":143,"openInNewTab":5,"page":144,"title":5},"FAQ",{"slug":145,"type":16},"faq",{"anchor":5,"getParameters":5,"isInternal":10,"label":147,"openInNewTab":5,"page":148,"title":5},"Contributors",{"slug":149,"type":16},"contributors",{"anchor":5,"getParameters":5,"isInternal":10,"label":151,"openInNewTab":5,"page":152,"title":5},"Pro Trader",{"slug":153,"type":16},"pro-trader",{"anchor":5,"getParameters":5,"isInternal":10,"label":155,"openInNewTab":5,"page":156,"title":5},"Node Operator",{"slug":157,"type":16},"node-operator",{"anchor":5,"getParameters":5,"isInternal":10,"label":159,"openInNewTab":5,"page":160,"title":5},"Bond $RUNE",{"slug":161,"type":16},"bond-rune",{"anchor":5,"getParameters":5,"isInternal":163,"label":164,"openInNewTab":5,"title":5,"url":165},false,"Whitepaper","https:\u002F\u002Fdocs.thorchain.org\u002F",{"anchor":5,"getParameters":5,"isInternal":10,"label":167,"openInNewTab":5,"page":168,"title":5,"url":165},"Brand Assets",{"slug":169,"type":16},"brand-assets",{"anchor":5,"getParameters":5,"isInternal":163,"label":171,"openInNewTab":5,"title":5,"url":172},"Audits","https:\u002F\u002Fgithub.com\u002Fthorchain\u002FResources\u002Ftree\u002Fmaster\u002FAudits",{"anchor":5,"getParameters":5,"isInternal":10,"label":174,"openInNewTab":5,"page":175,"title":5},"Privacy Policy",{"slug":176,"type":16},"privacy-policy",{"anchor":5,"getParameters":5,"isInternal":10,"label":178,"openInNewTab":5,"page":179,"title":5},"Terms of Use",{"slug":180,"type":16},"terms-of-use","THORChain",{"children":183,"label":208},[184,188,192,195,198,202,205],{"anchor":5,"getParameters":5,"isInternal":163,"label":185,"openInNewTab":5,"page":186,"title":5,"url":187},"THORChain Explorer",{"slug":74,"type":16},"https:\u002F\u002Fthorchain.net\u002Fdashboard",{"anchor":5,"getParameters":5,"isInternal":163,"label":189,"openInNewTab":5,"page":190,"title":5,"url":191},"RUNEScan",{"slug":169,"type":16},"https:\u002F\u002Frunescan.io\u002Ffr",{"anchor":5,"getParameters":5,"isInternal":163,"label":193,"openInNewTab":5,"title":5,"url":194},"Viewblock","https:\u002F\u002Fviewblock.io\u002Fthorchain",{"anchor":5,"getParameters":5,"isInternal":163,"label":196,"openInNewTab":5,"title":5,"url":197},"THORNodes","https:\u002F\u002Fthornode.network\u002F",{"anchor":5,"getParameters":5,"isInternal":163,"label":199,"openInNewTab":5,"theme":200,"title":5,"url":201},"THORChain Network","default","https:\u002F\u002Fthorchain.network\u002Fnodes",{"anchor":5,"getParameters":5,"isInternal":163,"label":203,"openInNewTab":5,"title":5,"url":204},"RUNE Tools","https:\u002F\u002Frune.tools\u002F",{"anchor":5,"getParameters":5,"isInternal":163,"label":206,"openInNewTab":5,"title":5,"url":207},"XScanner","https:\u002F\u002Fxscanner.org\u002F","Explorers",{"children":210,"label":229},[211,214,217,220,223,226],{"anchor":5,"getParameters":5,"isInternal":163,"label":212,"openInNewTab":5,"title":5,"url":213},"Messari","https:\u002F\u002Fmessari.io\u002Fdashboards\u002Fthorchain",{"anchor":5,"getParameters":5,"isInternal":163,"label":215,"openInNewTab":5,"title":5,"url":216},"Dune","https:\u002F\u002Fdune.com\u002Fthorchain\u002Fthorchain-overview",{"anchor":5,"getParameters":5,"isInternal":163,"label":218,"openInNewTab":5,"title":5,"url":219},"Raynalytics","https:\u002F\u002Fraynalytics.net\u002F",{"anchor":5,"getParameters":5,"isInternal":163,"label":221,"openInNewTab":5,"title":5,"url":222},"THORCharts","https:\u002F\u002Fthorcharts.org\u002F",{"anchor":5,"getParameters":5,"isInternal":163,"label":224,"openInNewTab":5,"title":5,"url":225},"Snowflake","https:\u002F\u002Fapp.snowflake.com\u002Fmarketplace\u002Flisting\u002FGZT0ZJKG5R1\u002Fflipside-crypto-thorchain-premium-onchain-data",{"anchor":5,"getParameters":5,"isInternal":163,"label":227,"openInNewTab":5,"title":5,"url":228},"GrassRoots Crypto","https:\u002F\u002Fwww.youtube.com\u002F@GrassRootsCrypto","Research",{"children":231,"label":250},[232,235,238,241,244,247],{"anchor":5,"getParameters":5,"isInternal":163,"label":233,"openInNewTab":5,"title":5,"url":234},"Rujira","https:\u002F\u002Frujira.network\u002F",{"anchor":5,"getParameters":5,"isInternal":163,"label":236,"openInNewTab":5,"title":5,"url":237},"Maya Protocol","https:\u002F\u002Fwww.mayaprotocol.com\u002F",{"anchor":5,"getParameters":5,"isInternal":163,"label":239,"openInNewTab":5,"title":5,"url":240},"Liquify","https:\u002F\u002Fwww.liquify.com\u002F",{"anchor":5,"getParameters":5,"isInternal":163,"label":242,"openInNewTab":5,"title":5,"url":243},"Berserk Marketing","https:\u002F\u002Fberserkmarketingltd.com\u002F",{"anchor":5,"getParameters":5,"isInternal":163,"label":245,"openInNewTab":5,"title":5,"url":246},"Soda Labs","https:\u002F\u002Fsodalabs.xyz\u002F",{"anchor":5,"getParameters":5,"isInternal":163,"label":248,"openInNewTab":5,"title":5,"url":249},"Hypernative","https:\u002F\u002Fwww.hypernative.io\u002F","Partners",{"children":252,"label":265},[253,256,259,262],{"anchor":5,"getParameters":5,"isInternal":163,"label":254,"openInNewTab":5,"title":5,"url":255},"GitLab","https:\u002F\u002Fgitlab.com\u002Fthorchain",{"anchor":5,"getParameters":5,"isInternal":163,"label":257,"openInNewTab":5,"title":5,"url":258},"Dev Docs","https:\u002F\u002Fdev.thorchain.org\u002F",{"anchor":5,"getParameters":5,"isInternal":163,"label":260,"openInNewTab":5,"title":5,"url":261},"Ecosystem Guide","https:\u002F\u002Ftcecosystem.guide\u002Findex.html",{"anchor":5,"getParameters":5,"isInternal":163,"label":263,"openInNewTab":5,"title":5,"url":264},"Bug Bounty","https:\u002F\u002Fgitlab.com\u002Fthorchain\u002Fthornode\u002F-\u002Fblob\u002Fdevelop\u002Fbugbounty.md","Developers",{"children":267,"label":280},[268,271,274,277],{"anchor":5,"getParameters":5,"isInternal":163,"label":269,"openInNewTab":5,"title":5,"url":270},"THOR InfoBot","https:\u002F\u002Fx.com\u002FTHOR_InfoBot",{"anchor":5,"getParameters":5,"isInternal":163,"label":272,"openInNewTab":5,"title":5,"url":273},"THORChain Infobot","https:\u002F\u002Ft.me\u002Fthor_infobot",{"anchor":5,"getParameters":5,"isInternal":163,"label":275,"openInNewTab":5,"title":5,"url":276},"THORChain Alerts","https:\u002F\u002Ft.me\u002Fthorchain_alert",{"anchor":5,"getParameters":5,"isInternal":163,"label":278,"openInNewTab":5,"title":5,"url":279},"THORChain DEV","https:\u002F\u002Ft.me\u002Fthorchain_dev","Notifications",{"children":282,"label":298},[283,286,289,292,295],{"anchor":5,"getParameters":5,"isInternal":163,"label":284,"openInNewTab":5,"theme":200,"title":5,"url":285},"Midgard","https:\u002F\u002Fgateway.liquify.com\u002Fchain\u002Fthorchain_midgard\u002Fv2\u002Fdoc",{"anchor":5,"getParameters":5,"isInternal":163,"label":287,"openInNewTab":5,"theme":200,"title":5,"url":288},"THORNode","https:\u002F\u002Fgateway.liquify.com\u002Fchain\u002Fthorchain_api\u002Fthorchain\u002Fdoc",{"anchor":5,"getParameters":5,"isInternal":163,"label":290,"openInNewTab":5,"theme":200,"title":5,"url":291},"THORNode - Liquify","https:\u002F\u002Fapiv2.liquify.com\u002Fthor\u002Fapi\u002Fdocs",{"anchor":5,"getParameters":5,"isInternal":163,"label":293,"openInNewTab":5,"theme":200,"title":5,"url":294},"DEX Integration","https:\u002F\u002Fapi-thor.liquify.com\u002Fdocs#\u002F",{"anchor":5,"getParameters":5,"isInternal":163,"label":296,"openInNewTab":5,"theme":200,"title":5,"url":297},"RPC","https:\u002F\u002Fgateway.liquify.com\u002Fchain\u002Fthorchain_rpc","API","Error, try again later","Subscribe to THORChain's Weekly Newsletter","Enter your email","Sign Up","Subscribed",[305,313,321,329,337,345,353,361,368,375,382,389],{"_key":306,"icon":307,"link":310},"2eb184d055a2",{"icon":308,"isCustom":10,"raw":309},"x","\u003Csvg width=\"20\" height=\"19\" viewBox=\"0 0 20 19\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M15.8014 0H18.867L12.136 8.06273L20 19H13.8287L8.997 12.3535L3.46551 19H0.399867L7.53082 10.3764L0 0H6.32456L10.6898 6.07159L15.8014 0ZM14.7284 17.107H16.4279L5.43152 1.82288H3.60546L14.7284 17.107Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":311,"url":312},"X (Twitter)","https:\u002F\u002Fx.com\u002Fthorchain",{"_key":314,"icon":315,"link":318},"b4fd5f2c06d5",{"icon":316,"isCustom":10,"raw":317},"telegram","\u003Csvg width=\"20\" height=\"16\" viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M18.6339 0.0653823L0.520771 6.77709C0.509994 6.78106 0.499547 6.78582 0.48952 6.7913C0.34264 6.87098 -0.682396 7.47134 0.762967 8.00961L0.777811 8.01484L5.09085 9.3491C5.12376 9.35934 5.1586 9.36257 5.19295 9.35856C5.22729 9.35456 5.26031 9.34341 5.28969 9.32591L15.9873 2.93477C16.0135 2.9191 16.0428 2.90855 16.0733 2.90373C16.2221 2.88016 16.6506 2.83602 16.3795 3.16557C16.0729 3.53962 8.76598 9.80957 7.95501 10.5049C7.90825 10.5451 7.87932 10.601 7.87415 10.6609L7.52023 14.7007C7.52019 14.7419 7.53015 14.7825 7.54934 14.8193C7.56853 14.8561 7.59642 14.8881 7.63078 14.9128C7.67955 14.9422 7.73689 14.9559 7.79436 14.9517C7.85182 14.9475 7.90636 14.9258 7.94993 14.8896L10.5125 12.6965C10.553 12.6619 10.6046 12.6416 10.6589 12.6389C10.7131 12.6363 10.7666 12.6515 10.8106 12.682L15.2814 15.7904L15.2959 15.7997C15.4041 15.8637 16.5729 16.5149 16.9104 15.0606L19.9964 1.00913C20.0007 0.964615 20.0425 0.475349 19.6773 0.186203C19.2937 -0.116035 18.7507 0.0365798 18.6691 0.0530383C18.657 0.0562485 18.6453 0.0603764 18.6339 0.0653823Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":319,"url":320},"Telegram","https:\u002F\u002Ft.me\u002Fthorchain_org",{"_key":322,"icon":323,"link":326},"e7ab02eb4513",{"icon":324,"isCustom":10,"raw":325},"discord","\u003Csvg width=\"20\" height=\"15\" viewBox=\"0 0 20 15\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M12.8155 0C12.62 0.343329 12.4445 0.698502 12.285 1.06156C10.7693 0.836619 9.22574 0.836619 7.70605 1.06156C7.55055 0.698502 7.37106 0.343329 7.17559 0C5.75169 0.240729 4.36362 0.662984 3.04741 1.25888C0.438864 5.08286 -0.267107 8.80821 0.0838889 12.4822C1.61154 13.5991 3.32263 14.4515 5.14542 14.996C5.55622 14.4515 5.91921 13.8714 6.23033 13.2676C5.63999 13.0505 5.06962 12.7782 4.52319 12.4625C4.66678 12.3599 4.80637 12.2533 4.942 12.1508C8.14484 13.6424 11.8542 13.6424 15.061 12.1508C15.1966 12.2613 15.3362 12.3678 15.4798 12.4625C14.9334 12.7821 14.363 13.0505 13.7687 13.2715C14.0798 13.8753 14.4428 14.4554 14.8536 15C16.6764 14.4554 18.3875 13.6069 19.9152 12.4901C20.33 8.22809 19.2052 4.53434 16.9436 1.26284C15.6314 0.666932 14.2434 0.244672 12.8195 0.00789131L12.8155 0ZM6.67703 10.221C5.69186 10.221 4.87416 9.33702 4.87416 8.24389C4.87416 7.15077 5.65991 6.26282 6.67302 6.26282C7.68613 6.26282 8.49181 7.15468 8.47589 8.24389C8.45992 9.33305 7.68218 10.221 6.67703 10.221ZM13.322 10.221C12.3329 10.221 11.5232 9.33702 11.5232 8.24389C11.5232 7.15077 12.3089 6.26282 13.322 6.26282C14.3351 6.26282 15.1368 7.15468 15.1208 8.24389C15.1049 9.33305 14.3271 10.221 13.322 10.221Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":327,"url":328},"Discord","https:\u002F\u002Fdiscord.com\u002Finvite\u002Fthorchaindevs",{"_key":330,"icon":331,"link":334},"a78ef65b331f",{"icon":332,"isCustom":10,"raw":333},"gitlab","\u003Csvg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M18.5236 0H1.47639C1.08483 0 0.709301 0.155548 0.432425 0.432425C0.155548 0.709301 0 1.08483 0 1.47639V18.5236C0 18.9152 0.155548 19.2907 0.432425 19.5676C0.709301 19.8445 1.08483 20 1.47639 20H18.5236C18.9152 20 19.2907 19.8445 19.5676 19.5676C19.8445 19.2907 20 18.9152 20 18.5236V1.47639C20 1.08483 19.8445 0.709301 19.5676 0.432425C19.2907 0.155548 18.9152 0 18.5236 0ZM5.96111 17.0375H2.95417V7.48611H5.96111V17.0375ZM4.45556 6.1625C4.11447 6.16058 3.7816 6.05766 3.49895 5.86674C3.21629 5.67582 2.99653 5.40544 2.8674 5.08974C2.73826 4.77404 2.70554 4.42716 2.77336 4.09288C2.84118 3.7586 3.0065 3.4519 3.24846 3.21148C3.49042 2.97107 3.79818 2.80772 4.13289 2.74205C4.4676 2.67638 4.81426 2.71133 5.12913 2.84249C5.44399 2.97365 5.71295 3.19514 5.90205 3.47901C6.09116 3.76288 6.19194 4.09641 6.19167 4.4375C6.19488 4.66586 6.15209 4.89253 6.06584 5.104C5.97959 5.31547 5.85165 5.50742 5.68964 5.66839C5.52763 5.82936 5.33487 5.95607 5.12285 6.04096C4.91083 6.12585 4.68389 6.16718 4.45556 6.1625ZM17.0444 17.0458H14.0389V11.8278C14.0389 10.2889 13.3847 9.81389 12.5403 9.81389C11.6486 9.81389 10.7736 10.4861 10.7736 11.8667V17.0458H7.76667V7.49306H10.6583V8.81667H10.6972C10.9875 8.22917 12.0042 7.225 13.5556 7.225C15.2333 7.225 17.0458 8.22083 17.0458 11.1375L17.0444 17.0458Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":335,"url":336},"LinkedIn","https:\u002F\u002Flinkedin.com\u002Fcompany\u002Fthorchain",{"_key":338,"icon":339,"link":342},"fcd9d1276a23",{"icon":340,"isCustom":10,"raw":341},"youtube","\u003Csvg width=\"20\" height=\"14\" viewBox=\"0 0 20 14\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M19.8008 3.02083C19.8008 3.02083 19.6055 1.64843 19.0039 1.04582C18.2422 0.252708 17.3906 0.24882 17 0.202166C14.2031 -1.12332e-07 10.0039 0 10.0039 0H9.99609C9.99609 0 5.79687 -1.12332e-07 3 0.202166C2.60938 0.24882 1.75781 0.252708 0.996094 1.04582C0.394531 1.64843 0.203125 3.02083 0.203125 3.02083C0.203125 3.02083 0 4.63427 0 6.24382V7.75229C0 9.36184 0.199219 10.9753 0.199219 10.9753C0.199219 10.9753 0.394531 12.3477 0.992187 12.9503C1.75391 13.7434 2.75391 13.7162 3.19922 13.8017C4.80078 13.9533 10 14 10 14C10 14 14.2031 13.9922 17 13.7939C17.3906 13.7473 18.2422 13.7434 19.0039 12.9503C19.6055 12.3477 19.8008 10.9753 19.8008 10.9753C19.8008 10.9753 20 9.36573 20 7.75229V6.24382C20 4.63427 19.8008 3.02083 19.8008 3.02083ZM7.93359 9.58345V3.98889L13.3359 6.79589L7.93359 9.58345Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":343,"url":344},"YouTube","https:\u002F\u002Fwww.youtube.com\u002F@THORChainCommunity",{"_key":346,"icon":347,"link":350},"c6aeacc6ad97",{"icon":348,"isCustom":10,"raw":349},"reddit","\u003Csvg width=\"20\" height=\"17\" viewBox=\"0 0 20 17\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M12.5427 2.48901C12.7594 3.3816 13.5842 4.04654 14.5691 4.04654C15.7189 4.04654 16.6511 3.14067 16.6511 2.02327C16.6511 0.90587 15.7189 0 14.5691 0C13.5637 0 12.7252 0.692445 12.53 1.61349C10.8463 1.78897 9.53148 3.17671 9.53148 4.8585C9.53148 4.86229 9.53148 4.86514 9.53148 4.86893C7.70034 4.94387 6.02831 5.4504 4.70083 6.25003C4.20791 5.87914 3.58907 5.65813 2.91752 5.65813C1.306 5.65813 0 6.9273 0 8.49336C0 9.62973 0.687164 10.6086 1.67984 11.0611C1.77648 14.3526 5.46706 17 10.0068 17C14.5466 17 18.2421 14.3497 18.3338 11.0554C19.3187 10.6001 20 9.62404 20 8.49431C20 6.92825 18.694 5.65908 17.0825 5.65908C16.4139 5.65908 15.798 5.8782 15.306 6.24623C13.9668 5.44091 12.2762 4.93438 10.4265 4.86704C10.4265 4.86419 10.4265 4.86229 10.4265 4.85945C10.4265 3.65478 11.348 2.65501 12.5427 2.49091V2.48901ZM4.5837 10.2928C4.6325 9.26454 5.33529 8.47534 6.15227 8.47534C6.96925 8.47534 7.59395 9.30912 7.54514 10.3374C7.49634 11.3656 6.88629 11.7393 6.06833 11.7393C5.25037 11.7393 4.5349 11.321 4.5837 10.2928ZM13.8624 8.47534C14.6803 8.47534 15.3831 9.26454 15.4309 10.2928C15.4797 11.321 14.7633 11.7393 13.9463 11.7393C13.1293 11.7393 12.5183 11.3665 12.4695 10.3374C12.4207 9.30912 13.0444 8.47534 13.8624 8.47534ZM12.8902 12.6717C13.0434 12.6869 13.141 12.8415 13.0815 12.98C12.5788 14.1477 11.3919 14.9682 10.0068 14.9682C8.62177 14.9682 7.43582 14.1477 6.93216 12.98C6.87262 12.8415 6.97023 12.6869 7.12348 12.6717C8.02147 12.5835 8.99268 12.5352 10.0068 12.5352C11.021 12.5352 11.9912 12.5835 12.8902 12.6717Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":351,"url":352},"Reddit","https:\u002F\u002Fwww.reddit.com\u002Fr\u002FTHORChain\u002F",{"_key":354,"icon":355,"link":358},"337460c1bb1a",{"icon":356,"isCustom":10,"raw":357},"gitbook","\u003Csvg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M10.0059 1.80113C12.6793 1.80113 12.9959 1.81285 14.0473 1.85974C15.0244 1.90272 15.5521 2.06681 15.9038 2.20356C16.369 2.38328 16.7051 2.60207 17.053 2.9498C17.4047 3.30143 17.6197 3.63352 17.7995 4.09846C17.9363 4.45009 18.1004 4.98144 18.1434 5.95429C18.1903 7.00918 18.2021 7.32565 18.2021 9.99414C18.2021 12.6665 18.1903 12.983 18.1434 14.034C18.1004 15.0107 17.9363 15.5382 17.7995 15.8898C17.6197 16.3548 17.4008 16.6908 17.053 17.0385C16.7012 17.3901 16.369 17.605 15.9038 17.7847C15.5521 17.9215 15.0205 18.0856 14.0473 18.1285C12.992 18.1754 12.6754 18.1871 10.0059 18.1871C7.33242 18.1871 7.01583 18.1754 5.96443 18.1285C4.9873 18.0856 4.45964 17.9215 4.10788 17.7847C3.64276 17.605 3.30662 17.3862 2.95876 17.0385C2.607 16.6869 2.39203 16.3548 2.21223 15.8898C2.07543 15.5382 1.91128 15.0068 1.86828 14.034C1.82138 12.9791 1.80965 12.6626 1.80965 9.99414C1.80965 7.32174 1.82138 7.00527 1.86828 5.95429C1.91128 4.97753 2.07543 4.45009 2.21223 4.09846C2.39203 3.63352 2.6109 3.29752 2.95876 2.9498C3.31053 2.59816 3.64276 2.38328 4.10788 2.20356C4.45964 2.06681 4.99121 1.90272 5.96443 1.85974C7.01583 1.81285 7.33242 1.80113 10.0059 1.80113ZM10.0059 0C7.28943 0 6.94938 0.011721 5.88235 0.0586052C4.81923 0.105489 4.08833 0.277398 3.45515 0.52354C2.79461 0.781403 2.23569 1.12131 1.68067 1.68002C1.12175 2.23481 0.781708 2.79351 0.523744 3.44989C0.277506 4.08674 0.105531 4.81344 0.0586281 5.87615C0.0117256 6.94667 0 7.28658 0 10.002C0 12.7173 0.0117256 13.0572 0.0586281 14.1239C0.105531 15.1866 0.277506 15.9172 0.523744 16.5501C0.781708 17.2104 1.12175 17.7691 1.68067 18.3239C2.23569 18.8787 2.79461 19.2225 3.45124 19.4765C4.08833 19.7226 4.81532 19.8945 5.87844 19.9414C6.94548 19.9883 7.28552 20 10.002 20C12.7184 20 13.0584 19.9883 14.1255 19.9414C15.1886 19.8945 15.9195 19.7226 16.5527 19.4765C17.2093 19.2225 17.7682 18.8787 18.3232 18.3239C18.8782 17.7691 19.2222 17.2104 19.4763 16.554C19.7225 15.9172 19.8945 15.1905 19.9414 14.1278C19.9883 13.0611 20 12.7212 20 10.0059C20 7.29049 19.9883 6.95058 19.9414 5.88396C19.8945 4.82125 19.7225 4.09064 19.4763 3.45771C19.23 2.79351 18.89 2.23481 18.3311 1.68002C17.776 1.12522 17.2171 0.781403 16.5605 0.527447C15.9234 0.281305 15.1964 0.109396 14.1333 0.0625122C13.0623 0.011721 12.7223 0 10.0059 0Z\" fill=\"#FAFAFA\"\u002F>\n\u003Cpath d=\"M10.0035 4.864C7.16593 4.864 4.8638 7.16523 4.8638 10.0017C4.8638 12.8382 7.16593 15.1394 10.0035 15.1394C12.8411 15.1394 15.1433 12.8382 15.1433 10.0017C15.1433 7.16523 12.8411 4.864 10.0035 4.864ZM10.0035 13.3344C8.16261 13.3344 6.66955 11.8419 6.66955 10.0017C6.66955 8.16152 8.16261 6.66904 10.0035 6.66904C11.8445 6.66904 13.3375 8.16152 13.3375 10.0017C13.3375 11.8419 11.8445 13.3344 10.0035 13.3344Z\" fill=\"#FAFAFA\"\u002F>\n\u003Cpath d=\"M16.5407 4.66338C16.5407 5.32757 16.0013 5.86283 15.3407 5.86283C14.6763 5.86283 14.1408 5.32367 14.1408 4.66338C14.1408 3.99919 14.6802 3.46392 15.3407 3.46392C16.0013 3.46392 16.5407 4.00309 16.5407 4.66338Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":359,"url":360},"Instagram","https:\u002F\u002Fwww.instagram.com\u002Fthorchain",{"_key":362,"icon":363,"link":365},"0471bb3eca4205722df8ca6d27567665",{"icon":356,"isCustom":10,"raw":364},"\u003Csvg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M19.9996 10.0367C19.9996 4.49365 15.5225 0 9.9998 0C4.47711 0 0 4.49365 0 10.0367C0 14.7436 3.22874 18.6932 7.58425 19.778V13.104H5.52229V10.0367H7.58425V8.7151C7.58425 5.29899 9.12462 3.7156 12.4662 3.7156C13.0997 3.7156 14.1929 3.84046 14.6401 3.96491V6.74509C14.4041 6.7202 13.9941 6.70775 13.4849 6.70775C11.8454 6.70775 11.2118 7.33123 11.2118 8.95196V10.0367H14.4781L13.9169 13.104H11.2118V20C16.1633 19.3998 20 15.1683 20 10.0367H19.9996Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":366,"url":367},"Facebook","https:\u002F\u002Fwww.facebook.com\u002FTHORChain\u002F",{"_key":369,"icon":370,"link":372},"aa62a8f1e626",{"isCustom":10,"raw":371},"\u003Csvg width=\"20\" height=\"23\" viewBox=\"0 0 20 23\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M14.8236 8.25794C16.2825 9.31189 18.0697 9.93201 20 9.93201V6.17812C19.6347 6.1782 19.2703 6.1397 18.9129 6.06318V9.01802C16.9828 9.01802 15.1958 8.3979 13.7366 7.34403V15.0046C13.7366 18.8368 10.6626 21.9432 6.87093 21.9432C5.45616 21.9432 4.14119 21.511 3.04884 20.7696C4.29558 22.0579 6.03424 22.8571 7.95777 22.8571C11.7497 22.8571 14.8238 19.7507 14.8238 15.9184L14.8236 8.25794ZM16.1647 4.47073C15.4191 3.64754 14.9296 2.58372 14.8236 1.40761V0.924784H13.7935C14.0528 2.41961 14.9372 3.6967 16.1647 4.47073ZM5.44709 17.8289C5.03053 17.2769 4.80542 16.6017 4.80643 15.9074C4.80643 14.1547 6.21243 12.7336 7.94706 12.7336C8.27034 12.7335 8.59168 12.7835 8.89975 12.8823V9.04452C8.53972 8.99465 8.17636 8.97348 7.81315 8.98125V11.9684C7.50484 11.8696 7.18335 11.8194 6.85999 11.8197C5.12536 11.8197 3.71943 13.2407 3.71943 14.9936C3.71943 16.2331 4.4222 17.3062 5.44709 17.8289Z\" fill=\"#FAFAFA\"\u002F>\n\u003Cpath d=\"M13.728 7.34395C15.1873 8.39782 16.9742 9.01794 18.9043 9.01794V6.0631C17.827 5.83117 16.8732 5.26217 16.1561 4.47073C14.9286 3.69662 14.0442 2.41953 13.7849 0.924784H11.079V15.9182C11.0728 17.6661 9.66924 19.0815 7.93833 19.0815C6.91834 19.0815 6.01217 18.5901 5.43828 17.8289C4.41347 17.3062 3.7107 16.233 3.7107 14.9937C3.7107 13.2409 5.11663 11.8198 6.85126 11.8198C7.18361 11.8198 7.50394 11.8721 7.80442 11.9685V8.98132C4.07934 9.0591 1.08348 12.1352 1.08348 15.9183C1.08348 17.8068 1.82952 19.5188 3.04035 20.7697C4.13269 21.511 5.44766 21.9433 6.86243 21.9433C10.6542 21.9433 13.7281 18.8368 13.7281 15.0046L13.728 7.34395Z\" fill=\"#FAFAFA\"\u002F>\n\u003Cpath d=\"M18.9079 6.05215V5.25318C17.9363 5.25467 16.9839 4.9797 16.1596 4.4597C16.8893 5.26706 17.8501 5.82375 18.9079 6.05215ZM13.7884 0.913832C13.7637 0.770975 13.7447 0.627176 13.7315 0.482829V0H9.99534V14.9936C9.98937 16.7413 8.58584 18.1566 6.85478 18.1566C6.34656 18.1566 5.86673 18.0347 5.4418 17.818C6.01569 18.5791 6.92185 19.0704 7.94185 19.0704C9.6726 19.0704 11.0764 17.6553 11.0825 15.9073V0.913832H13.7884ZM7.80809 8.97037V8.11981C7.4959 8.07669 7.18116 8.05505 6.86602 8.05521C3.07395 8.05513 0 11.1617 0 14.9936C0 17.396 1.20812 19.5132 3.04394 20.7586C1.83311 19.5078 1.08707 17.7957 1.08707 15.9073C1.08707 12.1242 4.08286 9.04815 7.80809 8.97037Z\" fill=\"#FAFAFA\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":373,"url":374},"TikTok","https:\u002F\u002Fwww.tiktok.com\u002F@thorchaincontact",{"_key":376,"icon":377,"link":379},"1a3ef15ea167",{"isCustom":10,"raw":378},"\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"3.84 32.0 376.768 448.0\">\n  \u003C!-- Font Awesome Free 6.5.1 - https:\u002F\u002Ffontawesome.com\u002Flicense\u002Ffree -->\n  \u003Cpath fill=\"#ffffff\" d=\"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":380,"url":381},"Apple","https:\u002F\u002Fpodcasts.apple.com\u002Fus\u002Fpodcast\u002Fthorchain-weekly-live\u002Fid1719319894",{"_key":383,"icon":384,"link":386},"13eff6c10247",{"isCustom":10,"raw":385},"\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 167.5 167.5\">\n  \u003C!-- Spotify icon - circle with sound waves -->\n  \u003Cpath fill=\"#ffffff\" d=\"M83.7 0C37.5 0 0 37.5 0 83.7c0 46.3 37.5 83.7 83.7 83.7 46.3 0 83.7-37.5 83.7-83.7S130 0 83.7 0zM122 120.8c-1.4 2.5-4.6 3.2-7 1.7-19.8-12-44.5-14.7-73.7-8-2.8.5-5.6-1.2-6.2-4-.2-2.8 1.5-5.6 4-6.2 32-7.3 59.6-4.2 81.6 9.3 2.6 1.5 3.4 4.7 1.8 7.2zM132.5 98c-2 3-6 4-9 2.2-22.5-14-56.8-18-83.4-9.8-3.2 1-7-1-8-4.3s1-7 4.6-8c30.4-9 68.2-4.5 94 11 3 2 4 6 2 9zm1-23.8c-27-16-71.6-17.5-97.4-9.7-4 1.3-8.2-1-9.5-5.2-1.3-4 1-8.5 5.2-9.8 29.6-9 78.8-7.2 109.8 11.2 3.7 2.2 5 7 2.7 10.7-2 3.8-7 5-10.6 2.8z\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":387,"url":388},"Spotify","https:\u002F\u002Fopen.spotify.com\u002Fshow\u002F1uMxtHcV3PCvB9gf3aanjl",{"_key":390,"icon":391,"link":393},"7bc02d3469b4",{"isCustom":10,"raw":392},"\u003Csvg width=\"512\" height=\"512\" viewBox=\"27.648 27.648 456.704 456.704\" fill=\"none\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n\u003Cpath d=\"M332 484H237C237.091 428.549 215.073 375.348 175.82 336.181C136.61 296.99 83.4372 274.982 28 275.001V180.001C108.645 179.915 186.005 211.946 242.985 269.016C300.081 325.977 332.117 403.349 332 484Z\" fill=\"#ffffff\"\u002F>\n\u003Cpath d=\"M160.998 417.976C160.77 449.654 138.227 476.773 107.124 482.785C76.021 488.798 44.9948 472.034 32.9773 442.723C20.9598 413.412 31.2881 379.693 57.6599 362.141C84.0317 344.589 119.124 348.078 141.524 370.478C154.111 383.066 161.126 400.175 160.998 417.976Z\" fill=\"#ffffff\"\u002F>\n\u003Cpath d=\"M483.999 484H389.298C389.423 388.232 351.491 296.365 283.9 228.736C216.462 160.965 124.902 122.918 29.4476 123.001H28V28.0004H29.4476C150.03 27.8503 265.7 75.9205 350.851 161.571C436.265 246.97 484.188 363.024 483.999 484Z\" fill=\"#ffffff\"\u002F>\n\u003C\u002Fsvg>\n",{"isInternal":163,"label":394,"url":395},"RSS.com","https:\u002F\u002Frss.com\u002Fpodcasts\u002Fthorchain\u002F","Socials",{"anchor":5,"getParameters":5,"isInternal":163,"label":398,"openInNewTab":163,"theme":399,"title":5,"url":400},"Launch App","important","https:\u002F\u002Fswap.thorchain.org\u002F",{"data":402},{"favicon":403},{"alt":20,"assetId":404,"caption":5,"crop":5,"height":405,"hotspot":5,"lqip":406,"width":405},"image-c973725813bf6fcd1c3a0a37adf3252677529ace-512x512-png",512,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAE2ElEQVR4nH2V3U9bdRzGD4N1adgYGzAmZeNlIA22vLjNzOmFGpkmOjUm6s3UC\u002FVqeGG8MTFxhuGFGmO8MLoL44IDJmPCplvoxLE32IpAN3YOhba09JzSV0p7ek57Ts\u002Fp+T2mHYPh2\u002FMHfPJ88zy\u002F50dRq0IeRUOnt7GGIu9i2zavt6OUdQ7v4GhfuW9KqvBb5V3hUV\u002FV8vXhPcKVjhphqK1yqc\u002FQSPfpKFB5a5wcC3kUC33hTNRU6Ay1F7kXzxazHFOy6AmVcYy0k5vSDH6rtisyJlXxN0I1yRHamLL0P5a81N6WtpheQ58+x1gVC\u002F1GV3Kv3iV0bnYvT2xx+\u002FlitydT4nVoO1ia7PRNoSJgRWXoBtkTvabtE66pL0tj\u002FNuqdeKwOtK5Pzm470AWmhMN3caZtGmTQ+rUu0Sm0LkkFTl9WrFrnmx3z5Iy711kgTWBceyPjOP12BT5VLSTb9Mu7YP0pPSUOsQ0qWc7m3Da1Ig+HUXZkoaCGaV906w0qZ\u002FlpUJ7kBTNcaTYNY8yzxyqOQYHAgzeis7hK4GFRY5gVIniO9lBXkleJs3ygGzKnJlszvS2NydPGqh8m3qogFH6dTMpXs9ESaE9gKI5DqUuN5rZebwTYfG9EMaozIPNyPBrEs6l\u002FXhTvIkm4TwaU2eIWfmZb8709Legp43Kv4uOArtK6xhR1dNLZLM9iC0ODuXzHrzgZ9EjxMCpCiSiQSSZnLv3xdtoTVjQIA6gMdlHzEqv2qL10q041UFtoLXfCxglrKMFLQsstAdzDktcbuzj3PgsFgKjSEgQFdNqAsfEOTwev4J6\u002FgIahMF7QLlXa8l0h1rRNURtuKOxBdPplG5aIHomivvAbS43yhfm8ITfiS\u002F4IIblGL5OLuCZ2C3ULV9CfXwVCLPcQ1oyp8RHtR+d1AZbJlVgkzTddAKrQAeHbCglnlkYWBovhZ04nmBxJH4XxqWrqF0BGleAJrmbNKldSqv2Q+w\u002FgVmHWWAdN4P3ogv4KRnCJ4ILB5fHsOd\u002FgXf+5eSsw3k3di848UbIi8FUDGwmDasSx8fiLA7Gr+Jhfg1oXnfy30LZvAJ8aN6DF\u002F0cuoUYAhkFCiHgiYrhdATvipMwJ4bQIAz8M5R8Zn1tsg5LHRye5hZxgo\u002FBqyoQtQyCGQU2JYGTEocjwp9o4ofWUlaytemmW9HVQeXPoO3BYhfbAzjgCeLL5TimZRluNY3rcgInRD+O8rN4LjaOlthlNNyvTSpb7NMrxe5qW316ullpcsscLzW7IuSjUAznBRHnkwl8Hg\u002FiyJILB8O30RAeQ\u002FXSCGpyofxGjIlB0ij\u002FIjWpfWtP78FxqPSkmFcDonQsEicfhsPksN9Lmnx2VPlsqPBbURm8TqojI6Q2eonUJy5qxtSv0iPKOca0bhwoiqpkWf1WV3KviU12PhtITjzpi\u002FB1XjZT7nVqZbn5shFDwEp2R8a06uWrWi3\u002Fh1ovWnijfHGiMX2u06wM7K3MbeL9oQXyslAjGzXVLCwfLfEE+rdyPnr74kJwx6Jd3Om\u002FrVQEx5Vd0ZtitTgarBVHmPqUpd+YvNBuFvrMuS1cN7D3lEfRtE7vjVQUORYPbfNyHSXc\u002FFApx7jKfbZ4ReBWvDIy5qqKXbPU8JeP18Uth+qXfjU87\u002Fhm04NfwF9quiEoON6NtQAAAABJRU5ErkJggg==",{"data":408,"sourceMap":-1},{"author":409,"date":417,"globalSeo":418,"image":432,"readingTimeLabelTemplate":438,"related":439,"seo":596,"seoImage":604,"slices":605,"tags":1862,"title":603},{"avatar":410,"name":415,"slug":416},{"alt":411,"assetId":412,"caption":5,"crop":5,"height":413,"hotspot":5,"lqip":414,"width":413},"THORChain logo","image-b4749092773d8c5a7fb87c546187705551578dbc-300x300-svg",300,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEe0lEQVR4nHXV708TdxwH8BMrg6AbMrQKYoeCQKnS6eKyzQGaLFuymP16si2L2Y8HwwdLtof+ypgmyx65+MxEGdZEFBYXnVAdblbBOaBIoaXQFq4\u002FaG2v7ZXeXe+ud70e7wUGUyp+\u002FoBXPp\u002Fvj\u002FeHIJ4sQFNEUtoix9T+Yo\u002FnRAk5YS4NOEhtcIQtCw+y5dF+cmv0jnlr7I\u002FjuuTN5srUdW0TLBpixfKhYO04rS90hQ6vcwe6ikmvo8Trim4IOIRNwRGlLDygVFD9gi5+J1pJ9zpqWXPn64z58AHpT30TLAXLMQsK1jj5lwsd8ZNFLsq6zh1k10+T6os+NzbOjGNTyIbyyCAqovdRTd\u002FD3uRd9b1UP\u002Fup2D\u002F8jnDr1B7+ym6dr30RBTTECKdfY0ueLHTEnUWTEfl5TxDrSS+WwM0hG6ooK16jrfiYHUWr4MIZyY1v0gNyo3jDWZ++8kO9ZKr7b3w7tHkj3OH8UWa40EnLRZMUlsCNPje2hybxBjWBQ7MenOZncFum8UBJ4Kw8hY9EC4ziVak+fdlqyJhaDOjQEoQt3bzaxnfl2zm20JnAEriB9KEh6MUX8SDOpmL4W+IQzEqgVAk9mQi+FAaxm++GXvwVBqmD3aVc7KxX2puJvIfScY1NdOSPseqTYJnXj4ORIC7xScwoMuS5OYhzWTxQZvGdYMderhd1\u002FLUFcKfUoTYoJkdDtv0YsWpYuqmxidF8O4fcDl8N+fATE8NkJg1+LotxJYVTwhTeZPpQw5pRuwTKHWhQTJRRbesmVg3LXs2oKOSC82e42e\u002FB\u002Fsg0TnMULBKDM0IAbzND2DF7G9VszzJwV+aCYFTOkcQqq8xpbKKyEjh\u002Fy7rgBD6MT+NHLohDzDgMiT5sm+1dCVSMynl2vkP2WWCpz42akAstiQAuCTG0pkg0Jv95VodKQ\u002FY8M9+hV2NbeeTKwDQ+ic3gusjgUVbGkMLiBO9GI9uHutwzzFzgG5Tz0\u002FMdmjWjaSoX3OL14\u002F1ICJd5BlFVgQqAm1PQm4nhK\u002F4hjNytHNBEGbNt3USeVTyusQnLns3GqRDeCoXRxrIIZTOQ5lTQagZjSgqmdBCfpazLQalD3ZkxOYzZX44SxIjYtHqU78y3swsPu8QVxb5AFD8nWThlGQFFxoCcQrsQwbecG+8yVuxJWpaNbJA62J2Zi52GjKmJIOwpbd4o15I\u002FlrSuc9KykaRxJMaghxdgFlI4zcbweYJEc3wMhvgAttN3c29ZWvh6aVOLIXVOuxgOtP65scTJ8smE82BgVv4+zuAITeODSBCvhN3Y9mgMWxbT5iXa8iQo1Qpd4\u002FXpy62Pw2EhvnwFL0zEdu9wxU81+hLWff4IW+f3q2V+z1PxtQAmetVqpputSV0bqhOuturlLuPj+FosnQ8FVR5ar\u002FOEW0rc\u002Fs7iKdJR4nNRGwLj\u002FP8BG73P6+IWaj5gq5I3Oqu537+u536r0yEHW7YC7KR27YS3qZicOlbidXWXBuykNmRjysKDTHn4HlkR\u002F6tbR\u002FcerZo1N1VST6+AfwFKhhGPaiwFVAAAAABJRU5ErkJggg==","THORChain Contributor","thorchain-contributor","2026-08-06",{"description":419,"noFollow":163,"noIndex":163,"ogImage":420,"ogLocale":5,"ogSiteName":181,"ogTitle":419,"ogType":426,"structuredContent":5,"title":181,"titleTemplate":427,"twitterCard":428,"twitterCreator":5,"twitterDescription":429,"twitterImage":430,"twitterSite":431,"twitterTitle":419},"The World's Leading Bitcoin DEX",{"alt":421,"height":422,"type":423,"url":424,"width":425},"THORChain - The World's Leading Bitcoin DEX",630,"image\u002Fpng","https:\u002F\u002Fcdn.sanity.io\u002Fimages\u002F355nlzcp\u002Fproduction\u002Fd7b83200f512f7d535d5ac7bc7fcb38be7a63ce9-1200x630.png",1200,"website","%s | THORChain","summary_large_image","Cross-chain liquidity protocol supporting BTC, ETH, Monero and more.",{"alt":5,"height":422,"type":423,"url":424,"width":425},"@THORChain",{"alt":433,"assetId":434,"caption":5,"crop":5,"height":435,"hotspot":5,"lqip":436,"width":437},"A technical deep dive into the May 2026 THORChain exploit, explaining how the vulnerability was executed and how it was mitigated.","image-c7b11fad99b879ce58de6a53cff7da5ba2ef2958-1530x861-png",861,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB\u002FCa1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAACcUlEQVR4nF2TW4+bVhSFMRzAh7sxYBtfsWE8jPGl9tiZaqKZNo2USImiXl76VrX\u002F\u002Fy\u002FAFxmP8tCHpa29tPeno6WzFVXXa8OSjeN6uK5HV0o0TaPT6bRSVRVNaD+8ttcFetdEGHrbd95mdGmiqIZem7bVON4NKKVECHEbvELfANfla9V0DWHqGHYXw5YI00DVNVRDICwTxTTN2g\u002F8Jooi4jjmWsMwxPf9Fq4JgWbqiCvAs5Cxjz0MsUYRMo0xh31E30PzLYQvUXzPq\u002FM8b6qqYrvdst\u002FvORwOrbIsw3FdtOvrujrdvkdwN8ev1tibAlnlyGqJkY0QPQfNMVGiKKpPx1Pz\u002FPzM5XLh\u002FPjI6Xji6emphSdJgq7rqEJD9n389RKrvEe\u002FW2GWGXK3xFylaK5FR6goSZzUp9OpeXl9bSHb3ZbFYsFsNmM6nRD4Abp2zU4gkx5ePsVMIjqOjQhc5DxBroYIT7aZK9EgrvP9Q7N7f6b6+chiUxAmEY7r4DgOlm1jWm\u002F5rYa4xxXdaXzLrO8i1ynOOaM7j24ZxumgHlXLZnwuGT\u002FeM3zIiNIBvbBHrx\u002FSSxOCVYq\u002FnRH8tiH46x3upz32LyXOhxL\u002F24H+3xfCz1u81zuUyWxaT\u002FJFM1kvmdxlTPIF49mU8XjMeDomXS9In0qSlwfCjxX+lwPBH2eS\u002F16J\u002F3mm9+eR4NuB8PefGPz7HqUoijoviiYvCoqiIC9y8vym5WpJdl+Qn7eMqhX2JMIYBXgPU+ZfL6Qf9tj5oPXc+5TF1wtKVVV1VVXtt\u002Fm\u002FyrKkrDbsLkfmxRLbsduLCAYR1cuZ\u002FLjB8pzW8+OQ3a\u002Fv+A4kbxtYlBJhmwAAAABJRU5ErkJggg==",1530,"{{minute}} min read",{"items":440,"title":595},[441,457,470,483,496,508,521,531,542,557,569,582],{"author":442,"date":444,"image":445,"score":451,"slug":452,"tags":453,"title":456},{"avatar":5,"name":181,"slug":443},"tc_intern","2026-07-24",{"alt":446,"assetId":447,"caption":5,"crop":5,"height":448,"hotspot":5,"lqip":449,"width":450},"THORChain ADR-029 article thumbnail explaining the REVSHARE mechanism, how the protocol pays affiliates from its own swap revenue and what that means for partner onboarding and quote competitiveness.","image-a0762d880d74806cc01b60faf20e4aa46c8bf8ac-2517x1416-png",1416,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB\u002FCa1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAAB0klEQVR4nH2T74sSURSG\u002FTeKJTdXvfeOOuOoc50ZR50VKqxQXDXNNpb6Ev0kgkhp0cAoaVuqv\u002FiJq7mw5O6HZ+6ZgfOe8\u002FLOTch8BWlrlKNRxSrSMXhIe4u+QGzrgse6bwcJ02TFTaxuG+voAWrYRTzqkR31yQ76ZPpDMt0+6c6QVG9CqndMOr6\u002FGbxTsOxjPT8i9\u002F0F6usr5Ld3ZM6nHPxZkDpbcHs5Z382I\u002FnxM3unK24sfpM8fk22UkfmyjsE\u002FZDcmxG5X29RP98jVh\u002FIns1In89JrRbsL7+QPJ1za7pg79OSm9MfJCcvrxa0vACn08Z9OsB5NsY+eYw9GWGPR+THE8ToCenBhIP+hFRnTOrhmHSjfbVly9E4OqIUxLi1ww2mDmKKfkzOqyPdEOEGiGKAdPzLodgm0OrFt4R5WCYYW+9E7UrTNJu0XR9ZrqFK4eZ9KyjWlP+dOwTMb1T2kZUA6YWoaoQKm4jwEOHHCK+xdmAGJTbTPNR2o4K35rKgRukAGdRQQYRVj1HNFiJqkfVjsrqJKNWQBU1ClgLyXoSrG5R1A7cSkS\u002F6\u002F1s0Wxb1BmPVUPQRTnXNxrLZUEc4tRZB8y5RfI+wfgfXq2Ndcxuu4y88wGsNOpvu9QAAAABJRU5ErkJggg==",2517,1,"adr-029-affiliate-revenue-share",[454],{"name":455,"slug":455},"Report","ADR-029 Affiliate Revenue Share",{"author":458,"date":459,"image":460,"score":451,"slug":466,"tags":467,"title":469},{"avatar":5,"name":181,"slug":443},"2026-07-17",{"alt":461,"assetId":462,"caption":5,"crop":5,"height":463,"hotspot":5,"lqip":464,"width":465},"THORChain Q2 2026 report thumbnail. ","image-95b7501fde59a1fb8f1cfe12a5f2e6a011fa1673-1280x720-jpg",720,"data:image\u002Fjpeg;base64,\u002F9j\u002F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\u002F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\u002FwAARCAALABQDASIAAhEBAxEB\u002F8QAFwABAQEBAAAAAAAAAAAAAAAABQADCP\u002FEACAQAAEDBAMBAQAAAAAAAAAAAAIBAwQABRESEyFBYQb\u002FxAAXAQADAQAAAAAAAAAAAAAAAAAAAQME\u002F8QAGhEAAwADAQAAAAAAAAAAAAAAAAECEiIxUf\u002FaAAwDAQACEQMRAD8A5\u002FOHEKPyOS9XFTOmM0n+TsUK6E2Tr+iCS8u3SIPmKCuIiOuqYzWcZ91ntpwgX4tDTfDJUW41oZusCMzcX24xIrIkqCvyqi+Qy7IlVV9qponjXp\u002F\u002F2Q==",1280,"thorchain-quarterly-report-q2-2026",[468],{"name":455,"slug":455},"THORChain Quarterly Report - Q2 2026",{"author":471,"date":472,"image":473,"score":451,"slug":479,"tags":480,"title":482},{"avatar":5,"name":181,"slug":443},"2026-07-09",{"alt":474,"assetId":475,"caption":5,"crop":5,"height":476,"hotspot":5,"lqip":477,"width":478},"THORChain ADR-026 Dynamic Fee Model article thumbnail.","image-6373132979902388cabae3ed843a5d822f4ecec3-2547x1433-png",1433,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB\u002FCa1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAACKklEQVR4nH2SWU9TYRCG+zM0KlBKz\u002FZ93XvWtmc\u002FFGxTKF4QozF6AwYUCggFCWiiRjDRaGI04c8+puVS4OLNJPNmnlkyOU020UsmupyoOY2T3J0SjVu9nF53EC0f4YcYUYwRJ2hRghomqEGCEqQoforSSVHaKUUvQW207gCmMWJrHWP0HH3\u002FFdp4E+X0LQunexQOR8yPRuQ3t5nb2GFm+4iZjQMKi2toZfsW4LMBxo9t9N\u002F7qN8PUH6+p3D1hfzVN+Z+XTJ7ecHM+Scenl9w\u002F+sf7n3+y+z6JmrNu3H1nHw6oDR+ifzwGnG2hXHyBv14B+14D2X8jsLhmPzoiNndEx7tnvFg5yP51ReoNfdmYD3JMHs9rJUB5toQczjEGqxir67RHD5B9lfQlvqo3T5K2qMY91CdCK1s3bxyxe1QdXyqtk+tHdIIY5pxihlnNKKYcttHei2k4yFsF2E6GHUbvWKhlf7\u002FiJzedNAa9lTGpDAMkEmMjBNkHCPCGBlESD9EdHxkq41wWximi15zUCsWSrmJWpoATXJ61cJo2NfdW21kECDiBJEsIrIuRraMSCfqIpIMMW0SYnR8dLdD0faYt1wWGi5q1SUn6g5lp03ND6iFEeUwQgYJIuxixMsYSQ8j7SOSZUQyyU28aDqt4bZRLY8F06PYbKPWWuSk6VHvhNhphpUtUo1TZJheA6PHiLCHmMYlRJAh\u002FAjZ6UzvKiwHo2ajVSzU0uSmFv8AMbV1Jm+5+qkAAAAASUVORK5CYII=",2547,"adr026-dynamic-fee-model",[481],{"name":455,"slug":455},"ADR026 - Dynamic Fee Model",{"author":484,"date":485,"image":486,"score":451,"slug":492,"tags":493,"title":495},{"avatar":5,"name":181,"slug":443},"2026-07-03",{"alt":487,"assetId":488,"caption":5,"crop":5,"height":489,"hotspot":5,"lqip":490,"width":491},"THORChain Exploit Report #2 Thumbnail","image-c1bdebd47becbbbd191382753a3fad63ecd1e324-2829x1591-png",1591,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB\u002FCa1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAACdUlEQVR4nD3TW2\u002FaSBTAcb8EY3zB2BgbGwMxtjHG3MIlJKWEJJC2SZuEVoqqKrv7AXa\u002F\u002F+t\u002FZdPdh5+ONJo5mjnnjHBmm5w1LUquTanlFETfRvTz6CC2HcSOixR4SJFHJT6Rei7lrnPS+Y+NUHIbxcFyO9\u002FgIZ57lH+TghaVqIPc76IMzpHTLnLaKSiTGHU1Rl2NUCYRctKmErkIUs9HHkco8xRllaEsM+T5AHnWP61nIeo4QpvEaNM8hmirDPPpnsbPZ8znO\u002FTbJdX1EHUSIKijiPr+ksbLLfaPPU7ueIf9vMXYzdFmp0T6YoC+StHXI4z9B5xfR\u002Fw\u002FX6k\u002Fbqjulhj7S2qbMYI1TugdPpK8HEiOD\u002FSPD8THPb2XHc7NBdo0RJv00JcDavnNrqdYn2+wXz\u002FRfLzB2MypbhaYj1vMwxVCYxCRflwzud+S7q4Jri\u002FwL8d4lxnmLELNumiTgOoiQZ+nGMsR1uMt9ttXGp931LZX1A5b6k931O8\u002FIChtD6sf4qQx9aRHNWqjhi3UfgslaaEM22jTgOoqKZ5bu1tj\u002FfUd5+93Gm9fMb\u002FtqT\u002FvMfcb9KsFwpldR3QsxHx0mhZiyyraXwmayLGHMuycmrHsU9stqL+\u002F0vjnD6z3b5hPW4xPG4z7NfrVlOoiQyg5FicmJceg5JqUWw2kbhM58lGHAWo+IrM++s0c8+0L5o8Dte0UfZkUtdWLcvSpzmIEqe0i53wbybMQXROx1aDcdanEXeRBgJL2UIY91GmMtkrRLmLUURc1axe0rFNQsw6CEnYwoi5G6KN2mpTzpPlPCXzK0TlSfF4MdyX0kUPvJHKR+97\u002FlLzev\u002F0L2fE1xZxWdxsAAAAASUVORK5CYII=",2829,"thorchain-exploit-report-2",[494],{"name":455,"slug":455},"THORChain Exploit Report #2",{"author":497,"date":498,"image":499,"score":451,"slug":504,"tags":505,"title":507},{"avatar":5,"name":181,"slug":443},"2026-07-01",{"alt":20,"assetId":500,"caption":5,"crop":5,"height":501,"hotspot":5,"lqip":502,"width":503},"image-c56821eea88d4ff053291047a6eea641ab89295c-1324x745-jpg",745,"data:image\u002Fjpeg;base64,\u002F9j\u002F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\u002F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\u002FwAARCAALABQDASIAAhEBAxEB\u002F8QAGAAAAwEBAAAAAAAAAAAAAAAAAAUGAwf\u002FxAAiEAACAgEEAgMBAAAAAAAAAAABAgMEAAUREiEGQRMxUXH\u002FxAAWAQEBAQAAAAAAAAAAAAAAAAAFAQL\u002FxAAbEQACAwADAAAAAAAAAAAAAAAAAwECERNBUf\u002FaAAwDAQACEQMRAD8A4LY0ql8IcX0DkdKR7xh4942liGS5YmjarGwQ8W7Yn8yd1BFRl4jbfNKliVE4JIwU+ges3Ex4HuWyy8pbC1k0GrWcxynv7He\u002FWGIFszEbmRif7hk0L4Hd3P\u002FZ",1324,"state-of-the-network-june",[506],{"name":455,"slug":455},"State of the Network - June",{"author":509,"date":510,"image":511,"score":451,"slug":517,"tags":518,"title":520},{"avatar":5,"name":181,"slug":443},"2026-06-09",{"alt":512,"assetId":513,"caption":5,"crop":5,"height":514,"hotspot":5,"lqip":515,"width":516},"THORChain v3.19.0 protocol upgrade article thumbnail covering Monero support, affiliate revenue share, DASH InstantSend and the TSS security patches behind the network restart.","image-c0036def0421674d04f39ce62c2e2dd16d1e4fa0-1260x709-jpg",709,"data:image\u002Fjpeg;base64,\u002F9j\u002F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\u002F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\u002FwAARCAALABQDASIAAhEBAxEB\u002F8QAFwABAQEBAAAAAAAAAAAAAAAAAwAECP\u002FEACEQAAICAQQCAwAAAAAAAAAAAAECAAMRBAUSIRMUMUFC\u002F8QAFwEAAwEAAAAAAAAAAAAAAAAAAAECBP\u002FEABgRAQEBAQEAAAAAAAAAAAAAAAEAAhEh\u002F9oADAMBAAIRAxEAPwDm\u002FwBJbahZ7dS5UkqT2Im16Cq+t21FwrVULAn9H6Amfcqa048VAzCrdvCBk4B6kNjTTnxnKqpIX4lDUkjuUOSv\u002F9k=",1260,"protocol-upgrade-v3-19-0",[519],{"name":455,"slug":455},"Protocol Upgrade - V3.19.0",{"author":522,"date":523,"image":524,"score":451,"slug":527,"tags":528,"title":530},{"avatar":5,"name":181,"slug":443},"2026-06-01",{"alt":20,"assetId":525,"caption":5,"crop":5,"height":501,"hotspot":5,"lqip":526,"width":503},"image-294da32058dae3e3ec7005b920366319d0e7a335-1324x745-jpg","data:image\u002Fjpeg;base64,\u002F9j\u002F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\u002F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\u002FwAARCAALABQDASIAAhEBAxEB\u002F8QAGAAAAwEBAAAAAAAAAAAAAAAAAAUGAwf\u002FxAAiEAACAgEEAgMBAAAAAAAAAAABAgMEAAUREiEGQRMxUXH\u002FxAAWAQEBAQAAAAAAAAAAAAAAAAAFAAL\u002FxAAbEQACAwADAAAAAAAAAAAAAAAAAwECERNBUf\u002FaAAwDAQACEQMRAD8A4LY0qj8IcaggcjpSPeMPHvGksQyXLE0bVYnCHi3bE\u002FmTuoIqMvEbb5pUsTInBJGCn0D1m4mPA562WXlLYW0mgVazmOU7H7He\u002FXrDEC2ZiNzKxP8AcMtCuB3dz\u002F\u002FZ","state-of-the-network-may",[529],{"name":455,"slug":455},"State of the Network - May",{"author":532,"date":533,"image":534,"score":451,"slug":538,"tags":539,"title":541},{"avatar":5,"name":181,"slug":443},"2026-05-01",{"alt":535,"assetId":536,"caption":5,"crop":5,"height":501,"hotspot":5,"lqip":537,"width":503},"THORChain's State of the Network: April 2026","image-da6743bc2df05b0ee4fd7a59fcf6ce59776f4a0b-1324x745-jpg","data:image\u002Fjpeg;base64,\u002F9j\u002F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\u002F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\u002FwAARCAALABQDASIAAhEBAxEB\u002F8QAGAAAAgMAAAAAAAAAAAAAAAAAAAYCBQf\u002FxAAkEAACAQIGAQUAAAAAAAAAAAABAgMABAUGERIhQRMVIjJRYf\u002FEABYBAQEBAAAAAAAAAAAAAAAAAAUBAv\u002FEABwRAAICAgMAAAAAAAAAAAAAAAEDAAIRQRIUUf\u002FaAAwDAQACEQMRAD8AwSfCrLwh\u002FUEEhHxI7qxy5liO5hkvLmaJrWNwh2tyxP1S5iMaoy7RprU7S4mjTYkjKp6B4rYIGoc9bbKxS+I9vl6ztXaKY+4HUc9UUui5mYamVif00VOQ8g\u002FXftk\u002F\u002F9k=","state-of-the-network-april",[540],{"name":455,"slug":455},"State of the Network - April",{"author":543,"date":547,"image":548,"score":451,"slug":553,"tags":554,"title":556},{"avatar":544,"name":545,"slug":546},{"alt":411,"assetId":412,"caption":5,"crop":5,"height":413,"hotspot":5,"lqip":414,"width":413},"THORChain Author","thorchain-author","2022-10-21",{"alt":20,"assetId":549,"caption":5,"crop":5,"height":550,"hotspot":5,"lqip":551,"width":552},"image-817acced78c29812b911fdd5882bcd0d9b2bcd37-800x450-jpg",450,"data:image\u002Fjpeg;base64,\u002F9j\u002F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\u002F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\u002FwAARCAALABQDASIAAhEBAxEB\u002F8QAFwAAAwEAAAAAAAAAAAAAAAAAAAEFB\u002F\u002FEAB4QAQABBAIDAAAAAAAAAAAAAAECAAMEERIhMVFh\u002F8QAFQEBAQAAAAAAAAAAAAAAAAAAAAT\u002FxAAaEQACAgMAAAAAAAAAAAAAAAAAARESAkFR\u002F9oADAMBAAIRAxEAPwDMXFxSMSEQ1980ruFBtkyGhlpfdRcm\u002FchGHGaUsXPyiXAvT4y7SrpSIKt7LDi2RTZ1RU+FyaKyVXa0UkUy6f\u002FZ",800,"thorchain-ecosystem-update",[555],{"name":455,"slug":455},"THORChain Ecosystem Update",{"author":558,"date":560,"image":561,"score":451,"slug":565,"tags":566,"title":568},{"avatar":559,"name":545,"slug":546},{"alt":411,"assetId":412,"caption":5,"crop":5,"height":413,"hotspot":5,"lqip":414,"width":413},"2021-12-21",{"alt":20,"assetId":562,"caption":5,"crop":5,"height":563,"hotspot":5,"lqip":564,"width":552},"image-8427216eb1cba292d3e662e033541dad5ddab801-800x350-png",350,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAIAAAC9o5sfAAAACXBIWXMAAAsTAAALEwEAmpwYAAACBklEQVR4nAXBaU\u002FaYAAA4CZKKayFQmkrbSnlBXoB5epBD6BcsskhFEFjNhVxus2ZmGnMsu\u002FLzL5s+8d7Hkh3W75rH7nexPUOLdut1GoFWQWKXNAKQBM4iaF5mmBogk2T3AHB0kmWwBkUTSEIBtlOa+g4c6+z6PRmnj80XK\u002FesuqOafQt+6hhjGSpKWRljiummXyK5BN4GkNTESQO70ehTq0+apqb3uBusfwUrK\u002Fmq9PJajk9DYKL9dndbLXrDpaGPdIa7aJisNkSQeUwjETCsdB+BLLlUr+q3x4f\u002F336+ufb\u002Ffftxc367Hxzebl7uPryElw\u002F9oKtM96Y3Wmp0QGSzgrlJMlHowkYRqEaEG1Vu55O\u002Fj3fv97vdvPJtDsYj5cnu8cPP37Pnn7qJ59LfqCYI6CaHKgyQpmgc1GUgGEMkjOgAqSJ5z+8P79dn7z1uq16y7R6g2C7eXmdPv+qzbdFayw3e2LVBaoJFD0DyjjBwkgcyqX5YiZvN+zF0fFsPPEd3zE7hum3urPD04+DzU2t\u002FU5ttht2X3eHdatXabYVzTpg8+EIDqWTNEdxIlC1ilkp67JYlaR6QWrkZV3WbLFs8DmFy4p8XskWSjxQmYxIMyCOH4RgDEqgCRKnaTJD0wJF5QhSSKaEBCngVBaneJxgYnEKjZFRNBVBCeRNEonE4TAWCkX39pD\u002FfpZoGZwQ7SkAAAAASUVORK5CYII=","dev-update-120-121",[567],{"name":455,"slug":455},"Dev Update #120-#121",{"author":570,"date":572,"image":573,"score":451,"slug":578,"tags":579,"title":581},{"avatar":571,"name":415,"slug":416},{"alt":411,"assetId":412,"caption":5,"crop":5,"height":413,"hotspot":5,"lqip":414,"width":413},"2021-02-08",{"alt":20,"assetId":574,"caption":5,"crop":5,"height":575,"hotspot":5,"lqip":576,"width":577},"image-234d6a8dc74e0630ccbf2d26e3acd5bc81fdeabd-2000x1284-webp",1284,"data:image\u002Fjpeg;base64,\u002F9j\u002F2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj\u002F2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj\u002FwAARCAANABQDASIAAhEBAxEB\u002F8QAGAAAAwEBAAAAAAAAAAAAAAAAAAIEAwf\u002FxAAfEAACAgEEAwAAAAAAAAAAAAABAgARIQMEEjJBUWH\u002FxAAWAQEBAQAAAAAAAAAAAAAAAAACAAH\u002FxAAWEQEBAQAAAAAAAAAAAAAAAAAAARH\u002F2gAMAwEAAhEDEQA\u002FAOG7gkKWuz9kquWIzk+Kl+uoK5mDKnJaBv2TcVC0hd77GEYiEsY\u002F\u002F9k=",2000,"thorchain-multichain-testnet-live",[580],{"name":455,"slug":455},"THORChain Multichain Testnet Live",{"author":583,"date":586,"image":587,"score":451,"slug":591,"tags":592,"title":594},{"avatar":584,"name":181,"slug":585},{"alt":411,"assetId":412,"caption":5,"crop":5,"height":413,"hotspot":5,"lqip":414,"width":413},"thorchain","2020-05-07",{"alt":20,"assetId":588,"caption":5,"crop":5,"height":589,"hotspot":5,"lqip":590,"width":552},"image-abb86f3a59098e7f77ad0c9f310e89546e0b02a7-800x407-png",407,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAABVUlEQVR4nHWRWY\u002FCMAyE+f9\u002FjTeeANEqbekBTQ+ucuPVNyjVVqut5NpOnLFnPPt8Pna\u002F360oCluv15amqeLtdiuPZVlmeZ7LOC\u002FLUufU5nlup9PJ3u+38c0AvF6vKtxsNrbf761pGj36\u002FTBJEplzTjn1xM456\u002Ft+Cni73cbH5\u002FNZE+O992qAD5PSdLVaKd\u002FtdmrCAM\u002Fn08ASIMnxeJSFCzygnMEAWjxkuiiKrK5rOxwOVlWVdV1nr9frC8iYJJfLRQWADMMgI8a4C+CABjDyrutUO6EMRSgvl0t1R59MSyk1AfSkaVFqCcScE1dVpWZ\u002FNESL+Xxui8XCnEssimNL0kwaohUgWfrVMI5jNQ3W971YjoDo1batNobwxN431jTtSB96vvYCgwWNAAr0JxoGUCbFHo\u002FHxFhK2HzYNmDUcsb9SFn\u002Ff76gL9PhAWApTAcQU2EBDMAfg1H39iy+1eAAAAAASUVORK5CYII=","update-on-operational-reserve",[593],{"name":455,"slug":455},"Update on Operational Reserve","Related articles",{"description":433,"externalCanonicalUrl":5,"noFollow":163,"noIndex":163,"ogImage":597,"ogLocale":5,"ogSiteName":5,"ogTitle":5,"ogType":426,"structuredContent":5,"title":598,"titleTemplate":5,"twitterCard":428,"twitterCreator":599,"twitterDescription":600,"twitterImage":601,"twitterSite":431,"twitterTitle":603},{"alt":433,"height":5,"type":5,"url":5,"width":5},"A technical deep dive into the May 2026 THORChain exploit.","@sodabubblelabs","A technical deep dive into the May 2026 THORChain exploit, explaining how the vulnerability was executed and how it was mitigated.\n",{"alt":433,"height":435,"type":423,"url":602,"width":437},"https:\u002F\u002Fcdn.sanity.io\u002Fimages\u002F355nlzcp\u002Fproduction\u002Fc7b11fad99b879ce58de6a53cff7da5ba2ef2958-1530x861.png","THORChain Exploit Report #3",{"alt":433,"height":435,"type":423,"url":602,"width":437},[606,1839],{"_key":607,"_type":608,"backgroundColor":5,"disabled":163,"sliceId":5,"text":609,"withMargins":10},"c5249bc84744","wysiwygSlice",[610,622,657,665,675,683,690,698,706,713,720,727,734,741,749,757,764,771,779,787,795,803,811,819,827,834,842,850,858,866,874,882,890,898,905,912,919,926,934,943,951,959,967,975,982,990,998,1006,1015,1023,1031,1039,1047,1055,1064,1072,1080,1088,1096,1104,1112,1120,1128,1136,1144,1152,1160,1168,1176,1184,1192,1200,1208,1216,1224,1240,1256,1272,1279,1287,1295,1303,1311,1319,1327,1335,1343,1351,1359,1367,1375,1383,1391,1399,1407,1414,1421,1428,1435,1443,1450,1457,1464,1472,1480,1488,1496,1504,1512,1524,1532,1540,1548,1560,1568,1576,1584,1592,1600,1608,1616,1624,1632,1640,1648,1656,1664,1672,1680,1688,1696,1704,1712,1720,1728,1736,1744,1752,1760,1767,1774,1781,1788,1796,1808,1820,1832],{"_key":611,"_type":612,"children":613,"markDefs":620,"style":621},"00c7004573b3","block",[614],{"_key":615,"_type":616,"marks":617,"text":619},"d5dc2eb09323","span",[618],"em","Note: This report was prepared by THORSec.",[],"normal",{"_key":623,"_type":612,"children":624,"markDefs":647,"style":621},"af67f1277ecd",[625,629,634,638,643],{"_key":626,"_type":616,"marks":627,"text":628},"a61cc00fcd41",[],"This is a deep technical explanation of the exploit used in THORChain’s May 15th attack. It is meant to be an addendum to the previously published ",{"_key":630,"_type":616,"marks":631,"text":633},"263b93c4e92c",[632],"3a7d83b1cc7f","report #1",{"_key":635,"_type":616,"marks":636,"text":637},"e3a48252d61d",[]," and ",{"_key":639,"_type":616,"marks":640,"text":642},"772fe4b7af0f",[641],"4e49e85ab315","report #2",{"_key":644,"_type":616,"marks":645,"text":646},"b502e58476f8",[],". This report is for the technically savvy reader who wishes to gain a more profound understanding of the cryptography surrounding the attack. In this article, we will describe what parts of our implementation were vulnerable, how the vulnerability was exploited, and finally, how the vulnerabilities have been mitigated in a way that would prevent this family of exploits from getting executed on THORChain again.",[648,654],{"_key":632,"_type":649,"link":650},"custom-link",{"anchor":5,"getParameters":5,"isInternal":10,"openInNewTab":5,"page":651,"title":5},{"slug":652,"type":653},"thorchain-exploit-report-1","article",{"_key":641,"_type":649,"link":655},{"anchor":5,"getParameters":5,"isInternal":10,"openInNewTab":5,"page":656,"title":5},{"slug":492,"type":653},{"_key":658,"_type":612,"children":659,"markDefs":664,"style":621},"d6f3ff12a52c",[660],{"_key":661,"_type":616,"marks":662,"text":663},"6d4bb224f649",[],"No cryptographic background is required to understand this publication, and only a basic understanding of math. To make it accessible, most of the examples have been simplified enough to reason about the exploit without excluding readers who do not have any background in cryptography. We aim to provide real intuition about the security provided by theoretical cryptography, as well as the vulnerabilities in the way that cryptography was implemented in version 0.1.6 of the tss-lib that THORChain was using at the time of the attack.",[],{"_key":666,"_type":612,"children":667,"markDefs":673,"style":674},"fb100ce610bf",[668],{"_key":669,"_type":616,"marks":670,"text":672},"b9b92761174e",[671],"strong","Some Background",[],"h2",{"_key":676,"_type":612,"children":677,"markDefs":682,"style":621},"92a1d6ad37bc",[678],{"_key":679,"_type":616,"marks":680,"text":681},"5c9ab72c9cc2",[],"In order to sign transactions, THORChain’s validators use a process called TSS or “Threshold Signature Scheme.” What this means in short is that the way a signature is formed has to involve a threshold of peers. THORChain uses a roughly two-thirds TSS threshold. This is similar in purpose to the supermajority used in BFT consensus, although the exact rules differ: an 18-node TSS committee requires 12 signers, while BFT consensus would require more than two-thirds of the voting power. Under TSS, signatures are computed in a distributed manner, no number of validators below the threshold can form a signature themselves. ",[],{"_key":684,"_type":612,"children":685,"markDefs":689,"style":621},"d04a8e1d52ab",[686],{"_key":679,"_type":616,"marks":687,"text":688},[],"What happens, though, if those keyshares used by validators are somehow leaked? This is where the economic security model breaks. If enough key shares (⅔) fall into a single entity’s hands, that entity can now recombine them to form the key and essentially have access to all the funds secured by that vault on addresses derived from it.",[],{"_key":691,"_type":612,"children":692,"markDefs":697,"style":674},"c42e807921f9",[693],{"_key":694,"_type":616,"marks":695,"text":696},"ea50b27c819f",[671],"Generating Keyshares",[],{"_key":699,"_type":612,"children":700,"markDefs":705,"style":621},"42209cb0ac50",[701],{"_key":702,"_type":616,"marks":703,"text":704},"b600f41e9019",[],"In general terms, TSS is part of a wider family of cryptographic algorithms called MPC, or Multi-Party Computation. ",[],{"_key":707,"_type":612,"children":708,"markDefs":712,"style":621},"9c6515d7706a",[709],{"_key":702,"_type":616,"marks":710,"text":711},[],"These algorithms solve the problem of making a shared calculation without any participants learning the other participants' secrets, and not even the final result. ",[],{"_key":714,"_type":612,"children":715,"markDefs":719,"style":621},"8bcf9e8de51e",[716],{"_key":702,"_type":616,"marks":717,"text":718},[],"In the current protocol, each vault needs to have unique cryptographic keys. Those keys are used to compute (derive) all the keys to all the accounts\u002Faddresses\u002Futxos that hold the vault’s funds on each of the chains it bridges. ",[],{"_key":721,"_type":612,"children":722,"markDefs":726,"style":621},"3ec4846466b0",[723],{"_key":702,"_type":616,"marks":724,"text":725},[],"Most funds use addresses derived from an ECDSA “master” key, and that would be the key we will focus on in this article. Other chains like Solana and (pretty soon also) Monero use a slightly different key that has no mathematical relationship with the ECDSA “Master key.”Because the Master key is derived via MPC, it does not really “physically” exist on any system. ",[],{"_key":728,"_type":612,"children":729,"markDefs":733,"style":621},"c37b2a1e742f",[730],{"_key":702,"_type":616,"marks":731,"text":732},[],"If we were to represent the key as a sequence of bits, no system in the world should have that sequence at any given point in time. What does exist are parts of the key, (those “keyshares” we mentioned earlier) that are distributed among each of the validator nodes in that vault. ",[],{"_key":735,"_type":612,"children":736,"markDefs":740,"style":621},"2df2bbcbca17",[737],{"_key":702,"_type":616,"marks":738,"text":739},[],"The process of generating the shares that correspond to the actual key is what we refer to as “keygen,” although no key is actually “physically” generated. We will not go into the actual cryptography used to generate those shares in a way that enables the threshold property. Just keep in mind that the process of keygen is performed once per vault-churn, meaning that the “ephemeral key” is only used to sign transactions (ideally) for a 3-day interval.",[],{"_key":742,"_type":612,"children":743,"markDefs":748,"style":674},"8b92b8316ab4",[744],{"_key":745,"_type":616,"marks":746,"text":747},"1871ea81e88b",[671],"The Flawed Stage of Signature Generation",[],{"_key":750,"_type":612,"children":751,"markDefs":756,"style":621},"a34229dbe1d7",[752],{"_key":753,"_type":616,"marks":754,"text":755},"3d7df7f09ea2",[],"The process of using these keyshares for signing transactions is also too complex mathematically to explain even in this deep technical dive. ",[],{"_key":758,"_type":612,"children":759,"markDefs":763,"style":621},"124bfb96e5c0",[760],{"_key":753,"_type":616,"marks":761,"text":762},[],"But the crux of the exploit lies in a single operation, which we will explain, without using too much math. In order to generate a “distributed” signature, each of the validators needs to perform mathematical operations on the message the vault is signing. ",[],{"_key":765,"_type":612,"children":766,"markDefs":770,"style":621},"084a235a1e9f",[767],{"_key":753,"_type":616,"marks":768,"text":769},[],"These operations need to be performed with every other peer in the committee. If a vault has 18 validators, ⅔ of them are 12, and each validator on the committee has to perform a mathematical operation with 11 other validators during each signature. The specific type of mathematical operation is called MtA or “Multiplicative to Additive.”",[],{"_key":772,"_type":612,"children":773,"markDefs":778,"style":621},"0594b51d2dd4",[774],{"_key":775,"_type":616,"marks":776,"text":777},"86fababc807d",[],"Lets do a quick example for the numbers 3 and 19:",[],{"_key":780,"_type":612,"children":781,"markDefs":786,"style":621},"2c29843ce51f",[782],{"_key":783,"_type":616,"marks":784,"text":785},"0b10e463af09",[],"3X19 = 57",[],{"_key":788,"_type":612,"children":789,"markDefs":794,"style":621},"cee3931379cc",[790],{"_key":791,"_type":616,"marks":792,"text":793},"36e12ba90548",[],"That 57 can be broken apart into two additive numbers simply by subtracting any number from it. For example:",[],{"_key":796,"_type":612,"children":797,"markDefs":802,"style":621},"47b8e1bd38b9",[798],{"_key":799,"_type":616,"marks":800,"text":801},"90bf232f859c",[],"57 - 40 = 17.",[],{"_key":804,"_type":612,"children":805,"markDefs":810,"style":621},"9f3382adebb0",[806],{"_key":807,"_type":616,"marks":808,"text":809},"27afeef095c7",[],"Ideally what we want to have is two numbers, one for each of the two peers, that their sum equals the product of their two secrets:",[],{"_key":812,"_type":612,"children":813,"markDefs":818,"style":621},"1287e6685eca",[814],{"_key":815,"_type":616,"marks":816,"text":817},"430f5001490f",[],"40 + 17 = 19 X 3",[],{"_key":820,"_type":612,"children":821,"markDefs":826,"style":621},"315d37bf2f8c",[822],{"_key":823,"_type":616,"marks":824,"text":825},"53dd11c3153b",[],"So how does a validator do MtA with another validator without any of them exposing their secret? To solve this problem, the TSS algorithm GG20 (used by THORChain at the time of the attack) relies on a cryptographic scheme called “partial homomorphic encryption.” Homomorphic encryption allows calculations to be performed on encrypted values without decrypting them. Fully homomorphic encryption supports both addition and multiplication of compatible encrypted values. For example: encrypted 3 X encrypted 5 = encrypted 15. ",[],{"_key":828,"_type":612,"children":829,"markDefs":833,"style":621},"9c63d6a88076",[830],{"_key":823,"_type":616,"marks":831,"text":832},[],"GG20 uses only a partially homomorphic encryption scheme called “Paillier.” With this scheme Bob (honest participant B) can multiply Alice’s (honest participant A) encrypted number by his own unencrypted number, producing an encrypted product. For example:encrypted 3 X 5 = encrypted 15.",[],{"_key":835,"_type":612,"children":836,"markDefs":841,"style":621},"626bf5f9a7a3",[837],{"_key":838,"_type":616,"marks":839,"text":840},"a51e7198dbee",[],"Bob then adds a large random number (called a “mask”) before Alice decrypts it. That mask prevents Alice from learning Bob’s number. We can think of this encryption as some sort of box that allows us to put our value in it, send it to our peers, and have them perform some math on it without them knowing our key or the result (it’s encrypted with our key). Our peers can send the encrypted result back to us so we can decrypt it. In practice with our overly simplistic toy example:Alice sends her encrypted 4: enc(4)Bob just sees a blob, but he can multiply it with his own number: 23 X enc(4) = enc(92)",[],{"_key":843,"_type":612,"children":844,"markDefs":849,"style":621},"4e2109b0ee68",[845],{"_key":846,"_type":616,"marks":847,"text":848},"7998ac16da12",[],"Bob still sees only a blob, but now he chooses some random number (let’s say 11) and adds it to the blob using the same type of partial homomorphic arithmetic: enc(92) + 11 = enc(103).Bob then sends Alice the blob back, she decrypts it with her key and gets 103.",[],{"_key":851,"_type":612,"children":852,"markDefs":857,"style":621},"bac2f4b308b8",[853],{"_key":854,"_type":616,"marks":855,"text":856},"61c7469a0573",[],"Now each of them has a number, and these numbers' sums are equal to the product of the two secrets (103 and -11) without either of them knowing or even being able to guess the actual secret the other one has.",[],{"_key":859,"_type":612,"children":860,"markDefs":865,"style":621},"4d715d9b5b6c",[861],{"_key":862,"_type":616,"marks":863,"text":864},"cf1bb85c20ac",[],"Don't be tempted to try and guess the numbers in this toy example. In reality, these numbers are huge 256-bit numbers, so trying to brute force the secret would take longer than the presumed age of the universe by 10^32.",[],{"_key":867,"_type":612,"children":868,"markDefs":873,"style":621},"e95adca3bba2",[869],{"_key":870,"_type":616,"marks":871,"text":872},"9413692f9cae",[],"In order for this partially homomorphic encryption to work, Bob has to have Alice’s public Paillier key (it’s better to think of a public asymmetric key as a lock, “I give you a lock to lock something with, so only I can unlock it because I am the only one who holds the lock’s key”). That’s the only way he can perform the MtA homomorphically with Alice. The entire attack circled around breaking this “lock” to see what’s inside.",[],{"_key":875,"_type":612,"children":876,"markDefs":881,"style":621},"aa9f6f3d6d33",[877],{"_key":878,"_type":616,"marks":879,"text":880},"74f628db8183",[],"To clarify, the attacker did not break Paillier’s scheme, which is proven to be impossible with today’s compute capabilities in any reasonable amount of time. The reason the attacker could take peeks into that locked box is because of a flaw in how the scheme was coded, as is the case with the vast majority of cryptographic attacks. We will now take a closer look at the implementation and how the attacker was able to use its gaps to reconstruct the key.",[],{"_key":883,"_type":612,"children":884,"markDefs":889,"style":674},"15026bbbb984",[885],{"_key":886,"_type":616,"marks":887,"text":888},"9daaca724bd3",[671],"The Paillier Co-Prime Modulus Vulnerability",[],{"_key":891,"_type":612,"children":892,"markDefs":897,"style":621},"9dc7e0182f24",[893],{"_key":894,"_type":616,"marks":895,"text":896},"e4577a3bae85",[],"The first step was to be selected as part of the quorum that performs the keygen ritual for a given vault, or in other words, getting “churned in.” ",[],{"_key":899,"_type":612,"children":900,"markDefs":904,"style":621},"486717120c96",[901],{"_key":894,"_type":616,"marks":902,"text":903},[],"While participating, each validator is required to generate their own share locally. Along with the keyshare, the validator also generates its own Paillier asymmetric key pair. The reason this key is generated once in the beginning of the churn is not cryptographic, as the Paillier key has no relationship to the keyshare. The actual reason is just the sheer difficulty of the operation which makes it time intensive. ",[],{"_key":906,"_type":612,"children":907,"markDefs":911,"style":621},"22973faff415",[908],{"_key":894,"_type":616,"marks":909,"text":910},[],"For a Paillier public key to be valid, it must be composed of exactly 2 prime numbers, each approximately 1024 bits in size. The two large prime numbers are the private key. Finding such numbers has to happen randomly (otherwise the key would be predictable). The process involves randomly choosing huge numbers and then running tests to check if they are primes. This process continues until two primes roughly the same size are found, and it can take up to a few minutes.",[],{"_key":913,"_type":612,"children":914,"markDefs":918,"style":621},"de0a420594c1",[915],{"_key":894,"_type":616,"marks":916,"text":917},[],"During keygen each node sends its Paillier public key to every other peer, and it gets recorded in the local state file for each of the peers on the vault. ",[],{"_key":920,"_type":612,"children":921,"markDefs":925,"style":621},"570b2512c47a",[922],{"_key":894,"_type":616,"marks":923,"text":924},[],"The first weakness the attacker exploited was that validators performed only a partial correctness check on the Paillier public key (N). ",[],{"_key":927,"_type":612,"children":928,"markDefs":933,"style":621},"c302958709e4",[929],{"_key":930,"_type":616,"marks":931,"text":932},"37bfa7f8b64c",[],"The check had three parts:",[],{"_key":935,"_type":612,"children":936,"level":451,"listItem":941,"markDefs":942,"style":621},"b2ed9885b663",[937],{"_key":938,"_type":616,"marks":939,"text":940},"c616e5a6c50e",[],"N had to be exactly 2048 bits.","bullet",[],{"_key":944,"_type":612,"children":945,"level":451,"listItem":941,"markDefs":950,"style":621},"a8e0eb18c877",[946],{"_key":947,"_type":616,"marks":948,"text":949},"0bb7e7eaa25d",[],"N could not be divisible by any of the first 168 primes—the primes below 1000.",[],{"_key":952,"_type":612,"children":953,"level":451,"listItem":941,"markDefs":958,"style":621},"5ebbd1df0833",[954],{"_key":955,"_type":616,"marks":956,"text":957},"484dead35f9d",[],"N had to pass a 13-round proof designed to reject moduli containing repeated prime factors.",[],{"_key":960,"_type":612,"children":961,"markDefs":966,"style":621},"e371a06f42ef",[962],{"_key":963,"_type":616,"marks":964,"text":965},"4a0f34b1070d",[],"Crucially, this proof did not establish that N contained exactly two prime factors. A carefully constructed modulus containing more than two distinct primes, each above 997, could therefore pass all three checks. That is, in fact, exactly what happened.The attacker used 17 prime numbers (and one large prime), each about 17 bits, to construct his Paillier key in a way that enabled them to “peek” into the locked box. ",[],{"_key":968,"_type":612,"children":969,"markDefs":974,"style":621},"b9bb28d3b274",[970],{"_key":971,"_type":616,"marks":972,"text":973},"44dd6a0511d7",[],"To answer the question of “How does having a Paillier key composed out of small coprimes allow the attacker to leak other participants’ secrets?” we must delve a bit deeper.",[],{"_key":976,"_type":612,"children":977,"markDefs":981,"style":621},"5e178eba48a5",[978],{"_key":971,"_type":616,"marks":979,"text":980},[],"A Paillier public key is basically just a modulus used to hide a value. If we imagine a modulus as a clock-like object (wrapping around every 12 hours), instead of having two huge clocks with an astronomical amount of digits, the attacker got his peers to “hide” their secret value using 17 small clocks. When the results on these “clocks” were cross-sectioned, they exposed the secret in a mathematically proven way. In our toy example, we left the modulus out because it is normally huge and rarely has any effect on the resulting encryption. We will include it in the next.",[],{"_key":983,"_type":612,"children":984,"markDefs":989,"style":621},"9aafffc89159",[985],{"_key":986,"_type":616,"marks":987,"text":988},"99383604cd4d",[],"The mathematically proven way to expose the secret values is called “the Chinese Remainder Theorem” or CRT. It got that name because it was discovered in 3rd-century AD China by a mathematician\u002Fphilosopher named Sunzi (later romanized into Sun Tzu), not to be confused with the military strategist with the same name who lived 800 years prior.",[],{"_key":991,"_type":612,"children":992,"markDefs":997,"style":621},"572273c1a900",[993],{"_key":994,"_type":616,"marks":995,"text":996},"a97b01aeb403",[],"What the theorem states is that if you know a number’s remainders after dividing by several primes, those remainders together point to exactly one number, assuming that the number is smaller than the primes multiplied together. That is precisely what the attacker got when they issued their compromised Paillier public key that was composed of 17 small prime numbers (plus one massive prime that is less relevant to the following explanation).",[],{"_key":999,"_type":612,"children":1000,"markDefs":1005,"style":621},"a0003c7daa5e",[1001],{"_key":1002,"_type":616,"marks":1003,"text":1004},"ab36df2a95a3",[],"To get some sort of intuition about it, let’s use the previous toy example, but this time, the peer who Bob thinks is Alice is in fact Mallory (malicious participant):",[],{"_key":1007,"_type":612,"children":1008,"markDefs":1014,"style":621},"39a1c10895f6",[1009],{"_key":1010,"_type":616,"marks":1011,"text":1013},"b211e2f0041b",[1012],"underline","Initial setup (keygen ritual)",[],{"_key":1016,"_type":612,"children":1017,"markDefs":1022,"style":621},"248ca5586ade",[1018],{"_key":1019,"_type":616,"marks":1020,"text":1021},"c5f33e6cd092",[],"Mallory (the attacker) publishes a malicious Paillier modulus: N = 3 × 5 × 7 = 105. Bob’s secret is: x = 23.",[],{"_key":1024,"_type":612,"children":1025,"markDefs":1030,"style":621},"bf528fbc4d56",[1026],{"_key":1027,"_type":616,"marks":1028,"text":1029},"cf419ee7802a",[],"Now Bob holds Mallory’s compromised Paillier public key.",[],{"_key":1032,"_type":612,"children":1033,"markDefs":1038,"style":621},"a41566c50339",[1034],{"_key":1035,"_type":616,"marks":1036,"text":1037},"18c7a6f34830",[1012],"Attack (keysign ritual)",[],{"_key":1040,"_type":612,"children":1041,"markDefs":1046,"style":621},"e768ae6881a6",[1042],{"_key":1043,"_type":616,"marks":1044,"text":1045},"f2b976b6d344",[],"In the MtA round (2nd of the 7 total rounds), Mallory does not send her actual secret, instead, she calculates a number that is her N divided by one of its factors, like: k = 105\u002F3 = 35.",[],{"_key":1048,"_type":612,"children":1049,"markDefs":1054,"style":621},"c71ede64c790",[1050],{"_key":1051,"_type":616,"marks":1052,"text":1053},"c2fb944a105b",[],"She sends her malicious “secret,” and Bob performs the partially homomorphic calculations with it and her N:",[],{"_key":1056,"_type":612,"children":1057,"markDefs":1062,"style":1063},"5f6361375c19",[1058],{"_key":1059,"_type":616,"marks":1060,"text":1061},"013d308a3fc6",[671],"First Keysign Ritual",[],"h3",{"_key":1065,"_type":612,"children":1066,"markDefs":1071,"style":621},"45c390d2c623",[1067],{"_key":1068,"_type":616,"marks":1069,"text":1070},"404a125ad95d",[],"Mallory chooses k = 105 \u002F 3 = 35 (divides by the first coprime of her malicious key). Suppose Bob chooses a mask of 11 like before. Bob returns: (35 * 23 + 11) mod 105 = 81. Mallory calculates: 81 mod 35 = 11 (this is the mask). Mallory removes the mask: (81 - 11) = 70",[],{"_key":1073,"_type":612,"children":1074,"markDefs":1079,"style":621},"71fb32831686",[1075],{"_key":1076,"_type":616,"marks":1077,"text":1078},"753509976aa4",[],"And divided by her malicious “secret”: 70 \u002F 35 = 2. Now Mallory knows that Bob’s secret mod 3 (her first coprime) = 2.",[],{"_key":1081,"_type":612,"children":1082,"markDefs":1087,"style":621},"7aeb530f984f",[1083],{"_key":1084,"_type":616,"marks":1085,"text":1086},"9b35324f1300",[],"She does not yet know it’s 23, although 23 mod 3 is indeed 2, but there are plenty of other candidates under 105:",[],{"_key":1089,"_type":612,"children":1090,"markDefs":1095,"style":621},"efff2438d991",[1091],{"_key":1092,"_type":616,"marks":1093,"text":1094},"f76d943cc7e5",[],"2, 5, 8, 11, 14, 17, 20, 23, 26, 29... That’s too many to guess, Mallory needs more information.",[],{"_key":1097,"_type":612,"children":1098,"markDefs":1103,"style":1063},"25ab4cb90281",[1099],{"_key":1100,"_type":616,"marks":1101,"text":1102},"fbd3134493fe",[671],"Second Keysign Ritual",[],{"_key":1105,"_type":612,"children":1106,"markDefs":1111,"style":621},"9e993ac79f1d",[1107],{"_key":1108,"_type":616,"marks":1109,"text":1110},"cc65c0e1acfa",[],"Mallory chooses k = 105 \u002F 5 = 21 (divides by the second coprime of her malicious key). Suppose Bob chooses a mask of 8 this time (it’s a random different mask every time). Bob returns: (21 * 23 + 8) mod 105 = 71. Mallory calculates: 71 mod 21 = 8 (the mask). Mallory removes the mask: (71 - 8) \u002F 21 = 3. Result: x mod 5 = 3.",[],{"_key":1113,"_type":612,"children":1114,"markDefs":1119,"style":621},"fda1d0e023da",[1115],{"_key":1116,"_type":616,"marks":1117,"text":1118},"032fbc779c98",[],"Now Mallory has additional information, she knows x mod 3 = 2 and that x mod 5 = 3, so she can narrow down the list to:8, 23, 38, 53, 68, 83, 98... All satisfy both modulus conditions and are under 105. But the list is still very long (or let’s assume it is for our toy example).",[],{"_key":1121,"_type":612,"children":1122,"markDefs":1127,"style":1063},"22a41056439b",[1123],{"_key":1124,"_type":616,"marks":1125,"text":1126},"49e461c03e17",[671],"Third Keysign Ritual",[],{"_key":1129,"_type":612,"children":1130,"markDefs":1135,"style":621},"5b9c697b1611",[1131],{"_key":1132,"_type":616,"marks":1133,"text":1134},"11cbaaff2743",[],"Mallory chooses k = 105 \u002F 7 = 15. (divides by the third coprime of her malicious key). Suppose Bob chooses a mask of 6. Bob returns: (15 * 23 + 6) mod 105 = 36. Mallory calculates: 36 mod 15 = 6 (the mask). Mallory removes the mask: (36 - 6) \u002F 15 = 2. Result: x mod 7 = 2.",[],{"_key":1137,"_type":612,"children":1138,"markDefs":1143,"style":621},"708880b9044e",[1139],{"_key":1140,"_type":616,"marks":1141,"text":1142},"fbb863fc8891",[],"With this 3rd condition, there is exactly one number that satisfies all modulus and is under 105, and it is 23 - Bob’s actual secret!",[],{"_key":1145,"_type":612,"children":1146,"markDefs":1151,"style":621},"eb61825e0fef",[1147],{"_key":1148,"_type":616,"marks":1149,"text":1150},"2b6a6b35d2a5",[],"Each of these keysign rituals allows Mallory to take one “peek” in the locked “box” of all the participants, with enough peeks, she can infer the key.",[],{"_key":1153,"_type":612,"children":1154,"markDefs":1159,"style":621},"e7100a195514",[1155],{"_key":1156,"_type":616,"marks":1157,"text":1158},"bb8e6caf370d",[],"In actuality, these numbers would have been huge, and the attacker would have needed around 16 keysign rituals to extract a peer’s share. That, of course, was not a problem since THORChain signs thousands of transactions during the course of a single churn. Additionally, each keysign round has validators performing MtA with every other validator on the committee (13 nodes for a 19 validator vault). Granted, not every committee has the exact same set of validators on it, so it could take longer than 16 keysigns under normal conditions. But the attacker did a clever trick, they deliberately failed the next round (3rd) of the TSS keysign ritual and got the vault members to retry signing the same transaction, effectively getting multiple MtA rounds on the same signature.",[],{"_key":1161,"_type":612,"children":1162,"markDefs":1167,"style":621},"e16e84462141",[1163],{"_key":1164,"_type":616,"marks":1165,"text":1166},"d58b02c7db38",[],"We can also see why the attacker’s compromised key would not have failed THORChain’s correctness checks: There is no problem for them to pre-compute a compromised Paillier key, which was composed of small coprimes. The key they computed was composed of 17 primes, 17 bits each, along with an 18th prime 1776 bits in size (let’s call it Q):65537, 65539, 65543, 65551, 65557, 65563, 65579, 65581, 65587, 65599, 65609, 65617, 65629, 65633, 65647, 65651, 65657 and Q. The product of these (N) was about 2048 bits in size.",[],{"_key":1169,"_type":612,"children":1170,"markDefs":1175,"style":621},"c3f9f4c7a4eb",[1171],{"_key":1172,"_type":616,"marks":1173,"text":1174},"984bd9732189",[],"Just to get an idea of how large those numbers are in relation to the small primes:Q = 3147237974619945196474823566094938793089473884388380531534315632292968897134016203785961363147483475477379664760276941347987548401776133662269888744401101917809083056502024301196785401046564000944457060042270350206320836845267270512611352035399470978581306366748396497081756326528999669260231924237566698364306564581203662592211915429313957642148683957456992114886215724758570247007604392039420646452938919388517439445323175778891476951536458127834954725516472435138069488759295307274866754188352213617764509199827102078761697389635819",[],{"_key":1177,"_type":612,"children":1178,"markDefs":1183,"style":621},"912a971af554",[1179],{"_key":1180,"_type":616,"marks":1181,"text":1182},"c7c5daf1d651",[],"N = 24237754553483255475536157516502463970333077002286613024097759070643491354150918169897901058642185097766538470691423514620589669362868190821316114289836212340473158025475747068812648312792239080097043228788050676207594163981964817121378570753857127852936234389027228782165681918655799356455664299342947789141435750042251256815513731089923427121142132026494741543558354244498269644531345235612693944648132837544457702788846393018198763364226234428302773209924965423420344263533115157293867826295198492602258906935492523451284497951263348710738281654446776237074088020620235910529662357721898290528008211173578839181893",[],{"_key":1185,"_type":612,"children":1186,"markDefs":1191,"style":621},"bc42c95b62ab",[1187],{"_key":1188,"_type":616,"marks":1189,"text":1190},"639cecec3bfe",[],"Fun fact about the numbers chosen: the composition of coprimes published by Fireblocks in 2023 was 16 coprimes of 16 bits in size (smaller than that and you need more attempts, larger than that and your fewer attempts increase in compute costs). The attacker used a list of small primes that started precisely one prime above 2¹⁶ (65536), so a trivial check of that range would have missed it.",[],{"_key":1193,"_type":612,"children":1194,"markDefs":1199,"style":674},"a5972900be55",[1195],{"_key":1196,"_type":616,"marks":1197,"text":1198},"471f15674a22",[671],"The “Leaky” Mask Vulnerability",[],{"_key":1201,"_type":612,"children":1202,"markDefs":1207,"style":621},"486d1d8373da",[1203],{"_key":1204,"_type":616,"marks":1205,"text":1206},"6e17e187a905",[],"Had the attacker only used the multiple co-primes Pailler public key (N), THORChain would not have been vulnerable to this attack despite the weak validation check. In the previous toy example we cheated a little bit, we made Bob choose very small masks (11, 8, and 6). If Bob had chosen 46 as his mask in the first example, the modulus would still be the same (11), and Mallory would not know if Bob’s mask was 46 or 11 (or 81, or any other number that follows 35X + 11), so she would not be able to properly subtract it. In the toy example, it was possible to just guess (brute force) the mask because there weren't a lot of options, but with real-world numbers, the sheer amount of possibilities would make this computation very unfeasible for the given amount of time.",[],{"_key":1209,"_type":612,"children":1210,"markDefs":1215,"style":621},"8980ad0184d1",[1211],{"_key":1212,"_type":616,"marks":1213,"text":1214},"1c2a2e285771",[],"“So, how did the attacker still manage to leak key information?”",[],{"_key":1217,"_type":612,"children":1218,"markDefs":1223,"style":621},"38f92f8217de",[1219],{"_key":1220,"_type":616,"marks":1221,"text":1222},"ec7ca3021e4c",[],"There was a second bug in the MtA phase. The second bug was in the way Bob proved he was using honest numbers. In order to prove to other participants he is using valid numbers in the output he is sending back, Bob attaches a mathematical expression to his response. The proof is “zero-knowledge”, meaning that it is tied to his numbers without revealing anything about them. The mathematical expression Bob uses to prove his mask is legitimate has 3 terms:",[],{"_key":1225,"_type":612,"children":1226,"markDefs":1239,"style":621},"18f261cd3f80",[1227,1231,1235],{"_key":1228,"_type":616,"marks":1229,"text":1230},"476db8b5366b",[],"1) ",{"_key":1232,"_type":616,"marks":1233,"text":1234},"83ccaf1c5efb",[1012],"The challenge",{"_key":1236,"_type":616,"marks":1237,"text":1238},"316e86d32493",[],": the result of a 256 hash function of a few of his cryptographic parameters (converted to an integer up to 256-bit large). This part is public.",[],{"_key":1241,"_type":612,"children":1242,"markDefs":1255,"style":621},"aeb8423de4ec",[1243,1247,1251],{"_key":1244,"_type":616,"marks":1245,"text":1246},"de6b176fb07c",[],"2) ",{"_key":1248,"_type":616,"marks":1249,"text":1250},"1ba45b3e3b5e",[1012],"His actual mask",{"_key":1252,"_type":616,"marks":1253,"text":1254},"7e37745ecd4a",[],".",[],{"_key":1257,"_type":612,"children":1258,"markDefs":1271,"style":621},"4976ae725aa1",[1259,1263,1267],{"_key":1260,"_type":616,"marks":1261,"text":1262},"3406dab7e578",[],"3) ",{"_key":1264,"_type":616,"marks":1265,"text":1266},"1273ec80056d",[1012],"Gamma",{"_key":1268,"_type":616,"marks":1269,"text":1270},"c6ad167f74e3",[],": some random value to hide the mask.",[],{"_key":1273,"_type":612,"children":1274,"markDefs":1278,"style":621},"85e2931f41fa",[1275],{"_key":1276,"_type":616,"marks":1277,"text":20},"25df9bb178be",[],[],{"_key":1280,"_type":612,"children":1281,"markDefs":1286,"style":621},"e94403afb0a5",[1282],{"_key":1283,"_type":616,"marks":1284,"text":1285},"c9ff4e7d6642",[],"It looks like this:",[],{"_key":1288,"_type":612,"children":1289,"markDefs":1294,"style":621},"848ca4e1072f",[1290],{"_key":1291,"_type":616,"marks":1292,"text":1293},"1fea94e94763",[],"Proof = challenge X mask + gamma",[],{"_key":1296,"_type":612,"children":1297,"markDefs":1302,"style":621},"3339f7d1a9ec",[1298],{"_key":1299,"_type":616,"marks":1300,"text":1301},"7753f5b21ece",[],"Let’s use a toy example:",[],{"_key":1304,"_type":612,"children":1305,"markDefs":1310,"style":621},"7df2a7ddf3fa",[1306],{"_key":1307,"_type":616,"marks":1308,"text":1309},"eb750e1fb930",[],"Challenge: 100",[],{"_key":1312,"_type":612,"children":1313,"markDefs":1318,"style":621},"5a82797c6847",[1314],{"_key":1315,"_type":616,"marks":1316,"text":1317},"b8ee8e3c20bb",[],"Mask: 46",[],{"_key":1320,"_type":612,"children":1321,"markDefs":1326,"style":621},"333d4818be98",[1322],{"_key":1323,"_type":616,"marks":1324,"text":1325},"54808427cd02",[],"Gamma: 35,000",[],{"_key":1328,"_type":612,"children":1329,"markDefs":1334,"style":621},"b5021df031f6",[1330],{"_key":1331,"_type":616,"marks":1332,"text":1333},"3c6c2c2062ee",[],"We get 100 X 46 + 35000 = 39600",[],{"_key":1336,"_type":612,"children":1337,"markDefs":1342,"style":621},"6fb0c30c1b4c",[1338],{"_key":1339,"_type":616,"marks":1340,"text":1341},"6dc9871b7e60",[],"Even if we know the public challenge to be 100, we cannot use this to our advantage:39600 \u002F 100 = 396 which tells us nothing about 46",[],{"_key":1344,"_type":612,"children":1345,"markDefs":1350,"style":621},"3964cf3ea4fa",[1346],{"_key":1347,"_type":616,"marks":1348,"text":1349},"2a264c26c64a",[],"The bug was that the way Bob chose gamma was outputting much smaller numbers, 256-bit smaller than the product it needed to be.",[],{"_key":1352,"_type":612,"children":1353,"markDefs":1358,"style":621},"8a8d5f8228a5",[1354],{"_key":1355,"_type":616,"marks":1356,"text":1357},"6b2efe9c6b97",[],"If we use some smaller gamma, like 350 we get:",[],{"_key":1360,"_type":612,"children":1361,"markDefs":1366,"style":621},"1e6a657fe143",[1362],{"_key":1363,"_type":616,"marks":1364,"text":1365},"15048487c700",[],"100 X 46 + 350 = 4950",[],{"_key":1368,"_type":612,"children":1369,"markDefs":1374,"style":621},"b1da7f4faa8a",[1370],{"_key":1371,"_type":616,"marks":1372,"text":1373},"39659a6a31e0",[],"If we divide by the public challenge, we get 49.5 which gives us a big hint that the mask would be 46 and not 11 or 81 or any other of the possible numbers.",[],{"_key":1376,"_type":612,"children":1377,"markDefs":1382,"style":621},"4f43c77b5af5",[1378],{"_key":1379,"_type":616,"marks":1380,"text":1381},"8ee2b804ccc4",[],"The proof was leaking information about the mask.",[],{"_key":1384,"_type":612,"children":1385,"markDefs":1390,"style":674},"d1f00bb231b7",[1386],{"_key":1387,"_type":616,"marks":1388,"text":1389},"b3e70cb00b74",[671],"The Degenerate Commitment",[],{"_key":1392,"_type":612,"children":1393,"markDefs":1398,"style":621},"9c6e941cbf2e",[1394],{"_key":1395,"_type":616,"marks":1396,"text":1397},"137c21a5e399",[],"Yet again, we must say that if these were the only two vulnerabilities in the implementation, THORChain would not have been vulnerable to the attack. ",[],{"_key":1400,"_type":612,"children":1401,"markDefs":1406,"style":621},"5ab736287368",[1402],{"_key":1403,"_type":616,"marks":1404,"text":1405},"d0b1eba72aae",[],"In the last example, we used tiny numbers (N = 105) so the malicious “secret” did not have to be massive. In the real cryptographic world, this malicious number would be enormous, much, much larger than any honest input a validator might submit as their secret. ",[],{"_key":1408,"_type":612,"children":1409,"markDefs":1413,"style":621},"951328a64685",[1410],{"_key":1403,"_type":616,"marks":1411,"text":1412},[],"Every time a validator sends their encrypted secret for the MtA round, they also attach a ZK (zero knowledge) range proof that allows the recipient to validate the secret k is not too large to be out of bounds. The zero-knowledge part allows them to do it without ever learning any useful information about the secret. ",[],{"_key":1415,"_type":612,"children":1416,"markDefs":1420,"style":621},"0c6378b6fbe1",[1417],{"_key":1403,"_type":616,"marks":1418,"text":1419},[],"This is achieved mathematically by the zero-knowledge proof because it utilizes a commitment, a challenge, and several proof responses to that challenge. The commitment forces the prover to use the same value he is proving to be valid as their actual k for the MtA. ",[],{"_key":1422,"_type":612,"children":1423,"markDefs":1427,"style":621},"2853903e37b5",[1424],{"_key":1403,"_type":616,"marks":1425,"text":1426},[],"The verification equations are intended to show that Alice knows the plaintext encrypted in the MtA ciphertext and that it lies within the allowed curve-scalar range. ",[],{"_key":1429,"_type":612,"children":1430,"markDefs":1434,"style":621},"0f961d8664d0",[1431],{"_key":1403,"_type":616,"marks":1432,"text":1433},[],"Alice’s honest secret is approximately 256 bits. The proof hides it using additional randomness, so the proof response may grow to approximately 768 bits. The commitment is an expression derived from the encrypted secret, so it has a mathematical relation to it, which is very difficult to forge.",[],{"_key":1436,"_type":612,"children":1437,"markDefs":1442,"style":621},"b3c1bbf78a9e",[1438],{"_key":1439,"_type":616,"marks":1440,"text":1441},"e90e75cf39d1",[],"This check should have caught the attacker’s malicious k, which was approximately 2031 bits, far larger than a valid curve scalar. With a normal challenge, such a large k would cause the provers’ response to the challenge to exceed its bound, making the proof fail. ",[],{"_key":1444,"_type":612,"children":1445,"markDefs":1449,"style":621},"486ef0666620",[1446],{"_key":1439,"_type":616,"marks":1447,"text":1448},[],"“So how did the attacker still manage to pull off the attack?” The answer lies in the part where Alice commits to the fact that the secret she is validating is the same as the secret she is using for the MtA. ",[],{"_key":1451,"_type":612,"children":1452,"markDefs":1456,"style":621},"51f519cc16c1",[1453],{"_key":1439,"_type":616,"marks":1454,"text":1455},[],"The implementation had another bug. The proof has one term (Z) which is the actual commitment, that is essentially a value calculated from the secret and raised to the power of some unpredictable exponent (the \"challenge\"). That term is multiplied with the other terms of the proof, so it has a huge effect on them. The bug was that the term Z was never validated to not be 1, which means that if someone were to send Bob 1 as their Z, it would have had no effect on the other terms (1 to any power is always 1, and 1 has no effect as a multiplier). ",[],{"_key":1458,"_type":612,"children":1459,"markDefs":1463,"style":621},"660f31f3adf6",[1460],{"_key":1439,"_type":616,"marks":1461,"text":1462},[],"This “degenerate” commitment breaks the connection between the encrypted secret and the rest of the proof. If Z = 1, the prover effectively did not commit to anything and can use any k without failing the proof. The attacker still had to craft the other terms, but with nothing binding them to the number the attacker would actually use, they could just brute force them to fit the range proof. For a 17-bit prime, the grinding requires approximately 2^17 hash operations, which would roughly take one second on average on a modern laptop and can be pre-computed so the TSS keysign would not timeout.",[],{"_key":1465,"_type":612,"children":1466,"markDefs":1471,"style":621},"9db418e8bb64",[1467],{"_key":1468,"_type":616,"marks":1469,"text":1470},"bfac40525c4c",[],"Now with these three vulnerabilities combined, the attacker could carry out their attack. None of these would have worked on its own, nor any combination of two out of three. That does not mean they should not have been fixed, but fixing was not perceived as urgent to perform while an effort to replace the cryptographic implementation completely and migrate to a different TSS scheme was on its way.",[],{"_key":1473,"_type":612,"children":1474,"markDefs":1479,"style":674},"fb25510d1bfe",[1475],{"_key":1476,"_type":616,"marks":1477,"text":1478},"171fb12e17e4",[671],"Mitigation",[],{"_key":1481,"_type":612,"children":1482,"markDefs":1487,"style":621},"e27fe125090c",[1483],{"_key":1484,"_type":616,"marks":1485,"text":1486},"a70b61d9a9aa",[],"In order to mitigate the vulnerabilities described above (and some others not described here nor used in the attack) we have migrated to a new patched version. The version contains code mitigations by Binance and by SodaLabs, the vast majority of them will not be described here. Below are the cryptographic checks and validations relevant to the three weaknesses described in this article. Fixing any one of those weaknesses would have broken this specific exploit chain. Together, the changes prevent the malformed multi-prime modulus and defective MtA-proof attack described here and provide additional layers of defense.",[],{"_key":1489,"_type":612,"children":1490,"markDefs":1495,"style":621},"3be432563b01",[1491],{"_key":1492,"_type":616,"marks":1493,"text":1494},"72b4cf039390",[],"These mitigations do not prove that every possible Paillier implementation bug is impossible. No software change can provide that certainty, but the added checks substantially reduce the attack surface and prevent this particular family of exploits.",[],{"_key":1497,"_type":612,"children":1498,"markDefs":1503,"style":1063},"3beb88135e4e",[1499],{"_key":1500,"_type":616,"marks":1501,"text":1502},"b4ba6e33bcb8",[671],"Mitigating a Malformed Paillier Modulus",[],{"_key":1505,"_type":612,"children":1506,"markDefs":1511,"style":621},"fece7993811d",[1507],{"_key":1508,"_type":616,"marks":1509,"text":1510},"5040200f9b95",[],"As you might recall, a well-formed Paillier key N should be composed of exactly two co-primes, roughly the same size such that N = p X q and p ~= q. The following mechanisms were added to enforce these two properties.",[],{"_key":1513,"_type":612,"children":1514,"markDefs":1523,"style":621},"2a8a3764fe34",[1515,1519],{"_key":1516,"_type":616,"marks":1517,"text":1518},"7bb94a2a4bc4",[1012],"Π_mod",{"_key":1520,"_type":616,"marks":1521,"text":1522},"6c638ed1bf84",[],": During keygen, each participant proves that their Paillier modulus N has the required two-prime structure. The participant first chooses a random value W. From the session data, W, N and every earlier challenge, both the participant and the verifying nodes deterministically derive 80 challenges using a hash function:",[],{"_key":1525,"_type":612,"children":1526,"markDefs":1531,"style":621},"81cc8d32f225",[1527],{"_key":1528,"_type":616,"marks":1529,"text":1530},"d1f159cd1c83",[],"challengeᵢ = Hash(session, W, N, previous challenges)",[],{"_key":1533,"_type":612,"children":1534,"markDefs":1539,"style":621},"e52ce06a5a7f",[1535],{"_key":1536,"_type":616,"marks":1537,"text":1538},"f01f541e97ee",[],"W is chosen by the participant and is not committed in a separate earlier round. A malicious participant can therefore try different W values and recalculate the challenges. However, for an invalid multi-prime N, the probability of satisfying all 80 tests is at most approximately 2⁻⁸⁰ for each attempted W. The participant would therefore need approximately 2⁸⁰ attempts.",[],{"_key":1541,"_type":612,"children":1542,"markDefs":1547,"style":621},"9c338c319d63",[1543],{"_key":1544,"_type":616,"marks":1545,"text":1546},"4a92dbca797e",[],"The session data does not need to be secret or unpredictable: even if the attacker knows it in advance, they must still perform the full search over W. Even at the extremely optimistic rate of one trillion complete attempts per second, 2⁸⁰ attempts would take approximately 38,000 years.",[],{"_key":1549,"_type":612,"children":1550,"markDefs":1559,"style":621},"165f63ce7768",[1551,1555],{"_key":1552,"_type":616,"marks":1553,"text":1554},"14532b577bda",[1012],"Π_fac",{"_key":1556,"_type":616,"marks":1557,"text":1558},"85fd9d10e55f",[],": This proof shows that the participant knows two hidden factors, p and q, whose product is N, and that the factors satisfy the proof’s size limits. The participant does not reveal p or q. Instead, they publish hidden commitments to them.",[],{"_key":1561,"_type":612,"children":1562,"markDefs":1567,"style":621},"4e05f3c000c9",[1563],{"_key":1564,"_type":616,"marks":1565,"text":1566},"903495733ff2",[],"A hash of the session, N and those commitments produces a challenge e. The participant then sends responses containing expressions such as:",[],{"_key":1569,"_type":612,"children":1570,"markDefs":1575,"style":621},"3a4f0f2f4cce",[1571],{"_key":1572,"_type":616,"marks":1573,"text":1574},"fb925637ad76",[],"z₁ = e × p + random value",[],{"_key":1577,"_type":612,"children":1578,"markDefs":1583,"style":621},"4404858bbb44",[1579],{"_key":1580,"_type":616,"marks":1581,"text":1582},"a8f1804b94d3",[],"z₂ = e × q + random value",[],{"_key":1585,"_type":612,"children":1586,"markDefs":1591,"style":621},"8c9483c60430",[1587],{"_key":1588,"_type":616,"marks":1589,"text":1590},"61bb16621793",[],"The verification equations ensure that the same hidden p and q were used in the commitments and that their product is N. The verifier also limits the size of z₁ and z₂. The exploit’s extremely unbalanced factorization, approximately 273 bits on one side and 1776 bits on the other, would make one of these responses too large and would fail.",[],{"_key":1593,"_type":612,"children":1594,"markDefs":1599,"style":621},"e32e3e196cf6",[1595],{"_key":1596,"_type":616,"marks":1597,"text":1598},"d29326866573",[],"Π_fac does not prove that p and q are prime, nor does it force them to be almost equal. For example, consider:",[],{"_key":1601,"_type":612,"children":1602,"markDefs":1607,"style":621},"567a539b1adb",[1603],{"_key":1604,"_type":616,"marks":1605,"text":1606},"b09e345ab2db",[],"N = 3 × 5 × 7 × 11 = 1155",[],{"_key":1609,"_type":612,"children":1610,"markDefs":1615,"style":621},"b77a72c6c128",[1611],{"_key":1612,"_type":616,"marks":1613,"text":1614},"2b32c00020f5",[],"The factors could be grouped as:",[],{"_key":1617,"_type":612,"children":1618,"markDefs":1623,"style":621},"7f2c1a77ab0e",[1619],{"_key":1620,"_type":616,"marks":1621,"text":1622},"299dabd0dfa3",[],"p = 3 × 11 = 33",[],{"_key":1625,"_type":612,"children":1626,"markDefs":1631,"style":621},"586b44811e93",[1627],{"_key":1628,"_type":616,"marks":1629,"text":1630},"23f4326fa7bf",[],"q = 5 × 7 = 35",[],{"_key":1633,"_type":612,"children":1634,"markDefs":1639,"style":621},"7d80fa91ca75",[1635],{"_key":1636,"_type":616,"marks":1637,"text":1638},"0cb9ee347b75",[],"A factor-knowledge proof could show that the participant knows 33 and 35 and that their product is 1155, but it would not show that 33 and 35 are not prime. This is why both proofs are needed: Π_mod proves the required two-prime structure, while Π_fac proves knowledge of a suitably bounded factorization.",[],{"_key":1641,"_type":612,"children":1642,"markDefs":1647,"style":1063},"ff11dd59cfea",[1643],{"_key":1644,"_type":616,"marks":1645,"text":1646},"07ca7b69bd92",[671],"Mitigating the Leaky Mask",[],{"_key":1649,"_type":612,"children":1650,"markDefs":1655,"style":621},"d41fa9ee1bbc",[1651],{"_key":1652,"_type":616,"marks":1653,"text":1654},"d4fed173134c",[],"The relevant proof response has the following form:",[],{"_key":1657,"_type":612,"children":1658,"markDefs":1663,"style":621},"ae4c29e1f8ff",[1659],{"_key":1660,"_type":616,"marks":1661,"text":1662},"b0237b2b3c32",[],"challenge × mask + gamma",[],{"_key":1665,"_type":612,"children":1666,"markDefs":1671,"style":621},"d7618dd328dd",[1667],{"_key":1668,"_type":616,"marks":1669,"text":1670},"80a053364cd9",[],"In version 0.1.6, both the mask and gamma were chosen from ranges approximately the size of N, or roughly 2048 bits. Because the challenge can be approximately 256 bits, challenge × mask could grow to approximately 2304 bits, while gamma remained approximately 2048 bits. The product could therefore dominate the result and leak information about the mask.The 256 bits we refer to is the order of magnitude (or range) of the secp256k1 curve used for elliptic curve cryptography (ECDSA keys). We will refer to it as q for the rest of the explanation.",[],{"_key":1673,"_type":612,"children":1674,"markDefs":1679,"style":621},"2545781eefb5",[1675],{"_key":1676,"_type":616,"marks":1677,"text":1678},"6a7ed5c3bf2c",[],"The patch changes both ranges:",[],{"_key":1681,"_type":612,"children":1682,"markDefs":1687,"style":621},"c41370e1bf8b",[1683],{"_key":1684,"_type":616,"marks":1685,"text":1686},"9d24eedb9ea0",[],"The mask is now chosen below q⁵, an approximately 1280-bit range.",[],{"_key":1689,"_type":612,"children":1690,"markDefs":1695,"style":621},"336bd4858e27",[1691],{"_key":1692,"_type":616,"marks":1693,"text":1694},"39961b6dbe14",[],"Gamma is now chosen below q⁷, an approximately 1792-bit range.",[],{"_key":1697,"_type":612,"children":1698,"markDefs":1703,"style":621},"7449de927b21",[1699],{"_key":1700,"_type":616,"marks":1701,"text":1702},"ab9cec60f101",[],"The product of the challenge and mask is therefore at most approximately q⁶, or 1536 bits. Gamma is sampled from a range approximately 256 bits wider, making the proof response statistically hide the mask.",[],{"_key":1705,"_type":612,"children":1706,"markDefs":1711,"style":621},"cf9fa477af66",[1707],{"_key":1708,"_type":616,"marks":1709,"text":1710},"1322b13ef98c",[],"The important change is not that gamma became larger in absolute terms. Instead, gamma became much larger relative to challenge × mask because the mask’s range was substantially reduced. A 1280-bit mask is still overwhelmingly larger than the approximately 256-bit secret it must hide.",[],{"_key":1713,"_type":612,"children":1714,"markDefs":1719,"style":1063},"d45214a27135",[1715],{"_key":1716,"_type":616,"marks":1717,"text":1718},"5c502574d371",[671],"Mitigating the Degenerate Z in the Range Proof",[],{"_key":1721,"_type":612,"children":1722,"markDefs":1727,"style":621},"1dfc671228a8",[1723],{"_key":1724,"_type":616,"marks":1725,"text":1726},"19eab22003ea",[],"The range proof commitment term Z tying it to the actual k value used in the MtA round was broken. We mitigate this in a fairly straightforward manner",[],{"_key":1729,"_type":612,"children":1730,"markDefs":1735,"style":621},"b43cdf1595e5",[1731],{"_key":1732,"_type":616,"marks":1733,"text":1734},"5454fe6e29f4",[],"Explicitly fail if Z = 1: so that part of the proof does not become meaningless.",[],{"_key":1737,"_type":612,"children":1738,"markDefs":1743,"style":621},"cc6d026f083f",[1739],{"_key":1740,"_type":616,"marks":1741,"text":1742},"33dc73f83225",[],"Reject other degenerate terms: this is not a mitigation to the specific exploit used for the attack, but it is worth mentioning. Along with explicitly rejecting Z = 1 we reject other term values that can render them meaningless, such as S = 1, S1 = S2 and others. The proof is hardened overall as a result.",[],{"_key":1745,"_type":612,"children":1746,"markDefs":1751,"style":674},"97f9aca2434d",[1747],{"_key":1748,"_type":616,"marks":1749,"text":1750},"c69e42c82a5f",[671],"Conclusion",[],{"_key":1753,"_type":612,"children":1754,"markDefs":1759,"style":621},"230b6b96f005",[1755],{"_key":1756,"_type":616,"marks":1757,"text":1758},"f1ce63e08207",[],"In this article we described three bugs in the implementation of the cryptography THORChain was using for generating its TSS signatures. ",[],{"_key":1761,"_type":612,"children":1762,"markDefs":1766,"style":621},"e15f5a0a3a84",[1763],{"_key":1756,"_type":616,"marks":1764,"text":1765},[],"None of the three had any effect on its own, but their combination produced a severe, exploitable vulnerability that has resulted in the theft of funds. ",[],{"_key":1768,"_type":612,"children":1769,"markDefs":1773,"style":621},"89ca8839ac59",[1770],{"_key":1756,"_type":616,"marks":1771,"text":1772},[],"The effort for mitigation was not only fixing the exploitable implementation bugs, but also solving a large number of other seemingly non-sever implementation bugs as well. ",[],{"_key":1775,"_type":612,"children":1776,"markDefs":1780,"style":621},"94959ef344f2",[1777],{"_key":1756,"_type":616,"marks":1778,"text":1779},[],"The effort for securing THORChain cryptographically has expanded to deny any “building block”, no matter how small, that any would-be attacker might use to craft the next exploit. ",[],{"_key":1782,"_type":612,"children":1783,"markDefs":1787,"style":621},"ddf79135968c",[1784],{"_key":1756,"_type":616,"marks":1785,"text":1786},[],"This effort does delay our cryptography roadmap, since any change to the implementation of cryptography is itself a risk, and must be thoroughly evaluated and tested. Nevertheless in the current security climate, especially in the crypto ecosystem, the effort is worth the delay.",[],{"_key":1789,"_type":612,"children":1790,"markDefs":1795,"style":621},"9f13c49a87ca",[1791],{"_key":1792,"_type":616,"marks":1793,"text":1794},"7a4d5125eaa2",[],"We should keep in mind that THORChain represents a unique intersection of risk:",[],{"_key":1797,"_type":612,"children":1798,"markDefs":1807,"style":621},"99a9291c3662",[1799,1803],{"_key":1800,"_type":616,"marks":1801,"text":1802},"fedbc24285f7",[671],"THORChain is a cross chain infrastructure",{"_key":1804,"_type":616,"marks":1805,"text":1806},"668430ca5c37",[],". Cross chain infrastructure such as bridges constitute the vast majority of funds stolen in blockchain attacks. Such infrastructures can also be exploited if an underlying bridged chain is attacked, as we’ve seen in the LTC hack (that caused great damage to other bridges, but left THORChain relatively unscathed).",[],{"_key":1809,"_type":612,"children":1810,"markDefs":1819,"style":621},"06dc1775ca0b",[1811,1815],{"_key":1812,"_type":616,"marks":1813,"text":1814},"4974338af87e",[671],"THORChain is truly decentralized",{"_key":1816,"_type":616,"marks":1817,"text":1818},"d7c53a224c27",[],". We are an anonymous, permissionless blockchain - anyone can participate, no one is censored. This means that we must defend not only from malicious users aiming to exploit the protocol, but also from malicious validators, a much more privileged set of possible attackers that represents a higher risk.",[],{"_key":1821,"_type":612,"children":1822,"markDefs":1831,"style":621},"dde733347587",[1823,1827],{"_key":1824,"_type":616,"marks":1825,"text":1826},"5fdf2bd694ff",[671],"THORChain is completely open sourced",{"_key":1828,"_type":616,"marks":1829,"text":1830},"427da0bbe615",[],". Our code is available for everyone to scan for vulnerabilities. An attacker does not have a time constraint, they can keep sifting through the code until they find something. There is also an unlimited number of would be attackers, meaning that even if we mitigate 999 out of 1000 vulnerabilities, that vulnerability would still get found. We also need to secure against malicious contributors that might inject well-hidden vulnerabilities into our codebase.",[],{"_key":1833,"_type":612,"children":1834,"markDefs":1838,"style":621},"a9e7c1134a63",[1835],{"_key":1828,"_type":616,"marks":1836,"text":1837},[],"All of these factors are what makes THORChain unique and valuable, and they are non-negotiable. Our security doctrine is constantly evolving to mitigate these risk factors in a way that would not have a detrimental effect on honest participants of the protocol.",[],{"_key":1840,"_type":1841,"backgroundColor":5,"buttons":1842,"disabled":163,"linkCards":5,"media":1845,"sliceId":5,"text":1851,"title":1852},"99d1b8cb0c53","heroSlice",[1843],{"anchor":5,"getParameters":5,"isInternal":163,"label":1844,"openInNewTab":5,"theme":399,"title":5,"url":400},"Swap Now",{"image":1846,"type":1850},{"alt":20,"assetId":1847,"caption":5,"crop":5,"height":1848,"hotspot":5,"lqip":1849,"width":1848},"image-de03568132b33de541197dd8a121e7ae69e060b9-1000x1000-svg",1000,"data:image\u002Fpng;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAABu0lEQVR4nK2VT0\u002FbQBDF802h3yFSzpzpNcmJnrimlaVeqBCXCkGJyAEqKpJQEDFSauQk9s6ud2zCq2ZLUsdJIBE5PGnt9+a3f8Zal5RSTERjrTXeIyIaK6VsSQZE9LwB4LOwSkXDGLOWdKF+BigBa+1aMgXoFChGkiQuxMxI03Ql2QJ0BihSSiGOYxecA1gDpgjW0GpArTWGwyHCMHTPRWCmY9jwAWYUul1kWfY6ULY8MZetMKUIbPRqK+SXWfOSInk\u002FOdeiz8zLgZOGLGqKZIIggO\u002F76PV66Pf77rztW03JrzYPFJDneajVak6NRgPtdls+6NebIrNKKH+GAu90OqjX6yiXy6hUKqhWq2i1WoiiaDlwlBDu7QBdfsRNGuJ39qI0xMXwHt+ufqBxdogvzSMcXJ3iZ3CLgY4XA8loXHOA\u002FadLfByfTrWbnWCXj\u002F8pO5nxJHvNgaudA8aG0GQfO0\u002Ff8WH8dart1MOW+uwk47wn2Sb7rnYOqDShawJ49hc+ceu\u002FknPs6aaTjPOeZLsmcLXzWybCQI3gx4+4i\u002F\u002Fg9g1JRrIDNXK1C28bMaTL6ygPc8CNX7BybW\u002FyF\u002FAXRWrnrGjw4yAAAAAASUVORK5CYII=","image","No sign up required.\nEasy to use.",[1853],{"_key":1854,"_type":612,"children":1855,"markDefs":1861,"style":621},"9b9f5300a491",[1856],{"_key":1857,"_type":616,"marks":1858,"text":1860},"570460bff9df",[1859],"black","Try the World’s Leading Bitcoin DEX",[],[1863],{"name":455,"slug":455},1786028395536]