2:I[91610,["601","static/chunks/app/docs/erc8056/page-2f82a32de066ffdc.js"],"CodeBlock"] 3:I[75001,[],""] 4:I[9596,[],""] 5:I[83453,["575","static/chunks/575-5a246ccadcf411fa.js","418","static/chunks/418-f3b6d2f154485d8f.js","998","static/chunks/app/docs/layout-c4230139aed5d08b.js"],"default",1] 6:I[5520,["575","static/chunks/575-5a246ccadcf411fa.js","913","static/chunks/913-95a4bf8751887fd7.js","319","static/chunks/319-a605e396582267ab.js","114","static/chunks/114-54f34015d309a9f8.js","654","static/chunks/654-8e46d05deaba89c2.js","395","static/chunks/395-2e55d845c3f0b2f3.js","185","static/chunks/app/layout-0fe9fc7be6bfdac9.js"],"Providers"] 0:["oSNFCr-VaZMgs1L9AoMiI",[[["",{"children":["docs",{"children":["erc8056",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",{"children":["docs",{"children":["erc8056",{"children":["__PAGE__",{},[["$L1",[["$","h1",null,{"className":"mb-3 font-display text-3xl font-bold tracking-tight text-cream","children":"ERC-8056 Stock Standard"}],["$","p",null,{"className":"mb-8 text-base leading-relaxed text-muted","children":"Robinhood Chain stock tokens implement the ERC-8056 standard to represent fractional stock shares on L2. This standard handles corporate actions like splits, merges, and dividends transparently on-chain."}],["$","h2",null,{"className":"mb-3 mt-10 font-display text-xl font-semibold text-cream","children":"Why it exists"}],["$","p",null,{"className":"mb-4 text-sm leading-relaxed text-muted","children":"In traditional finance, corporate actions (e.g. stock splits, stock dividends, mergers) frequently change the meaning of a \"share\" or require adjustments to historical pricing. A static ERC20 token cannot adapt to a 3-for-1 split without forcing every holder to swap their tokens or recalculate balances."}],["$","p",null,{"className":"mb-4 text-sm leading-relaxed text-muted","children":["ERC-8056 solves this by introducing a dynamic ",["$","code",null,{"className":"rounded bg-white/10 px-1.5 py-0.5 text-[13px] text-cream","children":"uiMultiplier()"}]," that is managed by the token issuer's oracle. The token balance stored in the ledger remains static, while user interfaces scale the displayed balance using the multiplier."]}],["$","h2",null,{"className":"mb-3 mt-10 font-display text-xl font-semibold text-cream","children":"The Interface"}],["$","$L2",null,{"code":"interface IERC8056 is IERC20 {\n // Returns the current cumulative multiplier for splits and dividends\n // 1.0 = 10^18 (1e18)\n function uiMultiplier() external view returns (uint256);\n\n // Returns true if the token's trading is halted for corporate events\n function oraclePaused() external view returns (bool);\n\n // Emitted when splits or stock dividends update the multiplier\n event UIMultiplierUpdated(uint256 newMultiplier);\n\n // Emitted when trading halts or resumes\n event OraclePauseStateChanged(bool paused);\n}","language":"solidity","title":"IERC8056.sol"}],["$","h2",null,{"className":"mb-3 mt-10 font-display text-xl font-semibold text-cream","children":"The Multiplier Rule"}],["$","div",null,{"className":"mb-5 rounded-xl border p-4 text-sm leading-relaxed border-gold/40 bg-gold/10 text-gold","children":[["$","strong",null,{"children":"Multiplier calculation applies ONLY to balances."}],"The Chainlink oracle price feeds for stocks on Robinhood Chain are already total-return adjusted (i.e., the price feed answers already account for splits and dividends). You must apply the multiplier on the **balance side**, never on the price side. Applying it to both will double-count the corporate actions!"]}],["$","h2",null,{"className":"mb-3 mt-10 font-display text-xl font-semibold text-cream","children":"How to calculate holdings"}],["$","p",null,{"className":"mb-4 text-sm leading-relaxed text-muted","children":"To display correct shares and portfolio values in your dApp, follow this math:"}],["$","$L2",null,{"code":"// 1 — Get the raw ERC20 balance\nconst rawBalance = await token.balanceOf(userAddress); // e.g. 5.0 * 1e18\n\n// 2 — Get the current stock split / dividend multiplier\nconst multiplier = await token.uiMultiplier(); // e.g. 2.0 * 1e18 (after a 2-for-1 split)\n\n// 3 — Calculate the actual share-equivalent balance\nconst shareEquivalent = (rawBalance * multiplier) / 10n ** 18n; // 10.0 * 1e18\n\n// 4 — Fetch the total return USD price from the Chainlink feed (8 decimals)\nconst priceUsd = Number(latestAnswer) / 1e8; // e.g. $150.00\n\n// 5 — Compute the actual portfolio holdings value\nconst totalValueUsd = (Number(shareEquivalent) / 1e18) * priceUsd; // $1,500.00","language":"javascript","title":"holdings-value.ts"}],["$","h2",null,{"className":"mb-3 mt-10 font-display text-xl font-semibold text-cream","children":"Oracle Pauses"}],["$","p",null,{"className":"mb-4 text-sm leading-relaxed text-muted","children":["During major corporate announcements, trading halts on traditional exchanges (NASDAQ/NYSE), or after-hours adjustments, the token issuer may call ",["$","code",null,{"className":"rounded bg-white/10 px-1.5 py-0.5 text-[13px] text-cream","children":"oraclePaused() = true"}],". While paused:"]}],["$","ul",null,{"className":"mb-4 list-disc space-y-1.5 pl-5 text-sm leading-relaxed text-muted marker:text-neon","children":[["$","li",null,{"children":"ERC20 transfer and transferFrom function calls continue to work normally."}],["$","li",null,{"children":["The ",["$","code",null,{"className":"rounded bg-white/10 px-1.5 py-0.5 text-[13px] text-cream","children":"LongbowExecutor"}]," smart contract will refuse to execute any limit or DCA orders involving the paused token to protect users from stale-oracle pricing."]}]]}]],null],null],null]},[null,["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","docs","children","erc8056","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[null,["$","$L5",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","docs","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}],"params":{}}]],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/f55723d0ee21179d.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_f367f3 __variable_dd5b2f","children":["$","body",null,{"className":"font-sans","children":["$","$L6",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]}]],null],null],["$L7",null]]]] 7:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Longbow Docs — ERC-8056 Stock Standard"}],["$","meta","3",{"name":"description","content":"Wall Street closes, the chain doesn't. Longbow tracks the gap between on-chain stock prices and real quotes on Robinhood Chain — non-custodial limit orders & DCA, keeper-executed through Uniswap V2. Nock. Draw. Loose."}],["$","meta","4",{"property":"og:title","content":"Longbow — Wall Street closes. The chain doesn't."}],["$","meta","5",{"property":"og:description","content":"The gap terminal for tokenized stocks: on-chain price vs real quote, live — with non-custodial limit & DCA orders keepers execute through Uniswap V2."}],["$","meta","6",{"property":"og:image","content":"https://longbowtrade.xyz/brand/og.png"}],["$","meta","7",{"property":"og:image:width","content":"1200"}],["$","meta","8",{"property":"og:image:height","content":"630"}],["$","meta","9",{"property":"og:image:alt","content":"Longbow"}],["$","meta","10",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","11",{"name":"twitter:site","content":"@longbowtrade"}],["$","meta","12",{"name":"twitter:title","content":"Longbow — Wall Street closes. The chain doesn't."}],["$","meta","13",{"name":"twitter:description","content":"The gap terminal for tokenized stocks: on-chain price vs real quote, live — with non-custodial limit & DCA orders keepers execute through Uniswap V2."}],["$","meta","14",{"name":"twitter:image","content":"https://longbowtrade.xyz/brand/og.png"}],["$","link","15",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"48x48"}],["$","link","16",{"rel":"icon","href":"/brand/favicon.svg","type":"image/svg+xml"}],["$","link","17",{"rel":"icon","href":"/brand/favicon-32.png","sizes":"32x32","type":"image/png"}],["$","link","18",{"rel":"icon","href":"/brand/icon-192.png","sizes":"192x192","type":"image/png"}],["$","link","19",{"rel":"apple-touch-icon","href":"/brand/apple-touch-icon.png"}]] 1:null