| id | Title | Status | Author | Description | Discussions to | Created |
|---|---|---|---|---|---|---|
| OIP-242 | User Ticket Cancelation | Vote Pending | @danijel | Adds feature to allow users to cancel tickets if all legs are still available to bet on, with partial refund calculation and cancellation fee. | https://discord.com/invite/overtime-io | 2025-06-03 |
This proposal introduces a new feature enabling users to cancel their tickets under specific conditions. Cancellation is only allowed if all ticket legs remain open for betting (i.e., a fresh quote can be fetched). The system calculates a refund amount capped by the original buy-in and charges a cancellation fee.
The ticket cancellation functionality allows bettors to recover part of their stake if they decide to cancel before any leg settles or becomes unavailable. The refund amount is dynamically calculated based on updated odds, ensuring that it can't be abused. A cancellation fee equal to twice the SafeBox fee (4%) is applied to cover operational costs.
Users currently have no way to retract a bet once placed, potentially by mistake, which reduces flexibility and may discourage engagement. Allowing ticket cancellation with this mechanism enhances user experience and aligns incentives by protecting the platform’s risk exposure.
originalExpectedPayout = buyIn / originalTotalQuotenewExpectedPayout = buyIn / newTotalQuote (fresh quote)newExpectedPayout >= originalExpectedPayout,refund = (buyIn * originalExpectedPayout) / newExpectedPayout - cancellationFeerefund = buyIn - cancellationFeeThe refund logic ensures users do not profit unfairly from cancellations while allowing reasonable recovery when odds change unfavorably. The cancellation fee covers administrative overhead and discourages frivolous cancellations.
Case 1: Odds improve after purchase
newExpectedPayout >= originalExpectedPayout → refund scaled proportionallyrefund = (10 * originalExpectedPayout) / newExpectedPayout - 4% fee ≈ 7.2 USDCCase 2: Odds worsen after purchase
newExpectedPayout < originalExpectedPayout → refund = buyIn - 4% fee = 9.6 USDC (approx)Refunds never exceed the original buy-in amount.
https://github.com/thales-markets/contracts-v2/pull/144
cancelTicketByOwner added.TicketResolved event with cancellation info.Copyright and related rights waived via CC0.