[{"data":1,"prerenderedAt":1162},["ShallowReactive",2],{"navigation_docs":3,"-reference-runtime-support":137,"-reference-runtime-support-surround":1157},[4,27,57,79,97,115],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":23,"path":24,"stem":25},"Architecture","\u002Fgetting-started\u002Farchitecture","1.getting-started\u002F4.architecture",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Mini Apps","i-lucide-smartphone","\u002Fmini-apps","2.mini-apps",[33,37,41,45,49,53],{"title":34,"path":35,"stem":36},"Provider runtime","\u002Fmini-apps\u002Fprovider-runtime","2.mini-apps\u002F1.provider-runtime",{"title":38,"path":39,"stem":40},"Ethereum provider","\u002Fmini-apps\u002Fethereum-provider","2.mini-apps\u002F2.ethereum-provider",{"title":42,"path":43,"stem":44},"Language and i18n","\u002Fmini-apps\u002Flanguage-i18n","2.mini-apps\u002F3.language-i18n",{"title":46,"path":47,"stem":48},"Local simulator","\u002Fmini-apps\u002Flocal-simulator","2.mini-apps\u002F4.local-simulator",{"title":50,"path":51,"stem":52},"Nuxt module","\u002Fmini-apps\u002Fnuxt-module","2.mini-apps\u002F5.nuxt-module",{"title":54,"path":55,"stem":56},"Host runtime","\u002Fmini-apps\u002Fhost-runtime","2.mini-apps\u002F6.host-runtime",{"title":58,"icon":59,"path":60,"stem":61,"children":62,"page":26},"Auth","i-lucide-key-round","\u002Fauth","3.auth",[63,67,71,75],{"title":64,"path":65,"stem":66},"Nimiq Better Auth","\u002Fauth\u002Fnimiq-better-auth","3.auth\u002F1.nimiq-better-auth",{"title":68,"path":69,"stem":70},"Cross-device approval","\u002Fauth\u002Fcross-device","3.auth\u002F2.cross-device",{"title":72,"path":73,"stem":74},"Nimiq cross-device adapter","\u002Fauth\u002Fnimiq-adapter","3.auth\u002F3.nimiq-adapter",{"title":76,"path":77,"stem":78},"Security model","\u002Fauth\u002Fsecurity-model","3.auth\u002F4.security-model",{"title":80,"icon":81,"path":82,"stem":83,"children":84,"page":26},"Utilities","i-lucide-wrench","\u002Futilities","4.utilities",[85,89,93],{"title":86,"path":87,"stem":88},"Universal Nimiq facade","\u002Futilities\u002Funimiq","4.utilities\u002F1.unimiq",{"title":90,"path":91,"stem":92},"ERC-20 helpers","\u002Futilities\u002Funerc20","4.utilities\u002F2.unerc20",{"title":94,"path":95,"stem":96},"Better Auth ledger","\u002Futilities\u002Fledger","4.utilities\u002F3.ledger",{"title":98,"icon":99,"path":100,"stem":101,"children":102,"page":26},"Testing","i-lucide-test-tube-2","\u002Ftesting","5.testing",[103,107,111],{"title":104,"path":105,"stem":106},"Local scenarios","\u002Ftesting\u002Flocal-scenarios","5.testing\u002F1.local-scenarios",{"title":108,"path":109,"stem":110},"Vitest helpers","\u002Ftesting\u002Fvitest-helpers","5.testing\u002F2.vitest-helpers",{"title":112,"path":113,"stem":114},"Bridge mode","\u002Ftesting\u002Fbridge-mode","5.testing\u002F3.bridge-mode",{"title":116,"icon":117,"path":118,"stem":119,"children":120,"page":26},"Reference","i-lucide-book-open","\u002Freference","6.reference",[121,125,129,133],{"title":122,"path":123,"stem":124},"Packages","\u002Freference\u002Fpackages","6.reference\u002F1.packages",{"title":126,"path":127,"stem":128},"Endpoints","\u002Freference\u002Fendpoints","6.reference\u002F2.endpoints",{"title":130,"path":131,"stem":132},"Runtime support","\u002Freference\u002Fruntime-support","6.reference\u002F3.runtime-support",{"title":134,"path":135,"stem":136},"Public API exports","\u002Freference\u002Fpublic-api","6.reference\u002F4.public-api",{"id":138,"title":130,"body":139,"description":1151,"extension":1152,"links":1153,"meta":1154,"navigation":269,"path":131,"seo":1155,"stem":132,"__hash__":1156},"docs\u002F6.reference\u002F3.runtime-support.md",{"type":140,"value":141,"toc":1144},"minimark",[142,146,151,154,195,202,367,378,381,385,388,405,408,528,541,545,550,560,704,707,721,725,730,739,905,908,914,918,927,930,1137,1140],[143,144,145],"p",{},"Use this page before moving code between browser, Nuxt, Node.js, Worker, and test environments.",[147,148,150],"h2",{"id":149},"browser","Browser",[143,152,153],{},"Browser mini apps can use:",[155,156,157,164,170,175,180,185,190],"ul",{},[158,159,160],"li",{},[161,162,163],"code",{},"@onmax\u002Fnimiq-mini-app-kit",[158,165,166,169],{},[161,167,168],{},"@onmax\u002Fnimiq-mini-app-kit\u002Fdev"," in local development",[158,171,172],{},[161,173,174],{},"@onmax\u002Fbetter-auth-nimiq\u002Fclient",[158,176,177],{},[161,178,179],{},"@onmax\u002Fbetter-auth-cross-device\u002Fclient",[158,181,182],{},[161,183,184],{},"@onmax\u002Fcross-device-nimiq",[158,186,187],{},[161,188,189],{},"@onmax\u002Funerc20",[158,191,192],{},[161,193,194],{},"@onmax\u002Funimiq",[143,196,197,198,201],{},"Provider helpers that read ",[161,199,200],{},"window"," require browser runtime.",[203,204,210],"pre",{"className":205,"code":206,"filename":207,"language":208,"meta":209,"style":209},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { initMiniAppProvider } from '@onmax\u002Fnimiq-mini-app-kit'\nimport { signInWithNimiq } from '@onmax\u002Fbetter-auth-nimiq\u002Fclient'\n\nconst provider = await initMiniAppProvider()\n\nawait signInWithNimiq(authClient.$fetch.bind(authClient), {\n  provider,\n  appName: 'Arcade Rewards',\n})\n","app\u002Fbrowser.ts","ts","",[161,211,212,244,264,271,293,298,329,338,358],{"__ignoreMap":209},[213,214,217,221,225,229,232,235,238,241],"span",{"class":215,"line":216},"line",1,[213,218,220],{"class":219},"s7zQu","import",[213,222,224],{"class":223},"sMK4o"," {",[213,226,228],{"class":227},"sTEyZ"," initMiniAppProvider",[213,230,231],{"class":223}," }",[213,233,234],{"class":219}," from",[213,236,237],{"class":223}," '",[213,239,163],{"class":240},"sfazB",[213,242,243],{"class":223},"'\n",[213,245,247,249,251,254,256,258,260,262],{"class":215,"line":246},2,[213,248,220],{"class":219},[213,250,224],{"class":223},[213,252,253],{"class":227}," signInWithNimiq",[213,255,231],{"class":223},[213,257,234],{"class":219},[213,259,237],{"class":223},[213,261,174],{"class":240},[213,263,243],{"class":223},[213,265,267],{"class":215,"line":266},3,[213,268,270],{"emptyLinePlaceholder":269},true,"\n",[213,272,274,278,281,284,287,290],{"class":215,"line":273},4,[213,275,277],{"class":276},"spNyl","const",[213,279,280],{"class":227}," provider ",[213,282,283],{"class":223},"=",[213,285,286],{"class":219}," await",[213,288,228],{"class":289},"s2Zo4",[213,291,292],{"class":227},"()\n",[213,294,296],{"class":215,"line":295},5,[213,297,270],{"emptyLinePlaceholder":269},[213,299,301,304,306,309,312,315,317,320,323,326],{"class":215,"line":300},6,[213,302,303],{"class":219},"await",[213,305,253],{"class":289},[213,307,308],{"class":227},"(authClient",[213,310,311],{"class":223},".",[213,313,314],{"class":227},"$fetch",[213,316,311],{"class":223},[213,318,319],{"class":289},"bind",[213,321,322],{"class":227},"(authClient)",[213,324,325],{"class":223},",",[213,327,328],{"class":223}," {\n",[213,330,332,335],{"class":215,"line":331},7,[213,333,334],{"class":227},"  provider",[213,336,337],{"class":223},",\n",[213,339,341,345,348,350,353,356],{"class":215,"line":340},8,[213,342,344],{"class":343},"swJcz","  appName",[213,346,347],{"class":223},":",[213,349,237],{"class":223},[213,351,352],{"class":240},"Arcade Rewards",[213,354,355],{"class":223},"'",[213,357,337],{"class":223},[213,359,361,364],{"class":215,"line":360},9,[213,362,363],{"class":223},"}",[213,365,366],{"class":227},")\n",[143,368,369,370,373,374,377],{},"Use browser runtime when a user gesture, injected provider, ",[161,371,372],{},"localStorage",", or ",[161,375,376],{},"EventSource"," is part of the flow.",[143,379,380],{},"Do not import browser provider helpers from server middleware.",[147,382,384],{"id":383},"nuxt","Nuxt",[143,386,387],{},"Nuxt apps can use:",[155,389,390,396,402],{},[158,391,392,395],{},[161,393,394],{},"@onmax\u002Fnimiq-mini-app-kit\u002Fnuxt"," for simulator sidecar and i18n bridge.",[158,397,398,401],{},[161,399,400],{},"@onmax\u002Funimiq\u002Fnuxt"," for the generic Nimiq facade.",[158,403,404],{},"Better Auth plugins on the server side.",[143,406,407],{},"Register the modules separately. They solve different problems.",[203,409,412],{"className":205,"code":410,"filename":411,"language":208,"meta":209,"style":209},"export default defineNuxtConfig({\n  modules: [\n    '@onmax\u002Funimiq\u002Fnuxt',\n    '@onmax\u002Fnimiq-mini-app-kit\u002Fnuxt',\n  ],\n  unimiq: {\n    network: 'test',\n    rpcUrl: process.env.NIMIQ_RPC_URL,\n  },\n})\n","nuxt.config.ts",[161,413,414,431,441,452,462,469,478,494,516,521],{"__ignoreMap":209},[213,415,416,419,422,425,428],{"class":215,"line":216},[213,417,418],{"class":219},"export",[213,420,421],{"class":219}," default",[213,423,424],{"class":289}," defineNuxtConfig",[213,426,427],{"class":227},"(",[213,429,430],{"class":223},"{\n",[213,432,433,436,438],{"class":215,"line":246},[213,434,435],{"class":343},"  modules",[213,437,347],{"class":223},[213,439,440],{"class":227}," [\n",[213,442,443,446,448,450],{"class":215,"line":266},[213,444,445],{"class":223},"    '",[213,447,400],{"class":240},[213,449,355],{"class":223},[213,451,337],{"class":223},[213,453,454,456,458,460],{"class":215,"line":273},[213,455,445],{"class":223},[213,457,394],{"class":240},[213,459,355],{"class":223},[213,461,337],{"class":223},[213,463,464,467],{"class":215,"line":295},[213,465,466],{"class":227},"  ]",[213,468,337],{"class":223},[213,470,471,474,476],{"class":215,"line":300},[213,472,473],{"class":343},"  unimiq",[213,475,347],{"class":223},[213,477,328],{"class":223},[213,479,480,483,485,487,490,492],{"class":215,"line":331},[213,481,482],{"class":343},"    network",[213,484,347],{"class":223},[213,486,237],{"class":223},[213,488,489],{"class":240},"test",[213,491,355],{"class":223},[213,493,337],{"class":223},[213,495,496,499,501,504,506,509,511,514],{"class":215,"line":340},[213,497,498],{"class":343},"    rpcUrl",[213,500,347],{"class":223},[213,502,503],{"class":227}," process",[213,505,311],{"class":223},[213,507,508],{"class":227},"env",[213,510,311],{"class":223},[213,512,513],{"class":227},"NIMIQ_RPC_URL",[213,515,337],{"class":223},[213,517,518],{"class":215,"line":360},[213,519,520],{"class":223},"  },\n",[213,522,524,526],{"class":215,"line":523},10,[213,525,363],{"class":223},[213,527,366],{"class":227},[143,529,530,531,533,534,537,538,540],{},"Use ",[161,532,400],{}," for the generic ",[161,535,536],{},"$nimiq"," runtime. Use ",[161,539,394],{}," for the mini-app simulator sidecar and host-language bridge.",[147,542,544],{"id":543},"nodejs","Node.js",[143,546,547,548,311],{},"Node.js can use server packages, tests, and RPC-backed ",[161,549,194],{},[143,551,552,553,556,557,559],{},"Set ",[161,554,555],{},"rpc.url"," for ",[161,558,194],{},"; direct web-client loading is not the server path.",[203,561,564],{"className":205,"code":562,"filename":563,"language":208,"meta":209,"style":209},"import { createNimiq } from '@onmax\u002Funimiq'\nimport { createRpcNimiqDriver } from '@onmax\u002Funimiq\u002Fdrivers'\n\nexport const nimiq = createNimiq({\n  driver: createRpcNimiqDriver({\n    networkId: 24,\n    rpc: {\n      url: process.env.NIMIQ_RPC_URL!,\n    },\n  }),\n})\n","server\u002Fnimiq.ts",[161,565,566,585,605,609,627,640,653,662,682,687,697],{"__ignoreMap":209},[213,567,568,570,572,575,577,579,581,583],{"class":215,"line":216},[213,569,220],{"class":219},[213,571,224],{"class":223},[213,573,574],{"class":227}," createNimiq",[213,576,231],{"class":223},[213,578,234],{"class":219},[213,580,237],{"class":223},[213,582,194],{"class":240},[213,584,243],{"class":223},[213,586,587,589,591,594,596,598,600,603],{"class":215,"line":246},[213,588,220],{"class":219},[213,590,224],{"class":223},[213,592,593],{"class":227}," createRpcNimiqDriver",[213,595,231],{"class":223},[213,597,234],{"class":219},[213,599,237],{"class":223},[213,601,602],{"class":240},"@onmax\u002Funimiq\u002Fdrivers",[213,604,243],{"class":223},[213,606,607],{"class":215,"line":266},[213,608,270],{"emptyLinePlaceholder":269},[213,610,611,613,616,619,621,623,625],{"class":215,"line":273},[213,612,418],{"class":219},[213,614,615],{"class":276}," const",[213,617,618],{"class":227}," nimiq ",[213,620,283],{"class":223},[213,622,574],{"class":289},[213,624,427],{"class":227},[213,626,430],{"class":223},[213,628,629,632,634,636,638],{"class":215,"line":295},[213,630,631],{"class":343},"  driver",[213,633,347],{"class":223},[213,635,593],{"class":289},[213,637,427],{"class":227},[213,639,430],{"class":223},[213,641,642,645,647,651],{"class":215,"line":300},[213,643,644],{"class":343},"    networkId",[213,646,347],{"class":223},[213,648,650],{"class":649},"sbssI"," 24",[213,652,337],{"class":223},[213,654,655,658,660],{"class":215,"line":331},[213,656,657],{"class":343},"    rpc",[213,659,347],{"class":223},[213,661,328],{"class":223},[213,663,664,667,669,671,673,675,677,679],{"class":215,"line":340},[213,665,666],{"class":343},"      url",[213,668,347],{"class":223},[213,670,503],{"class":227},[213,672,311],{"class":223},[213,674,508],{"class":227},[213,676,311],{"class":223},[213,678,513],{"class":227},[213,680,681],{"class":223},"!,\n",[213,683,684],{"class":215,"line":360},[213,685,686],{"class":223},"    },\n",[213,688,689,692,695],{"class":215,"line":523},[213,690,691],{"class":223},"  }",[213,693,694],{"class":227},")",[213,696,337],{"class":223},[213,698,700,702],{"class":215,"line":699},11,[213,701,363],{"class":223},[213,703,366],{"class":227},[143,705,706],{},"Use Node.js for Better Auth plugins, nonce stores, ledger services, and test runners.",[143,708,709,710,713,714,717,718,720],{},"Do not expect ",[161,711,712],{},"window.nimiq",", ",[161,715,716],{},"window.ethereum",", or browser ",[161,719,372],{}," to exist.",[147,722,724],{"id":723},"cloudflare-workers","Cloudflare Workers",[143,726,727,728,311],{},"Cloudflare Workers can use server-side auth code and RPC-backed ",[161,729,194],{},[143,731,552,732,734,735,738],{},[161,733,555],{}," in Worker runtime. Direct ",[161,736,737],{},"@nimiq\u002Fcore"," loading is not supported in workerd.",[203,740,743],{"className":205,"code":741,"filename":742,"language":208,"meta":209,"style":209},"import { createNimiq } from '@onmax\u002Funimiq'\nimport { createRpcNimiqDriver } from '@onmax\u002Funimiq\u002Fdrivers'\n\nexport function createWorkerNimiq(env: { NIMIQ_RPC_URL: string }) {\n  return createNimiq({\n    driver: createRpcNimiqDriver({\n      networkId: 24,\n      rpc: {\n        url: env.NIMIQ_RPC_URL,\n      },\n    }),\n  })\n}\n","worker\u002Fnimiq.ts",[161,744,745,763,781,785,818,829,842,853,862,878,883,892,899],{"__ignoreMap":209},[213,746,747,749,751,753,755,757,759,761],{"class":215,"line":216},[213,748,220],{"class":219},[213,750,224],{"class":223},[213,752,574],{"class":227},[213,754,231],{"class":223},[213,756,234],{"class":219},[213,758,237],{"class":223},[213,760,194],{"class":240},[213,762,243],{"class":223},[213,764,765,767,769,771,773,775,777,779],{"class":215,"line":246},[213,766,220],{"class":219},[213,768,224],{"class":223},[213,770,593],{"class":227},[213,772,231],{"class":223},[213,774,234],{"class":219},[213,776,237],{"class":223},[213,778,602],{"class":240},[213,780,243],{"class":223},[213,782,783],{"class":215,"line":266},[213,784,270],{"emptyLinePlaceholder":269},[213,786,787,789,792,795,797,800,802,804,807,809,813,816],{"class":215,"line":273},[213,788,418],{"class":219},[213,790,791],{"class":276}," function",[213,793,794],{"class":289}," createWorkerNimiq",[213,796,427],{"class":223},[213,798,508],{"class":799},"sHdIc",[213,801,347],{"class":223},[213,803,224],{"class":223},[213,805,806],{"class":343}," NIMIQ_RPC_URL",[213,808,347],{"class":223},[213,810,812],{"class":811},"sBMFI"," string",[213,814,815],{"class":223}," })",[213,817,328],{"class":223},[213,819,820,823,825,827],{"class":215,"line":295},[213,821,822],{"class":219},"  return",[213,824,574],{"class":289},[213,826,427],{"class":343},[213,828,430],{"class":223},[213,830,831,834,836,838,840],{"class":215,"line":300},[213,832,833],{"class":343},"    driver",[213,835,347],{"class":223},[213,837,593],{"class":289},[213,839,427],{"class":343},[213,841,430],{"class":223},[213,843,844,847,849,851],{"class":215,"line":331},[213,845,846],{"class":343},"      networkId",[213,848,347],{"class":223},[213,850,650],{"class":649},[213,852,337],{"class":223},[213,854,855,858,860],{"class":215,"line":340},[213,856,857],{"class":343},"      rpc",[213,859,347],{"class":223},[213,861,328],{"class":223},[213,863,864,867,869,872,874,876],{"class":215,"line":360},[213,865,866],{"class":343},"        url",[213,868,347],{"class":223},[213,870,871],{"class":227}," env",[213,873,311],{"class":223},[213,875,513],{"class":227},[213,877,337],{"class":223},[213,879,880],{"class":215,"line":523},[213,881,882],{"class":223},"      },\n",[213,884,885,888,890],{"class":215,"line":699},[213,886,887],{"class":223},"    }",[213,889,694],{"class":343},[213,891,337],{"class":223},[213,893,895,897],{"class":215,"line":894},12,[213,896,691],{"class":223},[213,898,366],{"class":343},[213,900,902],{"class":215,"line":901},13,[213,903,904],{"class":223},"}\n",[143,906,907],{},"Use Workers for verification and data reads that can go through HTTP RPC.",[143,909,910,911,913],{},"Do not use direct ",[161,912,737],{}," loading in workerd.",[147,915,917],{"id":916},"tests","Tests",[143,919,530,920,923,924,926],{},[161,921,922],{},"@onmax\u002Fbetter-auth-nimiq-pay-e2e"," and ",[161,925,168],{}," for deterministic tests.",[143,928,929],{},"Use bridge mode only when the test environment can publish the injected provider.",[203,931,934],{"className":205,"code":932,"filename":933,"language":208,"meta":209,"style":209},"import { expect, test } from 'vitest'\nimport { createLocalAuthFetcher, runSignInScenario } from '@onmax\u002Fbetter-auth-nimiq-pay-e2e'\n\ntest('local Nimiq auth flow', async () => {\n  const fetcher = createLocalAuthFetcher({\n    appName: 'Arcade Rewards',\n    origin: 'https:\u002F\u002Farcade.example',\n  })\n\n  const result = await runSignInScenario({ fetcher })\n\n  expect(result.ok).toBe(true)\n})\n","test\u002Fsign-in.e2e.test.ts",[161,935,936,961,985,989,1015,1032,1047,1063,1069,1073,1097,1101,1131],{"__ignoreMap":209},[213,937,938,940,942,945,947,950,952,954,956,959],{"class":215,"line":216},[213,939,220],{"class":219},[213,941,224],{"class":223},[213,943,944],{"class":227}," expect",[213,946,325],{"class":223},[213,948,949],{"class":227}," test",[213,951,231],{"class":223},[213,953,234],{"class":219},[213,955,237],{"class":223},[213,957,958],{"class":240},"vitest",[213,960,243],{"class":223},[213,962,963,965,967,970,972,975,977,979,981,983],{"class":215,"line":246},[213,964,220],{"class":219},[213,966,224],{"class":223},[213,968,969],{"class":227}," createLocalAuthFetcher",[213,971,325],{"class":223},[213,973,974],{"class":227}," runSignInScenario",[213,976,231],{"class":223},[213,978,234],{"class":219},[213,980,237],{"class":223},[213,982,922],{"class":240},[213,984,243],{"class":223},[213,986,987],{"class":215,"line":266},[213,988,270],{"emptyLinePlaceholder":269},[213,990,991,993,995,997,1000,1002,1004,1007,1010,1013],{"class":215,"line":273},[213,992,489],{"class":289},[213,994,427],{"class":227},[213,996,355],{"class":223},[213,998,999],{"class":240},"local Nimiq auth flow",[213,1001,355],{"class":223},[213,1003,325],{"class":223},[213,1005,1006],{"class":276}," async",[213,1008,1009],{"class":223}," ()",[213,1011,1012],{"class":276}," =>",[213,1014,328],{"class":223},[213,1016,1017,1020,1023,1026,1028,1030],{"class":215,"line":295},[213,1018,1019],{"class":276},"  const",[213,1021,1022],{"class":227}," fetcher",[213,1024,1025],{"class":223}," =",[213,1027,969],{"class":289},[213,1029,427],{"class":343},[213,1031,430],{"class":223},[213,1033,1034,1037,1039,1041,1043,1045],{"class":215,"line":300},[213,1035,1036],{"class":343},"    appName",[213,1038,347],{"class":223},[213,1040,237],{"class":223},[213,1042,352],{"class":240},[213,1044,355],{"class":223},[213,1046,337],{"class":223},[213,1048,1049,1052,1054,1056,1059,1061],{"class":215,"line":331},[213,1050,1051],{"class":343},"    origin",[213,1053,347],{"class":223},[213,1055,237],{"class":223},[213,1057,1058],{"class":240},"https:\u002F\u002Farcade.example",[213,1060,355],{"class":223},[213,1062,337],{"class":223},[213,1064,1065,1067],{"class":215,"line":340},[213,1066,691],{"class":223},[213,1068,366],{"class":343},[213,1070,1071],{"class":215,"line":360},[213,1072,270],{"emptyLinePlaceholder":269},[213,1074,1075,1077,1080,1082,1084,1086,1088,1091,1093,1095],{"class":215,"line":523},[213,1076,1019],{"class":276},[213,1078,1079],{"class":227}," result",[213,1081,1025],{"class":223},[213,1083,286],{"class":219},[213,1085,974],{"class":289},[213,1087,427],{"class":343},[213,1089,1090],{"class":223},"{",[213,1092,1022],{"class":227},[213,1094,231],{"class":223},[213,1096,366],{"class":343},[213,1098,1099],{"class":215,"line":699},[213,1100,270],{"emptyLinePlaceholder":269},[213,1102,1103,1106,1108,1111,1113,1116,1118,1120,1123,1125,1129],{"class":215,"line":894},[213,1104,1105],{"class":289},"  expect",[213,1107,427],{"class":343},[213,1109,1110],{"class":227},"result",[213,1112,311],{"class":223},[213,1114,1115],{"class":227},"ok",[213,1117,694],{"class":343},[213,1119,311],{"class":223},[213,1121,1122],{"class":289},"toBe",[213,1124,427],{"class":343},[213,1126,1128],{"class":1127},"sfNiH","true",[213,1130,366],{"class":343},[213,1132,1133,1135],{"class":215,"line":901},[213,1134,363],{"class":223},[213,1136,366],{"class":227},[143,1138,1139],{},"Expected behavior: local scenarios exercise nonce, sign, and verify without requiring the real Nimiq Pay bridge.",[1141,1142,1143],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":209,"searchDepth":246,"depth":246,"links":1145},[1146,1147,1148,1149,1150],{"id":149,"depth":246,"text":150},{"id":383,"depth":246,"text":384},{"id":543,"depth":246,"text":544},{"id":723,"depth":246,"text":724},{"id":916,"depth":246,"text":917},"Supported browser, Nuxt, Node.js, Worker, and test runtime expectations.","md",null,{},{"title":130,"description":1151},"iJARw3rjIheOP3AuDGVFcd3b8__1074Zd6lM3QbEcak",[1158,1160],{"title":126,"path":127,"stem":128,"description":1159,"children":-1},"Better Auth endpoint contracts for Nimiq auth, cross-device approval, and ledger.",{"title":134,"path":135,"stem":136,"description":1161,"children":-1},"Named exports for every public package and subpath.",1778838255257]