Reference
Changelog
Public contract changes for operators.
Changelog
Use this page to track operator-facing contract changes only.
What belongs here
- new operator API endpoints
- removed or deprecated operator API endpoints
- new webhook event types
- payload shape changes
- wallet adapter contract changes
- status or error-code changes
What does not belong here
- internal refactors with no contract impact
- infrastructure-only deploy notes
- design-only content edits with no integration impact
Entry template
## YYYY-MM-DD
### Added
- item
### Changed
- item
### Deprecated
- item
### Removed
- item
### Operator action
- required migration or "none"
2026-10-05
Changed
- Opinion settlement now separates activity-date trade fees and successful reconciled payout cash from recognition-date immutable closed-market principal and realized trading P&L; Polynion owns Opinion principal profits and losses as well as its allocated fee share
- net due is Polynion activity-month fee share plus recognized closed-market principal minus activity-month redemption payout cash; principal removes all gross trade fees, and trading P&L is displayed separately without deducting payouts twice
- historical principal closures first recognized in October are October catch-up, not new October bets or cash received; prior and frozen Finance history is preserved
- reports disclose currently resolved markets awaiting principal closure, exclude open/unreconciled principal, and block exports for missing fee history or unreconciled period payout cash; an exported report is not confirmation of bank payment or final all-time performance
- current-month reports are read-only previews; completed-month export and Finance posting rules remain enforced
- committed sell/redemption payouts retain their original request identity and valuation; unknown/sent operations are held, succeeded operations are not paid again, and contradictory receipt fields are rejected
- Polyflight commercial terms, signed-position allocation, and native-IDR statements are unchanged
Operator action
- reconcile original Opinion execution, wallet-operation, and winning-share payout evidence before principal closure; never retry an unknown wallet credit with a new key
- compare all-time totals across activity and principal-recognition months using the Opinion economics formulas, rather than treating gross volume or closed-market P&L as an extra settlement amount
2026-10-03
Changed
- newly settled native operator-wallet Polyflight losses create durable zero-amount
/creditdeliveries with reasonmini_app_polyflight_loss, ticket keymini_app_polyflight_ticket:{ticketId}:loss,metadata.operation: "loss", andmetadata.result: "lost"; newly planned wins includemetadata.result: "won" - loss acknowledgements preserve balance and ticket context, use the existing idempotency/manual-reconciliation lifecycle, and create no monetary accounting entries or liabilities; outstanding loss delivery does not block flight financial settlement
- new loss
ticket.resolvedpayloads include the deliveryobligationId; ticket APIs expose the existing payment lifecycle with effectlossand amount0 - the eight-event webhook catalogue is unchanged; no loss payout pending/processed callbacks are emitted
- the native wallet contract now includes complete Win and Lost credit request/response examples, exact case-sensitive
won/lostvalues, and zero-safe parsing guidance - simulator replay parameter conflicts surface as unknown wallet outcomes for manual reconciliation, rather than escaping the existing Opinion redemption review path or applying another credit
Operator action
- allow exactly zero only for the valid Polyflight loss-credit contract, durably record acknowledgements under the
:losskey, and keep monetary mutation amounts positive;remote_referenceremains optional - distinguish loss acknowledgement from payout in support and reconciliation; the result remains final regardless of delivery status
- do not replay historical losses or rewrite older planned/dispatched request metadata, keys, amounts, transport, or evidence
2026-09-30
Changed
- dashboard callback endpoint editor offers ten Opinion and eight Polyflight subscriptions and preserves existing selections/secret when patching other fields
- callback settings show mixed recent rows only with
polyflight:read; UAT selects the chosen product and external user, reports uncovered event subscriptions, and compares Polyflight ticket, wallet-operation, and callback evidence under their respective read scopes; omitted APIproductstill defaults to Opinion - simulator receiver setup synchronizes its signing secret without overwriting existing event selections or disabling other endpoint URLs; new simulator subscriptions include the canonical eighteen events
- simulator delivery monitoring falls back to Opinion attempts when its Beacon API key lacks
polyflight:readand explicitly labels the limitation; previously accepted callbacks remain visible - callback displays identify exact unscaled IDR minor amounts, distinguish included user ticket fee from operator commercial fee/position shares, full refund/compensation from fees, owed obligations from confirmed wallet credits, and reconstructed envelope previews from original signed bytes
- Polyflight lifecycle callbacks capture external-user identity, gross stake, included fee, net stake, potential payout, and admitted-ticket commercial terms when the event is created; old sparse events remain unknown rather than borrowing current terms
- Polyflight ticket and wallet-operation lists/exports accept an exact
external_user_idfilter so UAT evidence cannot mix users with similar IDs
Operator action
- review Polyflight event subscriptions, grant
polyflight:readfor mixed delivery inspection, and maintain durableevent_iddeduplication before replaying any previously accepted2xx
2026-09-16
Added
product: "polyflight"launch selection while omitted product remains Opinion- native-IDR Polyflight wallet reasons, stable keys, and additive metadata on existing REST v1 paths
- eight
mini_app.polyflight.*webhook events with camelCasedata - read-only Polyflight overview, flight, ticket, wallet-operation, terms, signed-statement, payment-history, and export routes
- scopes
polyflight:read,polyflight_terms:read, andpolyflight_settlements:read - v5 mixed-money anonymous proof and comparison-only frozen Indodax evidence
Operator action
- update wallet allowlists/idempotency handling and webhook subscriptions before Polyflight enablement
- grant new read scopes explicitly; existing restricted grants are unchanged
- validate dashboard-hosted simulation and the separate real REST v1 contract in staging
- obtain separate production authorization before production deployment, enablement, or wallet activity
2026-07-11
Added
GET /api/operator/trades/{marketId}/{externalUserId}for operator-scoped market/user trade-history HTMLGET /api/operator/redemptionsin the documented Operator API and Playground catalog- required wallet mutation metadata matrices for buy, sell, compensation, and redemption flows
Changed
- ambiguous primary wallet mutations now require manual review instead of remote lookup or automatic replay
- buy compensation includes
marketIdand may retry only with its original idempotency key - full-contract wallet testing keeps balance and mutation coverage without operation-lookup steps
Removed
- REST v1 operation-lookup configuration and runtime APIs
- staging simulator operation-lookup route
Operator action
- continue durable same-key mutation deduplication and stop implementing or calling lookup-by-key
- persist
marketIdfrom all trade mutation metadata - use Balance Ops, operator wallet logs,
remote_reference, and UTC timestamps for ambiguous reconciliation - never replay the same business action with a new idempotency key
Initial release
2026-06-20
Added
- operator documentation app initial structure
- operator API reference
- wallet adapter reference
- webhook reference
Operator action
- use current pages as source of truth for v1 integration
