๐Ÿ”„ Off-Ramp

The off-ramp process on JackRamp enables users to convert jackUSD into fiat currency in their traditional bank accounts through a secure, decentralized verification mechanism. Hereโ€™s a step-by-step breakdown of how JackRampโ€™s off-ramp process works:

  1. User Initiates Off-Ramp Request The user initiates an off-ramp request to the JackRamp smart contract. To start the process, they deposit a certain amount of jackUSD, which is then locked within the JackRamp smart contract as collateral for the off-ramp transaction.

  2. JackRamp Smart Contract Requests Merchant to Off-Ramp The JackRamp smart contract sends an off-ramp request to a verified merchant, authorizing the merchant to proceed with the fiat transfer to the userโ€™s bank account.

  3. Merchant Transfers Fiat to Userโ€™s Bank Account A merchant receives the request and transfers the equivalent fiat amount to the userโ€™s bank account. This ensures that the userโ€™s bank account is credited with the corresponding amount before the jackUSD is unlocked.

  4. Merchant Creates Proof with zkVM App To verify the fiat transfer, the merchant generates a proof using the zkVM app. The zkVM app sends an HTTP request via zkTLS to the merchantโ€™s bank*, confirming that the transaction to the userโ€™s bank account has indeed occurred. The zkVM app then submits this proof to the JackRamp smart contract on-chain, ensuring transparency and security without exposing sensitive data. Note: At the moment, we don't have access to the bank's API. We use https://moota.co/arrow-up-right to access bank data. In this hackathon, we mock the Moota API, but it's compatible with Moota in production.

  5. JackRamp Smart Contract Unlocks jackUSD for the Merchant Upon receiving and validating the proof from the zkVM app, the JackRamp smart contract unlocks the jackUSD initially deposited by the user in step 1 and transfers it to the merchantโ€™s wallet. This completes the off-ramp transaction, ensuring the user successfully off-ramps their jackUSD.

Last updated