Walrus blob · mainnet
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<!--
The icon is a data URI, and it has to be.
Every path under a .epoch name serves that name's single blob, so a
/favicon.ico would not 404 — it would return this whole page, and the
browser would try to decode an HTML document as an image. There is no
second file to point at, so the icon travels inside the one there is.
-->
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'><rect width='64' height='64' rx='14' fill='%230b1c34'/><path d='M32 9 L55 22 L32 35 L9 22 Z' fill='%23eaf7ff'/><path d='M9 24 L32 37 L32 56 L9 43 Z' fill='%237fc0ee'/><path d='M55 24 L32 37 L32 56 L55 43 Z' fill='%233d7ba8'/></svg>" />
<meta name="robots" content="noindex" />
<title>PermaFrost badge</title>
<!--
This document renders inside other people's pages, so it states its own
limits rather than relying on theirs. It loads no scripts but its own,
talks to exactly one host, and can navigate nothing: a badge that could
be turned into a redirect is a badge nobody should paste on a homepage.
-->
<meta
http-equiv="Content-Security-Policy"
content="default-src 'none'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src https://fonts.gstatic.com data:; img-src 'self' data:; connect-src https://graphql.mainnet.sui.io; base-uri 'none'; form-action 'none'; object-src 'none'"
/>
<meta name="referrer" content="no-referrer" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap"
/>
<link rel="preconnect" href="https://graphql.mainnet.sui.io" crossorigin />
<script type="module">var X,y,Xe,T,Ae,et,tt,oe,j,D,nt,be,fe,de,z={},q=[],kt=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ee=Array.isArray;function E(e,t){for(var n in t)e[n]=t[n];return e}function we(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Mt(e,t,n){var o,i,r,s={};for(r in t)r=="key"?o=t[r]:r=="ref"?i=t[r]:s[r]=t[r];if(arguments.length>2&&(s.children=arguments.length>3?X.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(r in e.defaultProps)s[r]===void 0&&(s[r]=e.defaultProps[r]);return R(e,s,o,i,null)}function R(e,t,n,o,i){var r={type:e,props:t,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++Xe,__i:-1,__u:0};return i==null&&y.vnode!=null&&y.vnode(r),r}function te(e){return e.children}function Q(e,t){this.props=e,this.context=t}function O(e,t){if(t==null)return e.__?O(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?O(e):null}function Lt(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,o=[],i=[],r=E({},t);r.__v=t.__v+1,y.vnode&&y.vnode(r),ke(e.__P,r,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,o,n??O(t),!!(32&t.__u),i),r.__v=t.__v,r.__.__k[r.__i]=r,ct(o,r,i),t.__e=t.__=null,r.__e!=n&&rt(r)}}function rt(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),rt(e)}function Ne(e){(!e.__d&&(e.__d=!0)&&T.push(e)&&!V.__r++||Ae!=y.debounceRendering)&&((Ae=y.debounceRendering)||et)(V)}function V(){try{for(var e,t=1;T.length;)T.length>t&&T.sort(tt),e=T.shift(),t=T.length,Lt(e)}finally{T.length=V.__r=0}}function ot(e,t,n,o,i,r,s,a,u,l,f){var h,c,d,m,b,g,k=o&&o.__k||q,p=t.length;for(u=xt(n,t,k,u,p),h=0;h<p;h++)(d=n.__k[h])!=null&&(c=d.__i!=-1&&k[d.__i]||z,d.__i=h,g=ke(e,d,c,i,r,s,a,u,l,f),m=d.__e,d.ref&&c.ref!=d.ref&&(c.ref&&Me(c.ref,null,d),f.push(d.ref,d.__c||m,d)),b==null&&m!=null&&(b=m),4&d.__u?(u=it(d,u,e),c.__e&&(c.__e=null)):typeof d.type=="function"&&g!==void 0?u=g:m&&(u=m.nextSibling),d.__u&=-7);return n.__e=b,u}function xt(e,t,n,o,i){var r,s,a,u,l,f=n.length,h=f,c=0;for(e.__k=new Array(i),r=0;r<i;r++)(s=t[r])!=null&&typeof s!="boolean"&&typeof s!="function"?(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||s.constructor==String?s=e.__k[r]=R(null,s,null,null,null):ee(s)?s=e.__k[r]=R(te,{children:s},null,null,null):s.constructor===void 0&&s.__b>0?s=e.__k[r]=R(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[r]=s,u=r+c,s.__=e,s.__b=e.__b+1,a=null,(l=s.__i=St(s,n,u,h))!=-1&&(h--,(a=n[l])&&(a.__u|=2)),a==null||a.__v==null?(l==-1&&(i>f?c--:i<f&&c++),typeof s.type!="function"&&(s.__u|=4)):l!=u&&(l==u-1?c--:l==u+1?c++:(l>u?c--:c++,s.__u|=4))):e.__k[r]=null;if(h)for(r=0;r<f;r++)(a=n[r])!=null&&(2&a.__u)==0&&(a.__e==o&&(o=O(a)),lt(a,a));return o}function it(e,t,n){var o,i;if(typeof e.type=="function"){for(o=e.__k,i=0;o&&i<o.length;i++)o[i]&&(o[i].__=e,t=it(o[i],t,n));return t}e.__e!=t&&(t&&e.type&&!t.parentNode&&(t=O(e)),t=n.insertBefore(e.__e,t||null));do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function St(e,t,n,o){var i,r,s,a=e.key,u=e.type,l=t[n],f=l!=null&&(2&l.__u)==0;if(l===null&&a==null||f&&a==l.key&&u==l.type)return n;if(o>(f?1:0)){for(i=n-1,r=n+1;i>=0||r<t.length;)if((l=t[s=i>=0?i--:r++])!=null&&(2&l.__u)==0&&a==l.key&&u==l.type)return s}return-1}function Oe(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||kt.test(t)?n:n+"px"}function H(e,t,n,o,i){var r,s;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof o=="string"&&(e.style.cssText=o=""),o)for(t in o)n&&t in n||Oe(e.style,t,"");if(n)for(t in n)o&&n[t]==o[t]||Oe(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")r=t!=(t=t.replace(nt,"$1")),s=t.toLowerCase(),t=s in e||t=="onFocusOut"||t=="onFocusIn"?s.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+r]=n,n?o?n[D]=o[D]:(n[D]=be,e.addEventListener(t,r?de:fe,r)):e.removeEventListener(t,r?de:fe,r);else{if(i=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function Pe(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[j]==null)t[j]=be++;else if(t[j]<n[D])return;return n(y.event?y.event(t):t)}}}function ke(e,t,n,o,i,r,s,a,u,l){var f,h,c,d,m,b,g,k,p,M,C,$,I,$e,U,re,L=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(u=!!(32&n.__u),r=[a=t.__e=n.__e]),(f=y.__b)&&f(t);e:if(typeof L=="function"){h=s.length;try{if(p=t.props,M=L.prototype&&L.prototype.render,C=(f=L.contextType)&&o[f.__c],$=f?C?C.props.value:f.__:o,n.__c?k=(c=t.__c=n.__c).__=c.__E:(M?t.__c=c=new L(p,$):(t.__c=c=new Q(p,$),c.constructor=L,c.render=Tt),C&&C.sub(c),c.state||(c.state={}),c.__n=o,d=c.__d=!0,c.__h=[],c._sb=[]),M&&c.__s==null&&(c.__s=c.state),M&&L.getDerivedStateFromProps!=null&&(c.__s==c.state&&(c.__s=E({},c.__s)),E(c.__s,L.getDerivedStateFromProps(p,c.__s))),m=c.props,b=c.state,c.__v=t,d)M&&L.getDerivedStateFromProps==null&&c.componentWillMount!=null&&c.componentWillMount(),M&&c.componentDidMount!=null&&c.__h.push(c.componentDidMount);else{if(M&&L.getDerivedStateFromProps==null&&p!==m&&c.componentWillReceiveProps!=null&&c.componentWillReceiveProps(p,$),t.__v==n.__v||!c.__e&&c.shouldComponentUpdate!=null&&c.shouldComponentUpdate(p,c.__s,$)===!1){t.__v!=n.__v&&(c.props=p,c.state=c.__s,c.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(P){P&&(P.__=t)}),q.push.apply(c.__h,c._sb),c._sb=[],c.__h.length&&s.push(c),a=O(n);break e}c.componentWillUpdate!=null&&c.componentWillUpdate(p,c.__s,$),M&&c.componentDidUpdate!=null&&c.__h.push(function(){c.componentDidUpdate(m,b,g)})}if(c.context=$,c.props=p,c.__P=e,c.__e=!1,I=y.__r,$e=0,M)c.state=c.__s,c.__d=!1,I&&I(t),f=c.render(c.props,c.state,c.context),q.push.apply(c.__h,c._sb),c._sb=[];else do c.__d=!1,I&&I(t),f=c.render(c.props,c.state,c.context),c.state=c.__s;while(c.__d&&++$e<25);c.state=c.__s,c.getChildContext!=null&&(o=E(E({},o),c.getChildContext())),M&&!d&&c.getSnapshotBeforeUpdate!=null&&(g=c.getSnapshotBeforeUpdate(m,b)),U=f!=null&&f.type===te&&f.key==null?at(f.props.children):f,a=ot(e,ee(U)?U:[U],t,n,o,i,r,s,a,u,l),c.base=t.__e,t.__u&=-161,c.__h.length&&s.push(c),k&&(c.__E=c.__=null)}catch(P){if(s.length=h,t.__v=null,u||r!=null){if(P.then){for(t.__u|=u?160:128;a&&a.nodeType==8&&a.nextSibling;)a=a.nextSibling;r!=null&&(r[r.indexOf(a)]=null),t.__e=a}else if(r!=null)for(re=r.length;re--;)we(r[re])}else t.__e=n.__e;t.__k==null&&(t.__k=n.__k||[]),P.then||st(t),y.__e(P,t,n)}}else r==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):a=t.__e=Et(n.__e,t,n,o,i,r,s,u,l);return(f=y.diffed)&&f(t),128&t.__u?void 0:a}function st(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(st))}function ct(e,t,n){for(var o=0;o<n.length;o++)Me(n[o],n[++o],n[++o]);y.__c&&y.__c(t,e),e.some(function(i){try{e=i.__h,i.__h=[],e.some(function(r){r.call(i)})}catch(r){y.__e(r,i.__v)}})}function at(e){return typeof e!="object"||e==null||e.__b>0?e:ee(e)?e.map(at):e.constructor!==void 0?null:E({},e)}function Et(e,t,n,o,i,r,s,a,u){var l,f,h,c,d,m,b,g=n.props||z,k=t.props,p=t.type;if(p=="svg"?i="http://www.w3.org/2000/svg":p=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),r!=null){for(l=0;l<r.length;l++)if((d=r[l])&&"setAttribute"in d==!!p&&(p?d.localName==p:d.nodeType==3)){e=d,r[l]=null;break}}if(e==null){if(p==null)return document.createTextNode(k);e=document.createElementNS(i,p,k.is&&k),a&&(y.__m&&y.__m(t,r),a=!1),r=null}if(p==null)g===k||a&&e.data==k||(e.data=k);else{if(r=p=="textarea"&&k.defaultValue!=null?null:r&&X.call(e.childNodes),!a&&r!=null)for(g={},l=0;l<e.attributes.length;l++)g[(d=e.attributes[l]).name]=d.value;for(l in g)d=g[l],l=="dangerouslySetInnerHTML"?h=d:l=="children"||l in k||l=="value"&&"defaultValue"in k||l=="checked"&&"defaultChecked"in k||H(e,l,null,d,i);for(l in k)d=k[l],l=="children"?c=d:l=="dangerouslySetInnerHTML"?f=d:l=="value"?m=d:l=="checked"?b=d:a&&typeof d!="function"||g[l]===d||H(e,l,d,g[l],i);if(f)a||h&&(f.__html==h.__html||f.__html==e.innerHTML)||(e.innerHTML=f.__html),t.__k=[];else if(h&&(e.innerHTML=""),ot(t.type=="template"?e.content:e,ee(c)?c:[c],t,n,o,p=="foreignObject"?"http://www.w3.org/1999/xhtml":i,r,s,r?r[0]:n.__k&&O(n,0),a,u),r!=null)for(l=r.length;l--;)we(r[l]);a&&p!="textarea"||(l="value",p=="progress"&&m==null?e.removeAttribute("value"):m!=null&&(m!==e[l]||p=="progress"&&!m||p=="option"&&m!=g[l])&&H(e,l,m,g[l],i),l="checked",b!=null&&b!=e[l]&&H(e,l,b,g[l],i))}return e}function Me(e,t,n){try{if(typeof e=="function"){var o=typeof e.__u=="function";o&&e.__u(),o&&t==null||(e.__u=e(t))}else e.current=t}catch(i){y.__e(i,n)}}function lt(e,t,n){var o,i;if(y.unmount&&y.unmount(e),(o=e.ref)&&(o.current&&o.current!=e.__e||Me(o,null,t)),(o=e.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(r){y.__e(r,t)}o.base=o.__P=o.__n=null}if(o=e.__k)for(i=0;i<o.length;i++)o[i]&<(o[i],t,n||typeof e.type!="function");n||we(e.__e),e.__c=e.__=e.__e=void 0}function Tt(e,t,n){return this.constructor(e,n)}function $t(e,t,n){var o,i,r,s;t==document&&(t=document.documentElement),y.__&&y.__(e,t),i=(o=!1)?null:t.__k,r=[],s=[],ke(t,e=t.__k=Mt(te,null,[e]),i||z,z,t.namespaceURI,i?null:t.firstChild?X.call(t.childNodes):null,r,i?i.__e:t.firstChild,o,s),ct(r,e,s),e.props.children=null}X=q.slice,y={__e:function(e,t,n,o){for(var i,r,s;t=t.__;)if((i=t.__c)&&!i.__)try{if((r=i.constructor)&&r.getDerivedStateFromError!=null&&(i.setState(r.getDerivedStateFromError(e)),s=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,o||{}),s=i.__d),s)return i.__E=i}catch(a){e=a}throw e}},Xe=0,Q.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=E({},this.state),typeof e=="function"&&(e=e(E({},n),this.props)),e&&E(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ne(this))},Q.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ne(this))},Q.prototype.render=te,T=[],et=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,tt=function(e,t){return e.__v.__b-t.__v.__b},V.__r=0,oe=Math.random().toString(8),j="__d"+oe,D="__a"+oe,nt=/(PointerCapture)$|Capture$/i,be=0,fe=Pe(!1),de=Pe(!0);var At=0;function _(e,t,n,o,i,r){t||(t={});var s,a,u=t;if("ref"in u)for(a in u={},t)a=="ref"?s=t[a]:u[a]=t[a];var l={type:e,props:u,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--At,__i:-1,__u:0,__source:i,__self:r};if(typeof e=="function"&&(s=e.defaultProps))for(a in s)u[a]===void 0&&(u[a]=s[a]);return y.vnode&&y.vnode(l),l}var B,v,ie,Ce,W=0,_t=[],w=y,Ie=w.__b,De=w.__r,Be=w.diffed,Ue=w.__c,He=w.unmount,Fe=w.__;function Le(e,t){w.__h&&w.__h(v,e,W||t),W=0;var n=v.__H||(v.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function pe(e){return W=1,Nt(ft,e)}function Nt(e,t,n){var o=Le(B++,2);if(o.t=e,!o.__c&&(o.__=[ft(void 0,t),function(a){var u=o.__N?o.__N[0]:o.__[0],l=o.t(u,a);u!==l&&(o.__N=[l,o.__[1]],o.__c.setState({}))}],o.__c=v,!v.__f)){var i=function(a,u,l){if(!o.__c.__H)return!0;var f=!1,h=o.__c.props!==a;if(o.__c.__H.__.some(function(d){if(d.__N){f=!0;var m=d.__[0];d.__=d.__N,d.__N=void 0,m!==d.__[0]&&(h=!0)}}),r){var c=r.call(this,a,u,l);return f?c||h:c}return!f||h};v.__f=!0;var r=v.shouldComponentUpdate,s=v.componentWillUpdate;v.componentWillUpdate=function(a,u,l){if(this.__e){var f=r;r=void 0,i(a,u,l),r=f}s&&s.call(this,a,u,l)},v.shouldComponentUpdate=i}return o.__N||o.__}function J(e,t){var n=Le(B++,3);!w.__s&&ut(n.__H,t)&&(n.__=e,n.u=t,v.__H.__h.push(n))}function Ot(e,t){var n=Le(B++,7);return ut(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Pt(e,t){return W=8,Ot(function(){return e},t)}function Ct(){for(var e;e=_t.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(G),t.__h.some(he),t.__h=[]}catch(n){t.__h=[],w.__e(n,e.__v)}}}w.__b=function(e){v=null,Ie&&Ie(e)},w.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Fe&&Fe(e,t)},w.__r=function(e){De&&De(e),B=0;var t=(v=e.__c).__H;t&&(ie===v?(t.__h=[],v.__h=[],t.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.some(G),t.__h.some(he),t.__h=[],B=0)),ie=v},w.diffed=function(e){Be&&Be(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(_t.push(t)!==1&&Ce===w.requestAnimationFrame||((Ce=w.requestAnimationFrame)||It)(Ct)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),ie=v=null},w.__c=function(e,t){t.some(function(n){try{n.__h.some(G),n.__h=n.__h.filter(function(o){return!o.__||he(o)})}catch(o){t.some(function(i){i.__h&&(i.__h=[])}),t=[],w.__e(o,n.__v)}}),Ue&&Ue(e,t)},w.unmount=function(e){He&&He(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(o){try{G(o)}catch(i){t=i}}),n.__H=void 0,t&&w.__e(t,n.__v))};var je=typeof requestAnimationFrame=="function";function It(e){var t,n=function(){clearTimeout(o),je&&cancelAnimationFrame(t),setTimeout(e)},o=setTimeout(n,35);je&&(t=requestAnimationFrame(n))}function G(e){var t=v,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),v=t}function he(e){var t=v;e.__c=e.__(),v=t}function ut(e,t){return!e||e.length!==t.length||t.some(function(n,o){return n!==e[o]})}function ft(e,t){return typeof t=="function"?t(e):t}const Dt="https://graphql.mainnet.sui.io/graphql",Re={TYPE_PKG:"0xe0f23402fae139961a3d5ffa99d054a7821b82295eb5988957053f0c9a4dd14d",MODULE:"object_lock"},K={TYPE_PKG:"0x848cb7edf8b5f7650b3188dec459394472c8ccf206a031497bf55fe40c165da2",MODULE:"vesting"},Bt=`${Re.TYPE_PKG}::${Re.MODULE}::ObjectLock`,Ut=`${K.TYPE_PKG}::${K.MODULE}::VestingVault`,Ht=`${K.TYPE_PKG}::${K.MODULE}::MultiVestingVault`,Ft=10000n,jt=e=>`https://suiscan.xyz/mainnet/object/${e}`,Rt=4,Qt=55,Gt=2e4,dt=5,Yt=12e3,zt=240;class x extends Error{constructor(t,n,o=!1){super(t),this.detail=n,this.retryable=o,this.name="ChainError"}detail;retryable}class Qe extends Error{constructor(){super("Aborted"),this.name="AbortError"}}const me=[];let ye=0,Ge=0;function ge(){if(ye>=Rt||me.length===0)return;const e=Qt-(Date.now()-Ge);if(e>0){setTimeout(ge,e);return}const t=me.shift();t&&(ye++,Ge=Date.now(),t())}function qt(e){return new Promise((t,n)=>{me.push(()=>{e().then(t,n).finally(()=>{ye--,ge()})}),ge()})}let Z=0,xe=0;const Vt=()=>Z>=dt&&Date.now()-xe<Yt;function Wt(){Z++,Z===dt&&(xe=Date.now())}function Jt(){Z=0,xe=0}const N=new Map,F=new Map;function Kt(e,t){const n=N.get(e);return!n||Date.now()-n.at>t?{hit:!1}:(N.delete(e),N.set(e,n),{hit:!0,value:n.value})}function Zt(e,t){for(N.set(e,{at:Date.now(),value:t});N.size>zt;){const n=N.keys().next().value;if(n===void 0)break;N.delete(n)}}function Ye(e,t){return t?t.aborted?Promise.reject(new Qe):new Promise((n,o)=>{const i=()=>o(new Qe);t.addEventListener("abort",i,{once:!0}),e.then(n,o).finally(()=>t.removeEventListener("abort",i))}):e}const Xt=e=>new Promise(t=>setTimeout(t,e)),en=(e,t)=>{const n=Math.min(8e3,400*2**e);return Math.max(t??0,Math.round(n*(.5+Math.random()*.5)))};function tn(e){const t=e.headers.get("retry-after");if(!t)return;const n=Number(t);if(Number.isFinite(n))return Math.min(3e4,n*1e3);const o=Date.parse(t);return Number.isFinite(o)?Math.min(3e4,Math.max(0,o-Date.now())):void 0}async function nn(e,t,n,o={}){const{signal:i,cacheMs:r=0,retries:s=2}=o,a=`${t} ${JSON.stringify(n)}`;if(r>0){const f=Kt(a,r);if(f.hit)return f.value}const u=F.get(a);if(u)return Ye(u,i);const l=rn(e,t,n,s,r,a);return F.set(a,l),l.catch(()=>{}).finally(()=>{F.get(a)===l&&F.delete(a)}),Ye(l,i)}async function rn(e,t,n,o,i,r){let s=null;for(let a=0;a<=o;a++){if(Vt())throw new x("Sui is not answering right now. Give it a few seconds and try again.",void 0,!0);try{const u=await qt(()=>on(e,t,n));return Jt(),i>0&&Zt(r,u),u}catch(u){const l=u instanceof x?u:new x("Chain read failed.",u,!1);if(s=l,l.retryable&&Wt(),!l.retryable||a===o)throw l;const f=l.detail?.retryAfterMs;await Xt(en(a,f))}}throw s??new x("Chain read failed.")}async function on(e,t,n){const o=new AbortController,i=setTimeout(()=>o.abort(),Gt);let r;try{r=await fetch(e,{method:"POST",headers:{"content-type":"application/json",accept:"application/json"},body:JSON.stringify({query:t,variables:n}),signal:o.signal,credentials:"omit",referrerPolicy:"no-referrer",mode:"cors",cache:"no-store"})}catch(a){throw new x("Could not reach the Sui network.",a,!0)}finally{clearTimeout(i)}if(r.status===429)throw new x("Sui is rate limiting this browser. Backing off and retrying.",{retryAfterMs:tn(r)},!0);if(r.status>=500)throw new x(`Sui GraphQL is unavailable (HTTP ${r.status}).`,void 0,!0);if(!r.ok)throw new x(`Sui GraphQL returned HTTP ${r.status}.`,void 0,!1);const s=await r.json();if(s.errors?.length)throw new x(s.errors.map(a=>a.message).join("; "),s.errors,!1);if(!s.data)throw new x("Sui GraphQL returned an empty response.");return s.data}const sn=6e4,cn=30*6e4,an=1e4;async function Se(e,t={},n,o={}){return nn(Dt,e,t,{...o,signal:n})}const ln=`
query Obj($address: SuiAddress!) {
object(address: $address) {
address
version
asMoveObject {
contents {
json
type { repr }
}
}
}
}
`;async function _n(e,t){const n=await Se(ln,{address:e},t,{cacheMs:sn}),o=n.object?.asMoveObject?.contents;return o?{address:n.object.address,version:n.object.version,type:o.type.repr,json:o.json}:null}const un=`
query Now { checkpoint { timestamp } }
`;async function fn(e){try{const n=(await Se(un,{},e,{cacheMs:an,retries:1})).checkpoint?.timestamp;if(n)return new Date(n).getTime()}catch{}return Date.now()}const dn=cn;function Ee(e){return e.lockedAmount===0n&&e.phase!=="thawed"}const ze={kind:"lock",id:"",phase:"absent",progress:0,released:0,lockedAtMs:0,unlockMs:0,creator:"",beneficiary:null,innerType:"",nowMs:0};function pt(e,t=0){return e.unlockMs-(e.nowMs+t)}function Te(e,t,n){if(t<=e)return n>=t?1:0;const o=(n-e)/(t-e);return o<0?0:o>1?1:o}function ne(e){const t=e.indexOf("<");return t<0?e:e.slice(t+1,e.lastIndexOf(">"))}function pn(e){return e.toLowerCase().replace(/0x0*([0-9a-f]+)/g,(t,n)=>"0x"+n.padStart(64,"0"))}const ht=24*36e5,hn=7*ht,mn=30*ht;function mt(e,t=0){if(e.phase!=="melting"||Ee(e))return"none";const n=pt(e,t);return n<=0?"none":n<hn?"imminent":n<mn?"expiring":"none"}function yn(e){return e.startsWith(Bt)}function gn(e,t,n,o){const i=n,r=Number(i.unlock_ms),s=Number(i.locked_at_ms),a=i.item===null||i.item===void 0,u=o>=r,l=i.item?.balance,f=l===void 0?void 0:BigInt(l);return{kind:"lock",id:e,phase:a?"thawed":u?"cracked":"melting",progress:Te(s,r,o),released:u?1:0,lockedAtMs:s,unlockMs:r,creator:i.creator,beneficiary:i.beneficiary,innerType:ne(t),nowMs:o,lockedAmount:f}}function yt(e,t,n,o,i,r){let s=0n;const a=e*n/Ft;a>0n&&t>0n&&r>=t&&(s+=a);const u=e-a;if(u>0n){const l=o,f=i;if(l===f)r>=l&&(s+=u);else if(r>=f)s+=u;else if(r>l){const h=r-l,c=f-l;s+=u*h/c}}return s>e?e:s}function vn(e){return e.startsWith(Ut)}function bn(e){return e.startsWith(Ht)}function gt(e,t){return Math.max(e,t)}function vt(e,t){return t===0n?"thawed":e>=1?"cracked":"melting"}function wn(e,t,n,o){const i=n,r=BigInt(i.total_locked),s=BigInt(i.claimed),a=Number(i.cliff_ts_ms),u=Number(i.linear_end_ms),l=Number(i.linear_start_ms),f=Number(i.created_at_ms),h=yt(r,BigInt(i.cliff_ts_ms),BigInt(i.cliff_bps),BigInt(i.linear_start_ms),BigInt(i.linear_end_ms),BigInt(o)),c=h>s?h-s:0n,d=gt(a,u),m=r===0n?1:Number(h*10000n/r)/1e4;return{kind:"vault",id:e,phase:vt(m,r-s),progress:Te(f,d,o),released:m,lockedAtMs:f,unlockMs:d,creator:i.creator,beneficiary:i.beneficiary,innerType:ne(t),totalLocked:r,claimed:s,claimable:c,cliffBps:Number(i.cliff_bps),cliffTsMs:a,linearStartMs:l,linearEndMs:u,nowMs:o}}function kn(e,t,n,o,i){const r=n,s=BigInt(r.total_locked),a=Number(r.cliff_ts_ms),u=Number(r.linear_end_ms),l=Number(r.linear_start_ms),f=Number(r.created_at_ms),h=new Map;for(const p of r.claimed?.contents??[])h.set(p.key,BigInt(p.value));const c=(r.shares?.contents??[]).map(p=>({address:p.key,shareBps:Number(p.value),claimed:h.get(p.key)??0n})),d=yt(s,BigInt(r.cliff_ts_ms),BigInt(r.cliff_bps),BigInt(r.linear_start_ms),BigInt(r.linear_end_ms),BigInt(o)),m=c.reduce((p,M)=>p+M.claimed,0n),b=gt(a,u),g=s===0n?1:Number(d*10000n/s)/1e4;return{kind:"multi",id:e,phase:vt(g,s-m),progress:Te(f,b,o),released:g,lockedAtMs:f,unlockMs:b,creator:r.creator,beneficiary:i??null,innerType:ne(t),totalLocked:s,claimed:m,claimable:0n,cliffBps:Number(r.cliff_bps),cliffTsMs:a,linearStartMs:l,linearEndMs:u,beneficiaries:c,nowMs:o}}const Mn=12,Ln=/^[A-Za-z0-9][A-Za-z0-9._-]{0,11}$/;function xn(e){if(!e)return null;const t=e.trim();return t.length>Mn?null:Ln.test(t)?t:null}const Sn=`
query Meta($coinType: String!) {
coinMetadata(coinType: $coinType) { decimals symbol name }
}
`,se=new Map,ce=new Map;function En(e){const t=[e];return/::coin::coin</.test(pn(e))&&t.unshift(ne(e)),t}async function Tn(e,t){if(se.has(e))return se.get(e);const n=ce.get(e);if(n)return n;const o=Se(Sn,{coinType:e},t,{cacheMs:dn,retries:1}).then(i=>{const r=i.coinMetadata;if(!r)return null;const s=xn(r.symbol);return s?{...r,symbol:s}:null}).catch(()=>null).then(i=>(se.set(e,i),ce.delete(e),i));return ce.set(e,o),o}async function $n(e,t){for(const n of En(e)){const o=await Tn(n,t);if(o)return o}return null}function An(e,t,n,o,i){return yn(t)?gn(e,t,n,o):vn(t)?wn(e,t,n,o):bn(t)?kn(e,t,n,o,i):null}async function Nn(e,t){if(!e.innerType)return e;const n=await $n(e.innerType,t).catch(()=>null);return{...e,decimals:n?.decimals??null,symbol:n?.symbol??null}}async function On(e,t,n){const o=await fn(n),i=await _n(e,n);if(!i)return{...ze,id:e,nowMs:o};const r=An(i.address,i.type,i.json,o,t);return r?Nn(r,n):{...ze,id:e,nowMs:o}}const Pn=e=>/^0x[0-9a-fA-F]{1,64}$/.test(e.trim()),bt="permafrost:v1:";function Cn(e){try{const t=sessionStorage.getItem(bt+e);return t?JSON.parse(t):null}catch{return null}}function qe(e,t){try{sessionStorage.setItem(bt+e,JSON.stringify({value:t,storedAt:Date.now()}))}catch{}}async function In(e,t,n){const o=Cn(e),i=o?Date.now()-o.storedAt:1/0;if(o&&i<n.freshMs)return{value:o.value,storedAt:o.storedAt,stale:!1};if(o)return t().then(s=>{qe(e,s),n.onUpdate?.(s)}).catch(()=>{}),{value:o.value,storedAt:o.storedAt,stale:!0};const r=await t();return qe(e,r),{value:r,storedAt:Date.now(),stale:!1}}const Dn=e=>JSON.parse(JSON.stringify(e,(t,n)=>typeof n=="bigint"?`${n}#bigint`:n)),Ve=e=>JSON.parse(JSON.stringify(e),(t,n)=>typeof n=="string"&&n.endsWith("#bigint")?BigInt(n.slice(0,-7)):n);function Bn({progress:e,running:t=!0,tone:n="frost"}){const o=Math.min(1,Math.max(0,e)),i={frost:"#7cc4ff",warn:"#f0ab27",spent:"#94a1b2"}[n],r={frost:"#cfe9ff",warn:"#ffd98a",spent:"#c3ccd8"}[n],s=8*(1-o),a=7*o;return _("g",{class:"hourglass",children:[_("defs",{children:[_("linearGradient",{id:"hg-glass",x1:"0",y1:"0",x2:"1",y2:"1",children:[_("stop",{offset:"0%","stop-color":"#ffffff","stop-opacity":"0.55"}),_("stop",{offset:"45%","stop-color":"#cfe4f5","stop-opacity":"0.18"}),_("stop",{offset:"100%","stop-color":"#5d7690","stop-opacity":"0.3"})]}),_("clipPath",{id:"hg-top",children:_("path",{d:"M33 17 L53 17 L43.6 28 Z"})}),_("clipPath",{id:"hg-bot",children:_("path",{d:"M43.6 29 L53 40 L33 40 Z"})})]}),_("rect",{x:"30.5",y:"14.5",width:"25",height:"2.6",rx:"1.3",fill:"#8c9aad"}),_("rect",{x:"30.5",y:"39.6",width:"25",height:"2.6",rx:"1.3",fill:"#8c9aad"}),_("rect",{x:"31.6",y:"15",width:"1.6",height:"26.5",rx:"0.8",fill:"#6d7a8b"}),_("rect",{x:"52.8",y:"15",width:"1.6",height:"26.5",rx:"0.8",fill:"#6d7a8b"}),_("path",{d:"M33 17 L53 17 L43.6 28 L53 40 L33 40 L43.4 28 Z",fill:"url(#hg-glass)"}),_("g",{"clip-path":"url(#hg-top)",children:[_("rect",{x:"30",y:28-s,width:"27",height:s+.5,fill:i}),_("rect",{x:"30",y:28-s,width:"27",height:"0.9",fill:r})]}),_("g",{"clip-path":"url(#hg-bot)",children:[_("rect",{x:"30",y:40-a,width:"27",height:a+.5,fill:i}),_("rect",{x:"30",y:40-a,width:"27",height:"0.9",fill:r})]}),t&&o>.01&&o<.99&&_("rect",{class:"hourglass-grain",x:"43.1",y:"28",width:"1",height:"8",fill:i,rx:"0.5"}),_("path",{d:"M33 17 L53 17 L43.6 28 L53 40 L33 40 L43.4 28 Z",fill:"none",stroke:"#b9c9da","stroke-width":"1.1","stroke-linejoin":"round",opacity:"0.9"})]})}const ae="M43 17 Q44.6 17 45.4 17.5 L70 31 Q71.4 31.8 71.4 32.6 Q71.4 33.4 70 34.2 L45.4 47.5 Q44.6 48 43 48 Q41.4 48 40.6 47.5 L16 34.2 Q14.6 33.4 14.6 32.6 Q14.6 31.8 16 31 L40.6 17.5 Q41.4 17 43 17 Z",ve="M14.6 33.4 Q14.6 32.6 16 33.4 L40.6 47.5 Q42 48.3 42 49.6 L42 75.6 Q42 77.2 41 77.2 Q40 77.2 39 76.4 L16 63.2 Q14.6 62.4 14.6 61 Z",Y="M71.4 33.4 Q71.4 32.6 70 33.4 L45.4 47.5 Q44 48.3 44 49.6 L44 75.6 Q44 77.2 45 77.2 Q46 77.2 47 76.4 L70 63.2 Q71.4 62.4 71.4 61 Z",We=`${ve} ${Y}`,A=48,S=78;function Un({melted:e,elapsed:t,phase:n,detail:o=!0,hourglass:i}){const r=Math.min(1,Math.max(0,e)),s=A+(S-A)*r,a=n==="thawed"||r>.985;return _("g",{class:"frost-block",children:[_("defs",{children:[_("linearGradient",{id:"pf-top",x1:"0.15",y1:"0",x2:"0.85",y2:"1",children:[_("stop",{offset:"0%","stop-color":"#ffffff"}),_("stop",{offset:"40%","stop-color":"var(--ice-100)"}),_("stop",{offset:"100%","stop-color":"var(--ice-300)"})]}),_("linearGradient",{id:"pf-left",x1:"0",y1:"0",x2:"0.2",y2:"1",children:[_("stop",{offset:"0%","stop-color":"var(--ice-100)","stop-opacity":"0.95"}),_("stop",{offset:"45%","stop-color":"var(--ice-300)","stop-opacity":"0.85"}),_("stop",{offset:"100%","stop-color":"var(--ice-500)","stop-opacity":"0.9"})]}),_("linearGradient",{id:"pf-right",x1:"0",y1:"0",x2:"0.4",y2:"1",children:[_("stop",{offset:"0%","stop-color":"var(--ice-300)","stop-opacity":"0.8"}),_("stop",{offset:"100%","stop-color":"var(--ice-700)","stop-opacity":"0.9"})]}),_("clipPath",{id:"pf-body",children:_("path",{d:We})}),_("filter",{id:"pf-frost",x:"-20%",y:"-20%",width:"140%",height:"140%",children:[_("feTurbulence",{type:"fractalNoise",baseFrequency:"0.09",numOctaves:"4",seed:"7",result:"n"}),_("feColorMatrix",{in:"n",type:"matrix",values:"0 0 0 0 0.86 0 0 0 0 0.94 0 0 0 0 1 0 0 0 0.5 0"})]}),_("filter",{id:"pf-soften",x:"-15%",y:"-15%",width:"130%",height:"130%",children:_("feGaussianBlur",{stdDeviation:"0.7"})})]}),_("path",{d:ve,fill:"var(--ice-900)",opacity:"0.3"}),_("path",{d:Y,fill:"var(--ice-900)",opacity:"0.2"}),!a&&_("g",{"clip-path":"url(#pf-body)",children:[_("rect",{x:"10",y:s,width:"66",height:S-s+2,fill:"url(#pf-left)",opacity:"0.8"}),_("path",{d:Y,fill:"url(#pf-right)",opacity:"0.78"}),_("rect",{x:"10",y:s,width:"66",height:S-s+2,fill:"var(--ice-300)",opacity:"0.16"}),o&&_("rect",{x:"10",y:s,width:"66",height:S-s+2,filter:"url(#pf-frost)",opacity:"0.75",style:"mix-blend-mode:screen"}),o&&_("path",{class:"frost-shimmer",d:"M22 42 Q27 44 30 48 L30 68 Q26 66 22 62 Z",fill:"#ffffff",opacity:"0.2"})]}),!a&&_("g",{transform:`translate(0 ${s-A})`,children:[_("path",{d:ae,fill:"url(#pf-top)",opacity:"0.9"}),_("path",{d:"M43 19 L64 31 L52 38 L31 26 Z",fill:"var(--ice-100)",opacity:"0.45"}),_("path",{d:ae,fill:"none",stroke:"var(--ice-100)","stroke-width":"1",opacity:"0.8"})]}),i&&!a&&_("g",{"clip-path":"url(#pf-body)",children:[_("g",{transform:"translate(0 29)",opacity:"0.62",filter:"url(#pf-soften)",children:_(Bn,{...i})}),_("path",{d:We,fill:"var(--ice-300)",opacity:"0.1"})]}),n==="melting"&&t>r+.02&&_("line",{x1:"17",x2:"69",y1:A+(S-A)*t,y2:A+(S-A)*t,stroke:"var(--ice-100)","stroke-width":"0.9","stroke-dasharray":"3 2.5",opacity:"0.55"}),_("g",{fill:"none",stroke:"var(--ice-100)","stroke-width":"1.2","stroke-linejoin":"round","stroke-linecap":"round",opacity:"0.5",children:[_("path",{d:ae}),_("path",{d:ve}),_("path",{d:Y})]}),_("g",{class:"frost-crack",stroke:"var(--ice-100)","stroke-width":"1.3","stroke-linecap":"round",fill:"none",children:[_("path",{d:"M43 48 L36 58 L45 66 L40 78"}),_("path",{d:"M36 58 L18 54"}),_("path",{d:"M45 66 L68 60"})]}),n==="melting"&&r>.02&&r<.99&&_("g",{fill:"var(--water)",opacity:"0.85",children:[_("ellipse",{class:"frost-drip",cx:"28",cy:S+1,rx:"1.3",ry:"1.9"}),_("ellipse",{class:"frost-drip",cx:"43",cy:S+3,rx:"1.1",ry:"1.7"}),_("ellipse",{class:"frost-drip",cx:"58",cy:S+1,rx:"1.3",ry:"1.9"})]}),_("ellipse",{class:"frost-puddle",cx:"43",cy:"80",rx:14+20*r,ry:2+1.8*r,fill:"var(--water)",opacity:.18+.5*r})]})}const wt=24*36e5,le=365*wt;function Hn(e){const t=Math.max(0,e.unlockMs-e.lockedAtMs),n=t>=2*le,o=t>=5*le,i=t>0&&t<=45*wt,r=e.phase==="absent"?"gone":e.phase==="thawed"?"swimming":e.phase==="cracked"?"alarmed":e.progress>=.97?"watching":e.progress>=.82?"chill":"asleep",s=r==="asleep"||r==="chill"||r==="watching";return{mood:r,scarf:s&&n,beanie:s&&o,shades:s&&i,snowcap:s&&t>=le&&e.progress>.25,zzz:r==="asleep",breath:s}}function Fn({frost:e,size:t=120,mascot:n=!0,snow:o=!0,detail:i}){const r=e.kind==="lock"?e.phase==="thawed"?1:Math.min(e.progress,.82):e.released,s=n&&t>=60&&e.phase!=="absent",a=i??t>=110,u=Hn(e);return _("svg",{class:`frost is-${e.phase} mood-${u.mood}`,width:t,height:t*(88/86),viewBox:"0 0 86 88",role:"img","aria-label":jn(e),children:[o&&e.phase!=="thawed"&&_("g",{fill:"var(--ice-100)",opacity:"0.7",children:[_("circle",{class:"frost-snow",cx:"24",cy:"10",r:"0.9"}),_("circle",{class:"frost-snow",cx:"44",cy:"6",r:"0.7"}),_("circle",{class:"frost-snow",cx:"62",cy:"12",r:"0.85"}),a&&_("circle",{class:"frost-snow",cx:"34",cy:"4",r:"0.6"}),a&&_("circle",{class:"frost-snow",cx:"54",cy:"9",r:"0.5"})]}),_(Un,{melted:r,elapsed:e.progress,phase:e.phase,detail:a,hourglass:s?{progress:e.progress,running:e.phase==="melting",tone:Ee(e)?"spent":mt(e)!=="none"?"warn":e.phase==="melting"?"frost":"spent"}:void 0})]})}function jn(e){switch(e.phase){case"absent":return"No Epoch lock found at this address";case"thawed":return"Lock fully claimed";case"cracked":return"Lock has reached its unlock date";default:return`Locked on Epoch, ${Math.round(e.progress*100)} percent of the term elapsed`}}function _e(e,t){if(!e||!Number.isFinite(e))return"—";const n={day:"2-digit",month:"2-digit",year:"numeric"};try{return new Date(e).toLocaleDateString(t||void 0,n)}catch{return new Date(e).toLocaleDateString(void 0,n)}}const Rn=[[365*24*36e5,"y"],[24*36e5,"d"],[36e5,"h"],[6e4,"m"]];function Qn(e){if(e<=0)return"unlocked";const t=[];let n=e;for(const[o,i]of Rn){const r=Math.floor(n/o);if(r>0&&(t.push(`${r}${i}`),n-=r*o),t.length===2)break}return t.length?t.join(" "):"<1m"}function Gn(e,t){if(t==null)return e.toString();const n=BigInt(10)**BigInt(t),o=e/n,i=e%n;if(i===0n)return o.toLocaleString("en-US");const r=i.toString().padStart(t,"0").replace(/0+$/,"").slice(0,4);return`${o.toLocaleString("en-US")}.${r}`}const Yn=e=>`${Math.round(e*100)}%`;function Je(e,t,n){const o=Gn(e,t);return nOn-chain registration not yet visible.
The aggregator served this blob, but we couldn't locate a matching BlobRegistered event in our scan window. It may not be certified yet, or live further back than we paged.