1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4499],{1174:(e,t,i)=>{Promise.resolve().then(i.bind(i,2372)),Promise.resolve().then(i.bind(i,8073)),Promise.resolve().then(i.t.bind(i,8500,23)),Promise.resolve().then(i.t.bind(i,8437,23))},2372:(e,t,i)=>{"use strict";i.d(t,{ThemeToggle:()=>s});var r=i(5155),o=i(2115);function s(){let[e,t]=(0,o.useState)("dark"),[i,s]=(0,o.useState)(!1);return((0,o.useEffect)(()=>{s(!0);let e=localStorage.getItem("theme");"light"===e||"dark"===e?(t(e),document.documentElement.setAttribute("data-theme",e)):t(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")},[]),i)?(0,r.jsx)("button",{onClick:()=>{let i="dark"===e?"light":"dark";t(i),localStorage.setItem("theme",i),document.documentElement.setAttribute("data-theme",i)},className:"flex h-9 w-9 items-center justify-center rounded-lg border border-[color:var(--char-border-subtle)] bg-[color:var(--char-card)] text-[color:var(--char-ink-soft)] transition hover:border-[color:var(--char-border)] hover:text-[color:var(--char-ink)]","aria-label":`Switch to ${"dark"===e?"light":"dark"} mode`,title:`Switch to ${"dark"===e?"light":"dark"} mode`,children:"light"===e?(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"5"}),(0,r.jsx)("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),(0,r.jsx)("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),(0,r.jsx)("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),(0,r.jsx)("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),(0,r.jsx)("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),(0,r.jsx)("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),(0,r.jsx)("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),(0,r.jsx)("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]}):(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})})}):null}},3321:(e,t,i)=>{"use strict";var r=i(4645);i.o(r,"usePathname")&&i.d(t,{usePathname:function(){return r.usePathname}}),i.o(r,"useSearchParams")&&i.d(t,{useSearchParams:function(){return r.useSearchParams}})},8073:(e,t,i)=>{"use strict";i.d(t,{default:()=>c});var r=i(5155),o=i(8500),s=i.n(o),a=i(3321);let n=[{title:"Start here",items:[{title:"Build on Char",href:"/docs",description:"The builder mental model and current status."},{title:"Quickstart",href:"/docs/quickstart",description:"Run a node, enable Char, and sanity-check the wiring."},{title:"Configuration",href:"/docs/config",description:"Flags and defaults (-charenable, optional ZMQ topics, ...)."},{title:"Architecture (system map)",href:"/docs/architecture",description:"How bonds, attestations, payloads, and rolls fit together."},{title:"Roadmap (what's ahead)",href:"/docs/roadmap",description:"What is shipped now and what is still hardening."}]},{title:"Tutorials",items:[{title:"Hello Char (ship a ballot)",href:"/docs/tutorials/hello-char",description:"Join a domain locally, submit a vote, attest, and fetch a roll."},{title:"Verify a decision roll",href:"/docs/tutorials/verify-a-roll",description:"What a roll proves and how consumers should treat it."}]},{title:"Domain applications",items:[{title:"Application architecture",href:"/docs/apps/architecture",description:"What a Char domain application needs to define."},{title:"Build checklist",href:"/docs/apps/checklist",description:"The decisions to make before integrating a domain app."},{title:"Common app shapes",href:"/docs/apps/examples",description:"Rollup, oracle, and bridge-style domain patterns."},{title:"Polling",href:"/docs/apps/polling",description:"Backfill and non-notification integration contexts."},{title:"ZMQ",href:"/docs/apps/zmq",description:"The simplest domain application integration."}]},{title:"Guides",items:[{title:"Domains",href:"/docs/guides/domains",description:"Domain identifiers, curation, and local participation."},{title:"Votes",href:"/docs/guides/votes",description:"How applications should think about vote payloads."},{title:"Roll consumption",href:"/docs/guides/roll-consumption",description:"Notifications, backfill, reorg handling, and what to persist."},{title:"Stake AutoManager",href:"/docs/guides/stake-auto-manager",description:"Wallet automation for maintaining operator stake."}]},{title:"Concepts",items:[{title:"Consensus (ballots + rolls)",href:"/docs/consensus"},{title:"Payloads + proofs",href:"/docs/payloads"},{title:"Attestations",href:"/docs/attestations"},{title:"Stake + weights",href:"/docs/stake"},{title:"Bonds",href:"/docs/bonds"},{title:"P2P",href:"/docs/p2p"}]},{title:"Reference",items:[{title:"RPC",href:"/docs/rpc"},{title:"Storage",href:"/docs/storage"},{title:"Security notes",href:"/docs/security"},{title:"Glossary",href:"/docs/glossary"}]}];function l({href:e,title:t,description:i}){let o=(0,a.usePathname)()===e;return(0,r.jsxs)(s(),{href:e,"aria-current":o?"page":void 0,className:["flex flex-col rounded-lg px-2 py-1 transition",o?"bg-[color:var(--char-ember)]/15 text-[color:var(--char-ember-contrast)]":"text-[color:var(--char-ink)] hover:bg-[color:var(--char-ember)]/10 hover:text-[color:var(--char-ember-contrast)]"].join(" "),children:[(0,r.jsx)("span",{className:"text-sm",children:t}),i?(0,r.jsx)("span",{className:"mt-0.5 text-xs opacity-1",children:i}):null]})}function c(){return(0,r.jsx)("nav",{className:"flex flex-col gap-4",children:n.map(e=>(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"eyebrow text-[0.62rem]",children:e.title}),(0,r.jsx)("div",{className:"mt-2 flex flex-col gap-1",children:e.items.map(e=>
1(0,r.jsx)(l,{href:e.href,title:e.title,description:e.description},e.href))})]},e.title))})}}},e=>{e.O(0,[8500,8437,8441,3794,7358],()=>e(e.s=1174)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.