[{"data":1,"prerenderedAt":1452},["ShallowReactive",2],{"navigation_docs":3,"-docs-operator-api-wallet-adapter":303,"-docs-operator-api-wallet-adapter-surround":1447},[4,22,35,56,112,174,205,233,257,278],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[9,13,17],{"title":10,"path":11,"stem":12},"Overview","\u002Fdocs\u002Fgetting-started\u002Foverview","docs\u002F1.getting-started\u002F1.overview",{"title":14,"path":15,"stem":16},"Integration checklist","\u002Fdocs\u002Fgetting-started\u002Fintegration-checklist","docs\u002F1.getting-started\u002F2.integration-checklist",{"title":18,"path":19,"stem":20},"Environments and base URLs","\u002Fdocs\u002Fgetting-started\u002Fenvironments-and-base-urls","docs\u002F1.getting-started\u002F3.environments-and-base-urls",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Troubleshooting","\u002Fdocs\u002Ftroubleshooting","docs\u002F10.troubleshooting",[27,31],{"title":28,"path":29,"stem":30},"Common errors","\u002Fdocs\u002Ftroubleshooting\u002Fcommon-errors","docs\u002F10.troubleshooting\u002F1.common-errors",{"title":32,"path":33,"stem":34},"Support escalation","\u002Fdocs\u002Ftroubleshooting\u002Fsupport-escalation","docs\u002F10.troubleshooting\u002F2.support-escalation",{"title":36,"path":37,"stem":38,"children":39,"page":21},"Integration Flow","\u002Fdocs\u002Fintegration-flow","docs\u002F2.integration-flow",[40,44,48,52],{"title":41,"path":42,"stem":43},"Architecture","\u002Fdocs\u002Fintegration-flow\u002Farchitecture","docs\u002F2.integration-flow\u002F1.architecture",{"title":45,"path":46,"stem":47},"Launch session model","\u002Fdocs\u002Fintegration-flow\u002Flaunch-session-model","docs\u002F2.integration-flow\u002F2.launch-session-model",{"title":49,"path":50,"stem":51},"Order and wallet saga","\u002Fdocs\u002Fintegration-flow\u002Forder-and-wallet-saga","docs\u002F2.integration-flow\u002F3.order-and-wallet-saga",{"title":53,"path":54,"stem":55},"FX fees and rounding","\u002Fdocs\u002Fintegration-flow\u002Ffx-fees-and-rounding","docs\u002F2.integration-flow\u002F4.fx-fees-and-rounding",{"title":57,"path":58,"stem":59,"children":60,"page":21},"Dashboard","\u002Fdocs\u002Fdashboard","docs\u002F3.dashboard",[61,64,68,72,76,80,84,88,92,96,100,104,108],{"title":10,"path":62,"stem":63},"\u002Fdocs\u002Fdashboard\u002Foverview","docs\u002F3.dashboard\u002F1.overview",{"title":65,"path":66,"stem":67},"Webhook Deliveries","\u002Fdocs\u002Fdashboard\u002Fwebhook-deliveries","docs\u002F3.dashboard\u002F10.webhook-deliveries",{"title":69,"path":70,"stem":71},"Staffs","\u002Fdocs\u002Fdashboard\u002Fstaffs","docs\u002F3.dashboard\u002F11.staffs",{"title":73,"path":74,"stem":75},"Simulator","\u002Fdocs\u002Fdashboard\u002Fsimulator","docs\u002F3.dashboard\u002F12.simulator",{"title":77,"path":78,"stem":79},"API Playground","\u002Fdocs\u002Fdashboard\u002Fapi-playground","docs\u002F3.dashboard\u002F13.api-playground",{"title":81,"path":82,"stem":83},"API keys","\u002Fdocs\u002Fdashboard\u002Fapi-keys","docs\u002F3.dashboard\u002F2.api-keys",{"title":85,"path":86,"stem":87},"Wallet adapter settings","\u002Fdocs\u002Fdashboard\u002Fwallet-adapter-settings","docs\u002F3.dashboard\u002F3.wallet-adapter-settings",{"title":89,"path":90,"stem":91},"Webhook endpoints","\u002Fdocs\u002Fdashboard\u002Fwebhook-endpoints","docs\u002F3.dashboard\u002F4.webhook-endpoints",{"title":93,"path":94,"stem":95},"Markets and visibility","\u002Fdocs\u002Fdashboard\u002Fmarket-visibility","docs\u002F3.dashboard\u002F5.market-visibility",{"title":97,"path":98,"stem":99},"Users","\u002Fdocs\u002Fdashboard\u002Fusers","docs\u002F3.dashboard\u002F6.users",{"title":101,"path":102,"stem":103},"Trades","\u002Fdocs\u002Fdashboard\u002Ftrades","docs\u002F3.dashboard\u002F7.trades",{"title":105,"path":106,"stem":107},"Resolutions","\u002Fdocs\u002Fdashboard\u002Fresolutions","docs\u002F3.dashboard\u002F8.resolutions",{"title":109,"path":110,"stem":111},"Balance Operations","\u002Fdocs\u002Fdashboard\u002Fbalance-operations","docs\u002F3.dashboard\u002F9.balance-operations",{"title":113,"path":114,"stem":115,"children":116,"page":21},"Operator Api","\u002Fdocs\u002Foperator-api","docs\u002F4.operator-api",[117,121,124,128,131,135,138,142,146,149,153,157,160,164,167,170],{"title":118,"path":119,"stem":120},"Authentication","\u002Fdocs\u002Foperator-api\u002Fauthentication","docs\u002F4.operator-api\u002F1.authentication",{"title":89,"path":122,"stem":123},"\u002Fdocs\u002Foperator-api\u002Fwebhook-endpoints","docs\u002F4.operator-api\u002F10.webhook-endpoints",{"title":125,"path":126,"stem":127},"Webhook deliveries","\u002Fdocs\u002Foperator-api\u002Fwebhook-deliveries","docs\u002F4.operator-api\u002F11.webhook-deliveries",{"title":73,"path":129,"stem":130},"\u002Fdocs\u002Foperator-api\u002Fsimulator","docs\u002F4.operator-api\u002F12.simulator",{"title":132,"path":133,"stem":134},"Wallet adapter","\u002Fdocs\u002Foperator-api\u002Fwallet-adapter","docs\u002F4.operator-api\u002F13.wallet-adapter",{"title":69,"path":136,"stem":137},"\u002Fdocs\u002Foperator-api\u002Fstaffs","docs\u002F4.operator-api\u002F14.staffs",{"title":139,"path":140,"stem":141},"Error codes","\u002Fdocs\u002Foperator-api\u002Ferror-codes","docs\u002F4.operator-api\u002F15.error-codes",{"title":143,"path":144,"stem":145},"Redemptions","\u002Fdocs\u002Foperator-api\u002Fredemptions","docs\u002F4.operator-api\u002F16.redemptions",{"title":81,"path":147,"stem":148},"\u002Fdocs\u002Foperator-api\u002Fapi-keys","docs\u002F4.operator-api\u002F2.api-keys",{"title":150,"path":151,"stem":152},"Session","\u002Fdocs\u002Foperator-api\u002Fsession","docs\u002F4.operator-api\u002F3.session",{"title":154,"path":155,"stem":156},"Launch","\u002Fdocs\u002Foperator-api\u002Flaunch","docs\u002F4.operator-api\u002F4.launch",{"title":97,"path":158,"stem":159},"\u002Fdocs\u002Foperator-api\u002Fusers","docs\u002F4.operator-api\u002F5.users",{"title":161,"path":162,"stem":163},"Markets","\u002Fdocs\u002Foperator-api\u002Fmarkets","docs\u002F4.operator-api\u002F6.markets",{"title":101,"path":165,"stem":166},"\u002Fdocs\u002Foperator-api\u002Ftrades","docs\u002F4.operator-api\u002F7.trades",{"title":105,"path":168,"stem":169},"\u002Fdocs\u002Foperator-api\u002Fresolutions","docs\u002F4.operator-api\u002F8.resolutions",{"title":171,"path":172,"stem":173},"Balance operations","\u002Fdocs\u002Foperator-api\u002Fbalance-operations","docs\u002F4.operator-api\u002F9.balance-operations",{"title":175,"path":176,"stem":177,"children":178,"page":21},"Wallet Adapter","\u002Fdocs\u002Fwallet-adapter","docs\u002F5.wallet-adapter",[179,182,185,189,193,197,201],{"title":10,"path":180,"stem":181},"\u002Fdocs\u002Fwallet-adapter\u002Foverview","docs\u002F5.wallet-adapter\u002F1.overview",{"title":118,"path":183,"stem":184},"\u002Fdocs\u002Fwallet-adapter\u002Fauthentication","docs\u002F5.wallet-adapter\u002F2.authentication",{"title":186,"path":187,"stem":188},"Balance","\u002Fdocs\u002Fwallet-adapter\u002Fbalance","docs\u002F5.wallet-adapter\u002F3.balance",{"title":190,"path":191,"stem":192},"Debit","\u002Fdocs\u002Fwallet-adapter\u002Fdebit","docs\u002F5.wallet-adapter\u002F4.debit",{"title":194,"path":195,"stem":196},"Credit","\u002Fdocs\u002Fwallet-adapter\u002Fcredit","docs\u002F5.wallet-adapter\u002F5.credit",{"title":198,"path":199,"stem":200},"Debit reversal","\u002Fdocs\u002Fwallet-adapter\u002Fdebit-reversal","docs\u002F5.wallet-adapter\u002F6.debit-reversal",{"title":202,"path":203,"stem":204},"Idempotency","\u002Fdocs\u002Fwallet-adapter\u002Fidempotency","docs\u002F5.wallet-adapter\u002F7.idempotency",{"title":206,"path":207,"stem":208,"children":209,"page":21},"Webhooks","\u002Fdocs\u002Fwebhooks","docs\u002F6.webhooks",[210,213,217,221,225,229],{"title":10,"path":211,"stem":212},"\u002Fdocs\u002Fwebhooks\u002Foverview","docs\u002F6.webhooks\u002F1.overview",{"title":214,"path":215,"stem":216},"Signatures","\u002Fdocs\u002Fwebhooks\u002Fsignatures","docs\u002F6.webhooks\u002F2.signatures",{"title":218,"path":219,"stem":220},"Event envelope","\u002Fdocs\u002Fwebhooks\u002Fevent-envelope","docs\u002F6.webhooks\u002F3.event-envelope",{"title":222,"path":223,"stem":224},"Event types","\u002Fdocs\u002Fwebhooks\u002Fevent-types","docs\u002F6.webhooks\u002F4.event-types",{"title":226,"path":227,"stem":228},"Retry and replay","\u002Fdocs\u002Fwebhooks\u002Fretry-and-replay","docs\u002F6.webhooks\u002F5.retry-and-replay",{"title":230,"path":231,"stem":232},"Receiver examples","\u002Fdocs\u002Fwebhooks\u002Freceiver-examples","docs\u002F6.webhooks\u002F6.receiver-examples",{"title":234,"path":235,"stem":236,"children":237,"page":21},"Testing And Staging","\u002Fdocs\u002Ftesting-and-staging","docs\u002F7.testing-and-staging",[238,242,245,249,253],{"title":239,"path":240,"stem":241},"Staging overview","\u002Fdocs\u002Ftesting-and-staging\u002Fstaging-overview","docs\u002F7.testing-and-staging\u002F1.staging-overview",{"title":73,"path":243,"stem":244},"\u002Fdocs\u002Ftesting-and-staging\u002Fsimulator","docs\u002F7.testing-and-staging\u002F2.simulator",{"title":246,"path":247,"stem":248},"Wallet failure drills","\u002Fdocs\u002Ftesting-and-staging\u002Fwallet-failure-drills","docs\u002F7.testing-and-staging\u002F3.wallet-failure-drills",{"title":250,"path":251,"stem":252},"Webhook drills","\u002Fdocs\u002Ftesting-and-staging\u002Fwebhook-drills","docs\u002F7.testing-and-staging\u002F4.webhook-drills",{"title":254,"path":255,"stem":256},"Production cutover rehearsal","\u002Fdocs\u002Ftesting-and-staging\u002Fproduction-cutover-rehearsal","docs\u002F7.testing-and-staging\u002F5.production-cutover-rehearsal",{"title":258,"path":259,"stem":260,"children":261,"page":21},"Production Readiness","\u002Fdocs\u002Fproduction-readiness","docs\u002F8.production-readiness",[262,266,270,274],{"title":263,"path":264,"stem":265},"Checklist","\u002Fdocs\u002Fproduction-readiness\u002Fchecklist","docs\u002F8.production-readiness\u002F1.checklist",{"title":267,"path":268,"stem":269},"Operational runbook","\u002Fdocs\u002Fproduction-readiness\u002Foperational-runbook","docs\u002F8.production-readiness\u002F2.operational-runbook",{"title":271,"path":272,"stem":273},"Security","\u002Fdocs\u002Fproduction-readiness\u002Fsecurity","docs\u002F8.production-readiness\u002F3.security",{"title":275,"path":276,"stem":277},"Rollback","\u002Fdocs\u002Fproduction-readiness\u002Frollback","docs\u002F8.production-readiness\u002F4.rollback",{"title":279,"path":280,"stem":281,"children":282,"page":21},"Reference","\u002Fdocs\u002Freference","docs\u002F9.reference",[283,287,291,295,299],{"title":284,"path":285,"stem":286},"Statuses","\u002Fdocs\u002Freference\u002Fstatuses","docs\u002F9.reference\u002F1.statuses",{"title":288,"path":289,"stem":290},"Scopes","\u002Fdocs\u002Freference\u002Fscopes","docs\u002F9.reference\u002F2.scopes",{"title":292,"path":293,"stem":294},"Units and money","\u002Fdocs\u002Freference\u002Funits-and-money","docs\u002F9.reference\u002F3.units-and-money",{"title":296,"path":297,"stem":298},"Changelog","\u002Fdocs\u002Freference\u002Fchangelog","docs\u002F9.reference\u002F4.changelog",{"title":300,"path":301,"stem":302},"Virtual AMM","\u002Fdocs\u002Freference\u002Fvirtual-amm","docs\u002F9.reference\u002F5.virtual-amm",{"id":304,"title":132,"body":305,"description":1440,"extension":1441,"links":1442,"meta":1443,"navigation":1444,"path":133,"seo":1445,"stem":134,"__hash__":1446},"docs\u002Fdocs\u002F4.operator-api\u002F13.wallet-adapter.md",{"type":306,"value":307,"toc":1432},"minimark",[308,312,316,321,351,355,380,384,387,395,398,472,476,479,661,664,845,851,861,865,868,979,982,1066,1069,1146,1149,1152,1176,1182,1186,1411,1422,1428],[309,310,132],"h1",{"id":311},"wallet-adapter",[313,314,315],"p",{},"Manage the REST v1 wallet adapter configuration used by Mini App balance reads and wallet mutations.",[317,318,320],"h2",{"id":319},"paths","Paths",[322,323,328],"pre",{"className":324,"code":325,"language":326,"meta":327,"style":327},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","GET \u002Fapi\u002Foperator\u002Fwallet-adapter\nPUT \u002Fapi\u002Foperator\u002Fwallet-adapter\nPOST \u002Fapi\u002Foperator\u002Fwallet-adapter\u002Ftest\n","http","",[329,330,331,339,345],"code",{"__ignoreMap":327},[332,333,336],"span",{"class":334,"line":335},"line",1,[332,337,338],{},"GET \u002Fapi\u002Foperator\u002Fwallet-adapter\n",[332,340,342],{"class":334,"line":341},2,[332,343,344],{},"PUT \u002Fapi\u002Foperator\u002Fwallet-adapter\n",[332,346,348],{"class":334,"line":347},3,[332,349,350],{},"POST \u002Fapi\u002Foperator\u002Fwallet-adapter\u002Ftest\n",[317,352,354],{"id":353},"required-scopes","Required scopes",[356,357,358,368],"ul",{},[359,360,361,364,365],"li",{},[329,362,363],{},"wallet_adapter:read"," for ",[329,366,367],{},"GET",[359,369,370,364,373,376,377],{},[329,371,372],{},"wallet_adapter:write",[329,374,375],{},"PUT"," and ",[329,378,379],{},"POST \u002Ftest",[317,381,383],{"id":382},"get-response","GET response",[313,385,386],{},"The response is masked. Secrets are never returned.",[313,388,389,391,392,394],{},[329,390,367],{}," has no query parameters or body; only the bearer header and ",[329,393,363],{}," scope are required.",[313,396,397],{},"Fields:",[356,399,400,405,422,427,432,437,442,447,452,457,462,467],{},[359,401,402],{},[329,403,404],{},"balance_adapter_type",[359,406,407,410,411,414,415,418,419],{},[329,408,409],{},"auth_mode",": ",[329,412,413],{},"env_var",", ",[329,416,417],{},"encrypted",", or ",[329,420,421],{},"none",[359,423,424],{},[329,425,426],{},"base_url",[359,428,429],{},[329,430,431],{},"timeout_ms",[359,433,434],{},[329,435,436],{},"balance_path",[359,438,439],{},[329,440,441],{},"debit_path",[359,443,444],{},[329,445,446],{},"credit_path",[359,448,449],{},[329,450,451],{},"debit_reversal_path",[359,453,454],{},[329,455,456],{},"has_bearer_token",[359,458,459],{},[329,460,461],{},"has_signature_secret",[359,463,464],{},[329,465,466],{},"currency_code",[359,468,469],{},[329,470,471],{},"updated_at",[317,473,475],{"id":474},"put-body","PUT body",[313,477,478],{},"Typical body:",[322,480,484],{"className":481,"code":482,"language":483,"meta":327,"style":327},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"base_url\": \"https:\u002F\u002Fwallet.operator.example\",\n  \"bearer_token\": \"operator-wallet-token\",\n  \"signature_secret\": \"optional-signing-secret\",\n  \"timeout_ms\": 10000,\n  \"balance_path\": \"\u002Fbalance\",\n  \"debit_path\": \"\u002Fdebit\",\n  \"credit_path\": \"\u002Fcredit\",\n  \"debit_reversal_path\": \"\u002Fdebit-reversal\"\n}\n","json",[329,485,486,492,518,538,559,576,596,616,636,655],{"__ignoreMap":327},[332,487,488],{"class":334,"line":335},[332,489,491],{"class":490},"sMK4o","{\n",[332,493,494,497,500,503,506,509,513,515],{"class":334,"line":341},[332,495,496],{"class":490},"  \"",[332,498,426],{"class":499},"spNyl",[332,501,502],{"class":490},"\"",[332,504,505],{"class":490},":",[332,507,508],{"class":490}," \"",[332,510,512],{"class":511},"sfazB","https:\u002F\u002Fwallet.operator.example",[332,514,502],{"class":490},[332,516,517],{"class":490},",\n",[332,519,520,522,525,527,529,531,534,536],{"class":334,"line":347},[332,521,496],{"class":490},[332,523,524],{"class":499},"bearer_token",[332,526,502],{"class":490},[332,528,505],{"class":490},[332,530,508],{"class":490},[332,532,533],{"class":511},"operator-wallet-token",[332,535,502],{"class":490},[332,537,517],{"class":490},[332,539,541,543,546,548,550,552,555,557],{"class":334,"line":540},4,[332,542,496],{"class":490},[332,544,545],{"class":499},"signature_secret",[332,547,502],{"class":490},[332,549,505],{"class":490},[332,551,508],{"class":490},[332,553,554],{"class":511},"optional-signing-secret",[332,556,502],{"class":490},[332,558,517],{"class":490},[332,560,562,564,566,568,570,574],{"class":334,"line":561},5,[332,563,496],{"class":490},[332,565,431],{"class":499},[332,567,502],{"class":490},[332,569,505],{"class":490},[332,571,573],{"class":572},"sbssI"," 10000",[332,575,517],{"class":490},[332,577,579,581,583,585,587,589,592,594],{"class":334,"line":578},6,[332,580,496],{"class":490},[332,582,436],{"class":499},[332,584,502],{"class":490},[332,586,505],{"class":490},[332,588,508],{"class":490},[332,590,591],{"class":511},"\u002Fbalance",[332,593,502],{"class":490},[332,595,517],{"class":490},[332,597,599,601,603,605,607,609,612,614],{"class":334,"line":598},7,[332,600,496],{"class":490},[332,602,441],{"class":499},[332,604,502],{"class":490},[332,606,505],{"class":490},[332,608,508],{"class":490},[332,610,611],{"class":511},"\u002Fdebit",[332,613,502],{"class":490},[332,615,517],{"class":490},[332,617,619,621,623,625,627,629,632,634],{"class":334,"line":618},8,[332,620,496],{"class":490},[332,622,446],{"class":499},[332,624,502],{"class":490},[332,626,505],{"class":490},[332,628,508],{"class":490},[332,630,631],{"class":511},"\u002Fcredit",[332,633,502],{"class":490},[332,635,517],{"class":490},[332,637,639,641,643,645,647,649,652],{"class":334,"line":638},9,[332,640,496],{"class":490},[332,642,451],{"class":499},[332,644,502],{"class":490},[332,646,505],{"class":490},[332,648,508],{"class":490},[332,650,651],{"class":511},"\u002Fdebit-reversal",[332,653,654],{"class":490},"\"\n",[332,656,658],{"class":334,"line":657},10,[332,659,660],{"class":490},"}\n",[313,662,663],{},"A configured secret may be omitted when updating non-secret fields. Sending a new secret replaces the stored encrypted value.",[665,666,667,686],"table",{},[668,669,670],"thead",{},[671,672,673,677,680,683],"tr",{},[674,675,676],"th",{},"Field",[674,678,679],{},"Type",[674,681,682],{},"Requirement",[674,684,685],{},"Values\u002Fdefault",[687,688,689,712,727,741,766,785,799,813,827],"tbody",{},[671,690,691,696,699,705],{},[692,693,694],"td",{},[329,695,426],{},[692,697,698],{},"string",[692,700,701],{},[702,703,704],"strong",{},"Required on first setup",[692,706,707,708,711],{},"May be omitted on later updates to keep the current URL. HTTPS required except localhost\u002F",[329,709,710],{},"127.0.0.1",".",[671,713,714,718,720,724],{},[692,715,716],{},[329,717,524],{},[692,719,698],{},[692,721,722],{},[702,723,704],{},[692,725,726],{},"May be omitted later to keep the encrypted credential.",[671,728,729,733,735,738],{},[692,730,731],{},[329,732,545],{},[692,734,698],{},[692,736,737],{},"Optional",[692,739,740],{},"Enables request signing. Omit to keep an existing secret; an empty value does not clear it.",[671,742,743,747,750,752],{},[692,744,745],{},[329,746,431],{},[692,748,749],{},"integer",[692,751,737],{},[692,753,754,755,758,759,762,763,711],{},"Default ",[329,756,757],{},"10000","; clamped to ",[329,760,761],{},"1000","–",[329,764,765],{},"30000",[671,767,768,772,774,776],{},[692,769,770],{},[329,771,436],{},[692,773,698],{},[692,775,737],{},[692,777,754,778,780,781,784],{},[329,779,591],{},". A leading ",[329,782,783],{},"\u002F"," is added when missing.",[671,786,787,791,793,795],{},[692,788,789],{},[329,790,441],{},[692,792,698],{},[692,794,737],{},[692,796,754,797,711],{},[329,798,611],{},[671,800,801,805,807,809],{},[692,802,803],{},[329,804,446],{},[692,806,698],{},[692,808,737],{},[692,810,754,811,711],{},[329,812,631],{},[671,814,815,819,821,823],{},[692,816,817],{},[329,818,451],{},[692,820,698],{},[692,822,737],{},[692,824,754,825,711],{},[329,826,651],{},[671,828,829,834,836,838],{},[692,830,831],{},[329,832,833],{},"credit_reversal_path",[692,835,698],{},[692,837,737],{},[692,839,840,841,844],{},"Accepted by the API, default ",[329,842,843],{},"\u002Fcredit-reversal","; not used by current production trade\u002Fredemption flows.",[313,846,847,848,850],{},"Current dashboard-managed production paths are balance, debit, credit, and debit reversal. The backend config parser also accepts ",[329,849,833],{}," for compatibility with the shared direction enum, but the current trade\u002Fredemption processor does not call credit reversal in production flows and the masked GET response does not expose that field.",[313,852,853,854,857,858,711],{},"The current API supports REST v1 only for ",[329,855,856],{},"IDR"," operators. Unsupported currency returns ",[329,859,860],{},"400 REST_V1_UNSUPPORTED_CURRENCY",[317,862,864],{"id":863},"test-body","Test body",[313,866,867],{},"Common and mode-specific fields:",[665,869,870,882],{},[668,871,872],{},[671,873,874,876,878,880],{},[674,875,676],{},[674,877,679],{},[674,879,682],{},[674,881,685],{},[687,883,884,901,921,941,963],{},[671,885,886,891,893,898],{},[692,887,888],{},[329,889,890],{},"external_user_id",[692,892,698],{},[692,894,895],{},[702,896,897],{},"Required",[692,899,900],{},"Dedicated operator-side test user.",[671,902,903,908,910,912],{},[692,904,905],{},[329,906,907],{},"mode",[692,909,698],{},[692,911,737],{},[692,913,914,917,918,711],{},[329,915,916],{},"connection"," (default) or ",[329,919,920],{},"full_contract",[671,922,923,928,931,938],{},[692,924,925],{},[329,926,927],{},"amount_minor",[692,929,930],{},"positive integer",[692,932,933],{},[702,934,935,936],{},"Required for ",[329,937,920],{},[692,939,940],{},"Small real mutation amount in operator currency minor units.",[671,942,943,948,951,957],{},[692,944,945],{},[329,946,947],{},"confirmation",[692,949,950],{},"boolean",[692,952,953],{},[702,954,935,955],{},[329,956,920],{},[692,958,959,960,711],{},"Must be exactly ",[329,961,962],{},"true",[671,964,965,968,971,973],{},[692,966,967],{},"Adapter config fields",[692,969,970],{},"mixed",[692,972,737],{},[692,974,975,976,978],{},"May temporarily override or complete the saved config for this test. The resulting config must contain ",[329,977,426],{}," and a bearer token.",[313,980,981],{},"Connection test:",[322,983,985],{"className":481,"code":984,"language":483,"meta":327,"style":327},"{\n  \"mode\": \"connection\",\n  \"external_user_id\": \"operator-user-123\",\n  \"base_url\": \"https:\u002F\u002Fwallet.operator.example\",\n  \"bearer_token\": \"operator-wallet-token\"\n}\n",[329,986,987,991,1009,1028,1046,1062],{"__ignoreMap":327},[332,988,989],{"class":334,"line":335},[332,990,491],{"class":490},[332,992,993,995,997,999,1001,1003,1005,1007],{"class":334,"line":341},[332,994,496],{"class":490},[332,996,907],{"class":499},[332,998,502],{"class":490},[332,1000,505],{"class":490},[332,1002,508],{"class":490},[332,1004,916],{"class":511},[332,1006,502],{"class":490},[332,1008,517],{"class":490},[332,1010,1011,1013,1015,1017,1019,1021,1024,1026],{"class":334,"line":347},[332,1012,496],{"class":490},[332,1014,890],{"class":499},[332,1016,502],{"class":490},[332,1018,505],{"class":490},[332,1020,508],{"class":490},[332,1022,1023],{"class":511},"operator-user-123",[332,1025,502],{"class":490},[332,1027,517],{"class":490},[332,1029,1030,1032,1034,1036,1038,1040,1042,1044],{"class":334,"line":540},[332,1031,496],{"class":490},[332,1033,426],{"class":499},[332,1035,502],{"class":490},[332,1037,505],{"class":490},[332,1039,508],{"class":490},[332,1041,512],{"class":511},[332,1043,502],{"class":490},[332,1045,517],{"class":490},[332,1047,1048,1050,1052,1054,1056,1058,1060],{"class":334,"line":561},[332,1049,496],{"class":490},[332,1051,524],{"class":499},[332,1053,502],{"class":490},[332,1055,505],{"class":490},[332,1057,508],{"class":490},[332,1059,533],{"class":511},[332,1061,654],{"class":490},[332,1063,1064],{"class":334,"line":578},[332,1065,660],{"class":490},[313,1067,1068],{},"Full contract test:",[322,1070,1072],{"className":481,"code":1071,"language":483,"meta":327,"style":327},"{\n  \"mode\": \"full_contract\",\n  \"external_user_id\": \"operator-user-123\",\n  \"amount_minor\": 1000,\n  \"confirmation\": true\n}\n",[329,1073,1074,1078,1096,1114,1129,1142],{"__ignoreMap":327},[332,1075,1076],{"class":334,"line":335},[332,1077,491],{"class":490},[332,1079,1080,1082,1084,1086,1088,1090,1092,1094],{"class":334,"line":341},[332,1081,496],{"class":490},[332,1083,907],{"class":499},[332,1085,502],{"class":490},[332,1087,505],{"class":490},[332,1089,508],{"class":490},[332,1091,920],{"class":511},[332,1093,502],{"class":490},[332,1095,517],{"class":490},[332,1097,1098,1100,1102,1104,1106,1108,1110,1112],{"class":334,"line":347},[332,1099,496],{"class":490},[332,1101,890],{"class":499},[332,1103,502],{"class":490},[332,1105,505],{"class":490},[332,1107,508],{"class":490},[332,1109,1023],{"class":511},[332,1111,502],{"class":490},[332,1113,517],{"class":490},[332,1115,1116,1118,1120,1122,1124,1127],{"class":334,"line":540},[332,1117,496],{"class":490},[332,1119,927],{"class":499},[332,1121,502],{"class":490},[332,1123,505],{"class":490},[332,1125,1126],{"class":572}," 1000",[332,1128,517],{"class":490},[332,1130,1131,1133,1135,1137,1139],{"class":334,"line":561},[332,1132,496],{"class":490},[332,1134,947],{"class":499},[332,1136,502],{"class":490},[332,1138,505],{"class":490},[332,1140,1141],{"class":490}," true\n",[332,1143,1144],{"class":334,"line":578},[332,1145,660],{"class":490},[313,1147,1148],{},"The full contract test performs real wallet mutations against the configured or submitted adapter config. Use a dedicated test user and a small amount.",[313,1150,1151],{},"The full contract sequence is: balance, debit, debit reversal, credit, second debit, final balance. The final balance must equal the initial balance; a mismatch requires manual review.",[313,1153,1154,1155,414,1157,414,1159,414,1161,414,1164,1167,1168,1171,1172,1175],{},"All mutation test requests include ",[329,1156,890],{},[329,1158,927],{},[329,1160,466],{},[329,1162,1163],{},"idempotency_key",[329,1165,1166],{},"reason",", and ",[329,1169,1170],{},"metadata",". They do not include ",[329,1173,1174],{},"direction","; the path selected for the step is the direction.",[313,1177,1178,1179,1181],{},"If mutation responses include ",[329,1180,890],{},", the contract test surfaces it in the step output and fails the step when it does not match the requested test user.",[317,1183,1185],{"id":1184},"test-response","Test response",[322,1187,1189],{"className":481,"code":1188,"language":483,"meta":327,"style":327},"{\n  \"mode\": \"connection\",\n  \"success\": true,\n  \"requires_manual_review\": false,\n  \"steps\": [\n    {\n      \"step\": \"balance\",\n      \"method\": \"GET\",\n      \"path\": \"\u002Fbalance\",\n      \"status\": \"success\",\n      \"latency_ms\": 42,\n      \"remote_status\": \"succeeded\",\n      \"external_user_id\": \"operator-user-123\"\n    }\n  ]\n}\n",[329,1190,1191,1195,1213,1227,1241,1255,1260,1282,1301,1320,1339,1356,1377,1394,1400,1406],{"__ignoreMap":327},[332,1192,1193],{"class":334,"line":335},[332,1194,491],{"class":490},[332,1196,1197,1199,1201,1203,1205,1207,1209,1211],{"class":334,"line":341},[332,1198,496],{"class":490},[332,1200,907],{"class":499},[332,1202,502],{"class":490},[332,1204,505],{"class":490},[332,1206,508],{"class":490},[332,1208,916],{"class":511},[332,1210,502],{"class":490},[332,1212,517],{"class":490},[332,1214,1215,1217,1220,1222,1224],{"class":334,"line":347},[332,1216,496],{"class":490},[332,1218,1219],{"class":499},"success",[332,1221,502],{"class":490},[332,1223,505],{"class":490},[332,1225,1226],{"class":490}," true,\n",[332,1228,1229,1231,1234,1236,1238],{"class":334,"line":540},[332,1230,496],{"class":490},[332,1232,1233],{"class":499},"requires_manual_review",[332,1235,502],{"class":490},[332,1237,505],{"class":490},[332,1239,1240],{"class":490}," false,\n",[332,1242,1243,1245,1248,1250,1252],{"class":334,"line":561},[332,1244,496],{"class":490},[332,1246,1247],{"class":499},"steps",[332,1249,502],{"class":490},[332,1251,505],{"class":490},[332,1253,1254],{"class":490}," [\n",[332,1256,1257],{"class":334,"line":578},[332,1258,1259],{"class":490},"    {\n",[332,1261,1262,1265,1269,1271,1273,1275,1278,1280],{"class":334,"line":598},[332,1263,1264],{"class":490},"      \"",[332,1266,1268],{"class":1267},"sBMFI","step",[332,1270,502],{"class":490},[332,1272,505],{"class":490},[332,1274,508],{"class":490},[332,1276,1277],{"class":511},"balance",[332,1279,502],{"class":490},[332,1281,517],{"class":490},[332,1283,1284,1286,1289,1291,1293,1295,1297,1299],{"class":334,"line":618},[332,1285,1264],{"class":490},[332,1287,1288],{"class":1267},"method",[332,1290,502],{"class":490},[332,1292,505],{"class":490},[332,1294,508],{"class":490},[332,1296,367],{"class":511},[332,1298,502],{"class":490},[332,1300,517],{"class":490},[332,1302,1303,1305,1308,1310,1312,1314,1316,1318],{"class":334,"line":638},[332,1304,1264],{"class":490},[332,1306,1307],{"class":1267},"path",[332,1309,502],{"class":490},[332,1311,505],{"class":490},[332,1313,508],{"class":490},[332,1315,591],{"class":511},[332,1317,502],{"class":490},[332,1319,517],{"class":490},[332,1321,1322,1324,1327,1329,1331,1333,1335,1337],{"class":334,"line":657},[332,1323,1264],{"class":490},[332,1325,1326],{"class":1267},"status",[332,1328,502],{"class":490},[332,1330,505],{"class":490},[332,1332,508],{"class":490},[332,1334,1219],{"class":511},[332,1336,502],{"class":490},[332,1338,517],{"class":490},[332,1340,1342,1344,1347,1349,1351,1354],{"class":334,"line":1341},11,[332,1343,1264],{"class":490},[332,1345,1346],{"class":1267},"latency_ms",[332,1348,502],{"class":490},[332,1350,505],{"class":490},[332,1352,1353],{"class":572}," 42",[332,1355,517],{"class":490},[332,1357,1359,1361,1364,1366,1368,1370,1373,1375],{"class":334,"line":1358},12,[332,1360,1264],{"class":490},[332,1362,1363],{"class":1267},"remote_status",[332,1365,502],{"class":490},[332,1367,505],{"class":490},[332,1369,508],{"class":490},[332,1371,1372],{"class":511},"succeeded",[332,1374,502],{"class":490},[332,1376,517],{"class":490},[332,1378,1380,1382,1384,1386,1388,1390,1392],{"class":334,"line":1379},13,[332,1381,1264],{"class":490},[332,1383,890],{"class":1267},[332,1385,502],{"class":490},[332,1387,505],{"class":490},[332,1389,508],{"class":490},[332,1391,1023],{"class":511},[332,1393,654],{"class":490},[332,1395,1397],{"class":334,"line":1396},14,[332,1398,1399],{"class":490},"    }\n",[332,1401,1403],{"class":334,"line":1402},15,[332,1404,1405],{"class":490},"  ]\n",[332,1407,1409],{"class":334,"line":1408},16,[332,1410,660],{"class":490},[313,1412,1413,1414,414,1416,418,1419,711],{},"Step status can be ",[329,1415,1219],{},[329,1417,1418],{},"failed",[329,1420,1421],{},"unknown",[313,1423,1424,1427],{},[329,1425,1426],{},"requires_manual_review = true"," means a mutation or compensation step reached a state that needs operator follow-up before the test user should be reused.",[1429,1430,1431],"style",{},"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":327,"searchDepth":341,"depth":341,"links":1433},[1434,1435,1436,1437,1438,1439],{"id":319,"depth":341,"text":320},{"id":353,"depth":341,"text":354},{"id":382,"depth":341,"text":383},{"id":474,"depth":341,"text":475},{"id":863,"depth":341,"text":864},{"id":1184,"depth":341,"text":1185},"Read, update, and validate operator wallet adapter settings.","md",null,{},true,{"title":132,"description":1440},"Y4Vkad25vvxuPqXv5kuAIr6JyZIrEAHz8kwqiI80lHQ",[1448,1450],{"title":73,"path":129,"stem":130,"description":1449,"children":-1},"Staging-only simulator endpoints for operator onboarding and drills.",{"title":69,"path":136,"stem":137,"description":1451,"children":-1},"Manage human Operator Dashboard staff accounts through staff-session APIs.",1785840662837]