[{"data":1,"prerenderedAt":846},["ShallowReactive",2],{"navigation_docs":3,"-docs-polyflight-overview-and-launch":352,"-docs-polyflight-overview-and-launch-surround":841},[4,22,35,60,81,137,223,254,282,306,327],{"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},"Polyflight","\u002Fdocs\u002Fpolyflight","docs\u002F11.polyflight",[40,44,48,52,56],{"title":41,"path":42,"stem":43},"Polyflight overview and launch","\u002Fdocs\u002Fpolyflight\u002Foverview-and-launch","docs\u002F11.polyflight\u002F1.overview-and-launch",{"title":45,"path":46,"stem":47},"Native wallet contract","\u002Fdocs\u002Fpolyflight\u002Fnative-wallet-contract","docs\u002F11.polyflight\u002F2.native-wallet-contract",{"title":49,"path":50,"stem":51},"API, events, and proof","\u002Fdocs\u002Fpolyflight\u002Fapi-events-and-proof","docs\u002F11.polyflight\u002F3.api-events-and-proof",{"title":53,"path":54,"stem":55},"Terms, statements, and settlement","\u002Fdocs\u002Fpolyflight\u002Fterms-statements-and-settlement","docs\u002F11.polyflight\u002F4.terms-statements-and-settlement",{"title":57,"path":58,"stem":59},"Operations, reconciliation, and rollback","\u002Fdocs\u002Fpolyflight\u002Foperations-reconciliation-and-rollback","docs\u002F11.polyflight\u002F5.operations-reconciliation-and-rollback",{"title":61,"path":62,"stem":63,"children":64,"page":21},"Integration Flow","\u002Fdocs\u002Fintegration-flow","docs\u002F2.integration-flow",[65,69,73,77],{"title":66,"path":67,"stem":68},"Architecture","\u002Fdocs\u002Fintegration-flow\u002Farchitecture","docs\u002F2.integration-flow\u002F1.architecture",{"title":70,"path":71,"stem":72},"Launch session model","\u002Fdocs\u002Fintegration-flow\u002Flaunch-session-model","docs\u002F2.integration-flow\u002F2.launch-session-model",{"title":74,"path":75,"stem":76},"Order and wallet saga","\u002Fdocs\u002Fintegration-flow\u002Forder-and-wallet-saga","docs\u002F2.integration-flow\u002F3.order-and-wallet-saga",{"title":78,"path":79,"stem":80},"FX fees and rounding","\u002Fdocs\u002Fintegration-flow\u002Ffx-fees-and-rounding","docs\u002F2.integration-flow\u002F4.fx-fees-and-rounding",{"title":82,"path":83,"stem":84,"children":85,"page":21},"Dashboard","\u002Fdocs\u002Fdashboard","docs\u002F3.dashboard",[86,89,93,97,101,105,109,113,117,121,125,129,133],{"title":10,"path":87,"stem":88},"\u002Fdocs\u002Fdashboard\u002Foverview","docs\u002F3.dashboard\u002F1.overview",{"title":90,"path":91,"stem":92},"Webhook Deliveries","\u002Fdocs\u002Fdashboard\u002Fwebhook-deliveries","docs\u002F3.dashboard\u002F10.webhook-deliveries",{"title":94,"path":95,"stem":96},"Staffs","\u002Fdocs\u002Fdashboard\u002Fstaffs","docs\u002F3.dashboard\u002F11.staffs",{"title":98,"path":99,"stem":100},"Simulator","\u002Fdocs\u002Fdashboard\u002Fsimulator","docs\u002F3.dashboard\u002F12.simulator",{"title":102,"path":103,"stem":104},"API Playground","\u002Fdocs\u002Fdashboard\u002Fapi-playground","docs\u002F3.dashboard\u002F13.api-playground",{"title":106,"path":107,"stem":108},"API keys","\u002Fdocs\u002Fdashboard\u002Fapi-keys","docs\u002F3.dashboard\u002F2.api-keys",{"title":110,"path":111,"stem":112},"Wallet adapter settings","\u002Fdocs\u002Fdashboard\u002Fwallet-adapter-settings","docs\u002F3.dashboard\u002F3.wallet-adapter-settings",{"title":114,"path":115,"stem":116},"Webhook endpoints","\u002Fdocs\u002Fdashboard\u002Fwebhook-endpoints","docs\u002F3.dashboard\u002F4.webhook-endpoints",{"title":118,"path":119,"stem":120},"Markets and visibility","\u002Fdocs\u002Fdashboard\u002Fmarket-visibility","docs\u002F3.dashboard\u002F5.market-visibility",{"title":122,"path":123,"stem":124},"Users","\u002Fdocs\u002Fdashboard\u002Fusers","docs\u002F3.dashboard\u002F6.users",{"title":126,"path":127,"stem":128},"Trades","\u002Fdocs\u002Fdashboard\u002Ftrades","docs\u002F3.dashboard\u002F7.trades",{"title":130,"path":131,"stem":132},"Resolutions","\u002Fdocs\u002Fdashboard\u002Fresolutions","docs\u002F3.dashboard\u002F8.resolutions",{"title":134,"path":135,"stem":136},"Balance Operations","\u002Fdocs\u002Fdashboard\u002Fbalance-operations","docs\u002F3.dashboard\u002F9.balance-operations",{"title":138,"path":139,"stem":140,"children":141,"page":21},"Operator Api","\u002Fdocs\u002Foperator-api","docs\u002F4.operator-api",[142,146,149,153,156,160,163,167,171,175,179,183,186,190,194,198,202,206,209,213,216,219],{"title":143,"path":144,"stem":145},"Authentication","\u002Fdocs\u002Foperator-api\u002Fauthentication","docs\u002F4.operator-api\u002F1.authentication",{"title":114,"path":147,"stem":148},"\u002Fdocs\u002Foperator-api\u002Fwebhook-endpoints","docs\u002F4.operator-api\u002F10.webhook-endpoints",{"title":150,"path":151,"stem":152},"Webhook deliveries","\u002Fdocs\u002Foperator-api\u002Fwebhook-deliveries","docs\u002F4.operator-api\u002F11.webhook-deliveries",{"title":98,"path":154,"stem":155},"\u002Fdocs\u002Foperator-api\u002Fsimulator","docs\u002F4.operator-api\u002F12.simulator",{"title":157,"path":158,"stem":159},"Wallet adapter","\u002Fdocs\u002Foperator-api\u002Fwallet-adapter","docs\u002F4.operator-api\u002F13.wallet-adapter",{"title":94,"path":161,"stem":162},"\u002Fdocs\u002Foperator-api\u002Fstaffs","docs\u002F4.operator-api\u002F14.staffs",{"title":164,"path":165,"stem":166},"Error codes","\u002Fdocs\u002Foperator-api\u002Ferror-codes","docs\u002F4.operator-api\u002F15.error-codes",{"title":168,"path":169,"stem":170},"Redemptions","\u002Fdocs\u002Foperator-api\u002Fredemptions","docs\u002F4.operator-api\u002F16.redemptions",{"title":172,"path":173,"stem":174},"Polyflight overview","\u002Fdocs\u002Foperator-api\u002Fpolyflight","docs\u002F4.operator-api\u002F17.polyflight",{"title":176,"path":177,"stem":178},"Polyflight flights","\u002Fdocs\u002Foperator-api\u002Fpolyflight-flights","docs\u002F4.operator-api\u002F18.polyflight-flights",{"title":180,"path":181,"stem":182},"Polyflight tickets","\u002Fdocs\u002Foperator-api\u002Fpolyflight-tickets","docs\u002F4.operator-api\u002F19.polyflight-tickets",{"title":106,"path":184,"stem":185},"\u002Fdocs\u002Foperator-api\u002Fapi-keys","docs\u002F4.operator-api\u002F2.api-keys",{"title":187,"path":188,"stem":189},"Polyflight balance operations","\u002Fdocs\u002Foperator-api\u002Fpolyflight-balance-operations","docs\u002F4.operator-api\u002F20.polyflight-balance-operations",{"title":191,"path":192,"stem":193},"Polyflight terms","\u002Fdocs\u002Foperator-api\u002Fpolyflight-terms","docs\u002F4.operator-api\u002F21.polyflight-terms",{"title":195,"path":196,"stem":197},"Polyflight settlement reports","\u002Fdocs\u002Foperator-api\u002Fpolyflight-settlement-reports","docs\u002F4.operator-api\u002F22.polyflight-settlement-reports",{"title":199,"path":200,"stem":201},"Session","\u002Fdocs\u002Foperator-api\u002Fsession","docs\u002F4.operator-api\u002F3.session",{"title":203,"path":204,"stem":205},"Launch","\u002Fdocs\u002Foperator-api\u002Flaunch","docs\u002F4.operator-api\u002F4.launch",{"title":122,"path":207,"stem":208},"\u002Fdocs\u002Foperator-api\u002Fusers","docs\u002F4.operator-api\u002F5.users",{"title":210,"path":211,"stem":212},"Markets","\u002Fdocs\u002Foperator-api\u002Fmarkets","docs\u002F4.operator-api\u002F6.markets",{"title":126,"path":214,"stem":215},"\u002Fdocs\u002Foperator-api\u002Ftrades","docs\u002F4.operator-api\u002F7.trades",{"title":130,"path":217,"stem":218},"\u002Fdocs\u002Foperator-api\u002Fresolutions","docs\u002F4.operator-api\u002F8.resolutions",{"title":220,"path":221,"stem":222},"Balance operations","\u002Fdocs\u002Foperator-api\u002Fbalance-operations","docs\u002F4.operator-api\u002F9.balance-operations",{"title":224,"path":225,"stem":226,"children":227,"page":21},"Wallet Adapter","\u002Fdocs\u002Fwallet-adapter","docs\u002F5.wallet-adapter",[228,231,234,238,242,246,250],{"title":10,"path":229,"stem":230},"\u002Fdocs\u002Fwallet-adapter\u002Foverview","docs\u002F5.wallet-adapter\u002F1.overview",{"title":143,"path":232,"stem":233},"\u002Fdocs\u002Fwallet-adapter\u002Fauthentication","docs\u002F5.wallet-adapter\u002F2.authentication",{"title":235,"path":236,"stem":237},"Balance","\u002Fdocs\u002Fwallet-adapter\u002Fbalance","docs\u002F5.wallet-adapter\u002F3.balance",{"title":239,"path":240,"stem":241},"Debit","\u002Fdocs\u002Fwallet-adapter\u002Fdebit","docs\u002F5.wallet-adapter\u002F4.debit",{"title":243,"path":244,"stem":245},"Credit","\u002Fdocs\u002Fwallet-adapter\u002Fcredit","docs\u002F5.wallet-adapter\u002F5.credit",{"title":247,"path":248,"stem":249},"Debit reversal","\u002Fdocs\u002Fwallet-adapter\u002Fdebit-reversal","docs\u002F5.wallet-adapter\u002F6.debit-reversal",{"title":251,"path":252,"stem":253},"Idempotency","\u002Fdocs\u002Fwallet-adapter\u002Fidempotency","docs\u002F5.wallet-adapter\u002F7.idempotency",{"title":255,"path":256,"stem":257,"children":258,"page":21},"Webhooks","\u002Fdocs\u002Fwebhooks","docs\u002F6.webhooks",[259,262,266,270,274,278],{"title":10,"path":260,"stem":261},"\u002Fdocs\u002Fwebhooks\u002Foverview","docs\u002F6.webhooks\u002F1.overview",{"title":263,"path":264,"stem":265},"Signatures","\u002Fdocs\u002Fwebhooks\u002Fsignatures","docs\u002F6.webhooks\u002F2.signatures",{"title":267,"path":268,"stem":269},"Event envelope","\u002Fdocs\u002Fwebhooks\u002Fevent-envelope","docs\u002F6.webhooks\u002F3.event-envelope",{"title":271,"path":272,"stem":273},"Event types","\u002Fdocs\u002Fwebhooks\u002Fevent-types","docs\u002F6.webhooks\u002F4.event-types",{"title":275,"path":276,"stem":277},"Retry and replay","\u002Fdocs\u002Fwebhooks\u002Fretry-and-replay","docs\u002F6.webhooks\u002F5.retry-and-replay",{"title":279,"path":280,"stem":281},"Receiver examples","\u002Fdocs\u002Fwebhooks\u002Freceiver-examples","docs\u002F6.webhooks\u002F6.receiver-examples",{"title":283,"path":284,"stem":285,"children":286,"page":21},"Testing And Staging","\u002Fdocs\u002Ftesting-and-staging","docs\u002F7.testing-and-staging",[287,291,294,298,302],{"title":288,"path":289,"stem":290},"Staging overview","\u002Fdocs\u002Ftesting-and-staging\u002Fstaging-overview","docs\u002F7.testing-and-staging\u002F1.staging-overview",{"title":98,"path":292,"stem":293},"\u002Fdocs\u002Ftesting-and-staging\u002Fsimulator","docs\u002F7.testing-and-staging\u002F2.simulator",{"title":295,"path":296,"stem":297},"Wallet failure drills","\u002Fdocs\u002Ftesting-and-staging\u002Fwallet-failure-drills","docs\u002F7.testing-and-staging\u002F3.wallet-failure-drills",{"title":299,"path":300,"stem":301},"Webhook drills","\u002Fdocs\u002Ftesting-and-staging\u002Fwebhook-drills","docs\u002F7.testing-and-staging\u002F4.webhook-drills",{"title":303,"path":304,"stem":305},"Production cutover rehearsal","\u002Fdocs\u002Ftesting-and-staging\u002Fproduction-cutover-rehearsal","docs\u002F7.testing-and-staging\u002F5.production-cutover-rehearsal",{"title":307,"path":308,"stem":309,"children":310,"page":21},"Production Readiness","\u002Fdocs\u002Fproduction-readiness","docs\u002F8.production-readiness",[311,315,319,323],{"title":312,"path":313,"stem":314},"Checklist","\u002Fdocs\u002Fproduction-readiness\u002Fchecklist","docs\u002F8.production-readiness\u002F1.checklist",{"title":316,"path":317,"stem":318},"Operational runbook","\u002Fdocs\u002Fproduction-readiness\u002Foperational-runbook","docs\u002F8.production-readiness\u002F2.operational-runbook",{"title":320,"path":321,"stem":322},"Security","\u002Fdocs\u002Fproduction-readiness\u002Fsecurity","docs\u002F8.production-readiness\u002F3.security",{"title":324,"path":325,"stem":326},"Rollback","\u002Fdocs\u002Fproduction-readiness\u002Frollback","docs\u002F8.production-readiness\u002F4.rollback",{"title":328,"path":329,"stem":330,"children":331,"page":21},"Reference","\u002Fdocs\u002Freference","docs\u002F9.reference",[332,336,340,344,348],{"title":333,"path":334,"stem":335},"Statuses","\u002Fdocs\u002Freference\u002Fstatuses","docs\u002F9.reference\u002F1.statuses",{"title":337,"path":338,"stem":339},"Scopes","\u002Fdocs\u002Freference\u002Fscopes","docs\u002F9.reference\u002F2.scopes",{"title":341,"path":342,"stem":343},"Units and money","\u002Fdocs\u002Freference\u002Funits-and-money","docs\u002F9.reference\u002F3.units-and-money",{"title":345,"path":346,"stem":347},"Changelog","\u002Fdocs\u002Freference\u002Fchangelog","docs\u002F9.reference\u002F4.changelog",{"title":349,"path":350,"stem":351},"Virtual AMM","\u002Fdocs\u002Freference\u002Fvirtual-amm","docs\u002F9.reference\u002F5.virtual-amm",{"id":353,"title":41,"body":354,"description":834,"extension":835,"links":836,"meta":837,"navigation":838,"path":42,"seo":839,"stem":43,"__hash__":840},"docs\u002Fdocs\u002F11.polyflight\u002F1.overview-and-launch.md",{"type":355,"value":356,"toc":827},"minimark",[357,361,370,373,378,381,402,405,409,412,428,435,442,566,582,597,626,630,633,656,660,738,741,749,752,768,772,820,823],[358,359,41],"h1",{"id":360},"polyflight-overview-and-launch",[362,363,364,365,369],"p",{},"Polyflight is a separate product inside the existing OpenPoly Mini App platform. It reuses the same operator identity, launch\u002Fsession security, wallet adapter, webhook delivery, and dashboard. It does ",[366,367,368],"strong",{},"not"," use Opinion markets, shares, order pricing, or settlement formulas.",[362,371,372],{},"All participants join the same global flights. First-party Polynion users fund tickets with Credits; enabled Mini App users fund tickets directly in IDR through their operator wallet. A flight has one shared board, lock, result, and public proof.",[374,375,377],"h2",{"id":376},"enablement-boundary","Enablement boundary",[362,379,380],{},"Polyflight must be enabled for the operator before it can be launched. Enablement records:",[382,383,384,393,396,399],"ul",{},[385,386,387,388,392],"li",{},"native currency ",[389,390,391],"code",{},"IDR",";",[385,394,395],{},"a fixed Polyflight settlement timezone;",[385,397,398],{},"the initial fee-share and position-share terms;",[385,400,401],{},"the enabling administrator, reason, and time.",[362,403,404],{},"Only Polynion administrators can enable the product or schedule commercial-term changes. Operator staff and API keys have read-only access to terms and their history.",[374,406,408],{"id":407},"launch-request","Launch request",[362,410,411],{},"Use the existing endpoint:",[413,414,419],"pre",{"className":415,"code":416,"language":417,"meta":418,"style":418},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","POST \u002Fapi\u002Foperator\u002Flaunch\n","http","",[389,420,421],{"__ignoreMap":418},[422,423,426],"span",{"class":424,"line":425},"line",1,[422,427,416],{},[362,429,430,431,434],{},"Required scope: ",[389,432,433],{},"launch:write",".",[362,436,437,438,441],{},"Select Polyflight with the additive ",[389,439,440],{},"product"," field:",[413,443,447],{"className":444,"code":445,"language":446,"meta":418,"style":418},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"external_user_id\": \"operator-user-123\",\n  \"display_name\": \"Rina\",\n  \"locale\": \"id\",\n  \"product\": \"polyflight\",\n  \"metadata\": {}\n}\n","json",[389,448,449,455,483,504,525,545,560],{"__ignoreMap":418},[422,450,451],{"class":424,"line":425},[422,452,454],{"class":453},"sMK4o","{\n",[422,456,458,461,465,468,471,474,478,480],{"class":424,"line":457},2,[422,459,460],{"class":453},"  \"",[422,462,464],{"class":463},"spNyl","external_user_id",[422,466,467],{"class":453},"\"",[422,469,470],{"class":453},":",[422,472,473],{"class":453}," \"",[422,475,477],{"class":476},"sfazB","operator-user-123",[422,479,467],{"class":453},[422,481,482],{"class":453},",\n",[422,484,486,488,491,493,495,497,500,502],{"class":424,"line":485},3,[422,487,460],{"class":453},[422,489,490],{"class":463},"display_name",[422,492,467],{"class":453},[422,494,470],{"class":453},[422,496,473],{"class":453},[422,498,499],{"class":476},"Rina",[422,501,467],{"class":453},[422,503,482],{"class":453},[422,505,507,509,512,514,516,518,521,523],{"class":424,"line":506},4,[422,508,460],{"class":453},[422,510,511],{"class":463},"locale",[422,513,467],{"class":453},[422,515,470],{"class":453},[422,517,473],{"class":453},[422,519,520],{"class":476},"id",[422,522,467],{"class":453},[422,524,482],{"class":453},[422,526,528,530,532,534,536,538,541,543],{"class":424,"line":527},5,[422,529,460],{"class":453},[422,531,440],{"class":463},[422,533,467],{"class":453},[422,535,470],{"class":453},[422,537,473],{"class":453},[422,539,540],{"class":476},"polyflight",[422,542,467],{"class":453},[422,544,482],{"class":453},[422,546,548,550,553,555,557],{"class":424,"line":547},6,[422,549,460],{"class":453},[422,551,552],{"class":463},"metadata",[422,554,467],{"class":453},[422,556,470],{"class":453},[422,558,559],{"class":453}," {}\n",[422,561,563],{"class":424,"line":562},7,[422,564,565],{"class":453},"}\n",[362,567,568,569,572,573,575,576,578,579,581],{},"Allowed values are ",[389,570,571],{},"opinion"," and ",[389,574,540],{},". Omitting ",[389,577,440],{}," preserves the existing ",[389,580,571],{}," default. A Polyflight launch is rejected when the product is not enabled for the authenticated operator; it never silently falls back to Opinion.",[362,583,584,585,588,589,592,593,596],{},"The response remains the existing launch response with a short-lived, single-use ",[389,586,587],{},"launch_url",", ",[389,590,591],{},"expires_at",", and the linked ",[389,594,595],{},"operator_user",". The launch token is redeemed by the assigned Mini App host and creates the same host-bound, CSRF-protected session used by Opinion.",[362,598,599,600,602,603,606,607,610,611,614,615,618,619,622,623,625],{},"Product-aware launch and redeem\u002Fbootstrap responses expose validated ",[389,601,440],{},", operator ",[389,604,605],{},"enabled_products",", and server-selected ",[389,608,609],{},"redirect_path",". Polyflight is always ",[389,612,613],{},"\u002Fpolyflight",". Opinion defaults to ",[389,616,617],{},"\u002F","; only server-generated legacy portfolio Trade links may preserve ",[389,620,621],{},"\u002Fmarkets\u002F{encoded-slug}",". Missing, invalid, or absolute redirect metadata falls back to ",[389,624,617],{},". Follow the returned path and never derive a destination from caller-controlled metadata.",[374,627,629],{"id":628},"product-switching","Product switching",[362,631,632],{},"An authenticated Mini App session may switch between enabled products without a new operator login. Product-specific routes keep wallet and ticket state separate:",[382,634,635,638,653],{},[385,636,637],{},"Opinion remains the default experience and keeps its existing behavior.",[385,639,640,641,588,643,588,646,649,650,434],{},"Polyflight uses ",[389,642,613],{},[389,644,645],{},"\u002Fpolyflight\u002Ftickets",[389,647,648],{},"\u002Fpolyflight\u002Fhistory",", and ",[389,651,652],{},"\u002Fpolyflight\u002Fblack-box\u002F{flightCode}",[385,654,655],{},"A Polyflight ticket never creates an Opinion order or market position.",[374,657,659],{"id":658},"native-idr-ticket-contract","Native-IDR ticket contract",[661,662,663,677],"table",{},[664,665,666],"thead",{},[667,668,669,673],"tr",{},[670,671,672],"th",{},"Rule",[670,674,676],{"align":675},"right","Value",[678,679,680,691,699,706,714,722,730],"tbody",{},[667,681,682,686],{},[683,684,685],"td",{},"Currency",[683,687,688,690],{"align":675},[389,689,391],{}," only",[667,692,693,696],{},[683,694,695],{},"Minimum stake",[683,697,698],{"align":675},"1,000 IDR",[667,700,701,704],{},[683,702,703],{},"Stake step",[683,705,698],{"align":675},[667,707,708,711],{},[683,709,710],{},"Technical maximum per ticket",[683,712,713],{"align":675},"565,127,000 IDR",[667,715,716,719],{},[683,717,718],{},"Ticket fee",[683,720,721],{"align":675},"500 BPS (5%) included in the stake",[667,723,724,727],{},[683,725,726],{},"Winning payout",[683,728,729],{"align":675},"4 × net stake",[667,731,732,735],{},[683,733,734],{},"Cancelled-flight refund",[683,736,737],{"align":675},"Full original debit, including fee",[362,739,740],{},"For stake $S$:",[413,742,747],{"className":743,"code":745,"language":746,"meta":418},[744],"language-text","fee = 5% × S\nnet stake = S - fee\nwinning payout = 4 × net stake\n","text",[389,748,745],{"__ignoreMap":418},[362,750,751],{},"A 10,000 IDR ticket therefore has a 500 IDR fee, 9,500 IDR net stake, and 38,000 IDR potential payout. The potential payout is the total winning credit, not 38,000 plus return of stake.",[362,753,754,755,758,759,762,763,434],{},"No purchase or payout conversion occurs. Polyflight does not apply the Opinion ",[389,756,757],{},"fx_fee_bps",", buy\u002Fsell premiums, or ",[389,760,761],{},"operator_fee_bps"," to the user's ticket. The separately frozen Indodax rate is used only to compare IDR and Credits activity inside the shared flight; see ",[764,765,767],"a",{"href":766},"\u002Fdocs\u002Fpolyflight\u002Fapi-events-and-proof#comparison-only-fx","Mixed-money proof and comparison",[374,769,771],{"id":770},"operator-launch-checklist","Operator launch checklist",[773,774,775,781,784,787,797,810,817],"ol",{},[385,776,777,778,434],{},"Confirm Polynion has enabled Polyflight and the current terms are visible under ",[366,779,780],{},"Polyflight → Terms",[385,782,783],{},"Assign only the required read scopes to reporting integrations.",[385,785,786],{},"Confirm the existing wallet adapter accepts all Polyflight reasons and additive metadata.",[385,788,789,790,793,794,434],{},"Confirm the webhook receiver accepts all ",[389,791,792],{},"mini_app.polyflight.*"," events and deduplicates by ",[389,795,796],{},"event_id",[385,798,799,800,803,804,806,807,809],{},"In staging, use ",[366,801,802],{},"Simulator → Users"," to create or select a dedicated simulator user, then ",[366,805,98],{}," to launch ",[389,808,540],{}," through the real launch URL.",[385,811,812,813,816],{},"Do not change the operator-wide ",[389,814,815],{},"rest_v1"," adapter to simulator mode. Simulation is user-scoped.",[385,818,819],{},"Treat simulator acceptance and real external-wallet certification as separate evidence.",[362,821,822],{},"Production enablement, production wallet activity, and production deployment require separate explicit authorization. A successful staging launch is not production approval.",[824,825,826],"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}",{"title":418,"searchDepth":457,"depth":457,"links":828},[829,830,831,832,833],{"id":376,"depth":457,"text":377},{"id":407,"depth":457,"text":408},{"id":628,"depth":457,"text":629},{"id":658,"depth":457,"text":659},{"id":770,"depth":457,"text":771},"Enable and launch the native-IDR Polyflight product without changing the existing Opinion default.","md",null,{},true,{"title":41,"description":834},"NZakcaWbFO9C1ggOR-nI2LpQRMAdL4vcc2wCHM88paQ",[842,844],{"title":32,"path":33,"stem":34,"description":843,"children":-1},"What to collect before escalating an integration issue.",{"title":45,"path":46,"stem":47,"description":845,"children":-1},"Polyflight debit, payout, refund, and compensation requests on the existing REST v1 adapter.",1789570128203]