-
Notifications
You must be signed in to change notification settings - Fork 47
Description
Priority: CRITICAL
Description
A user initiated an offramp swap and send transaction intended to be worth 500,000 NGN equivalent, but the recipient only received 248,088 NGN (a 50% loss).
The user noted a mismatch in the displayed exchange rate during the transaction confirmation: the correct rate was approximately ₦1,400 per dollar, but the system displayed an incorrect rate of ₦742 per dollar. Despite the user proceeding, the backend appears to have used the incorrect ₦742 rate for fulfillment, resulting in a 50% value deficit delivered to the recipient.
The transaction receipt incorrectly showed the intended amount (500,000 NGN), but the actual amount credited to the recipient was the lower amount (248,088 NGN).
Steps to Reproduce (Hypothetical)
- User initiates a stablecoin transaction intended to result in a 500,000 NGN payout.
- The system correctly identifies the market rate (e.g., ₦1,400/$).
BUG: The rate displayed to the user for confirmation is an incorrect, undervalued rate (e.g., ₦742/$). - User proceeds with the transaction despite the warning/mismatch.
BUG: The fulfillment system executes the transaction using the incorrect ₦742/$ rate, sending only half the intended NGN amount (248,088 NGN). - The user receives a receipt showing the correct final NGN amount (500,000 NGN), creating a mismatch between the receipt and the funds received.
Details of transaction
https://paycrest-io.slack.com/archives/C07FBRH99DH/p1765824066582609
Expected Behavior
The rate displayed to the user must always be the correct, live market rate used for fulfillment.
The system should have prevented the transaction or shown a critical warning if the displayed rate and the execution rate were different, or if the rate fell far outside acceptable slippage limits.
The transaction receipt must accurately reflect the amount actually sent and the final rate used.
🛑 Impact
CRITICAL. This bug leads to immediate, severe financial loss for the user and risks major damage to platform trust and reputation.
Root Cause Investigation Areas
- Rate fetching service malfunction (pulling an outdated or incorrect rate).
- Front-end display error (showing a rate from an incorrect API endpoint).
- Fulfillment logic using a hardcoded or miscalculated rate instead of the confirmed rate from the swap service.
- System failed to prevent the transaction despite a 50% difference between the expected and calculated value.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment:
- Mobile view:
- Browser: [e.g., Chrome 112]
- Version: [e.g., 22.5]
Additional context
Add any other context about the problem here.