💵On-ramping
On-ramping within the protocol allows users to acquire on-chain assets. We prioritize security and simplicity, ensuring a user-friendly experience from fiat to on-chain assets. We currently only support on-ramping from USD, EUR, SGD, GBP to USDC.
Guardrails
Limitations on On-ramping:
One order at a time: Only one on-ramp order can be created at a time.
Sequential Orders: Users must complete each on-ramp order before initiating a new one.
Cooling Period: A mandatory one-day waiting period is required between orders.
👷♂️GuardrailsNote: These guardrails are implemented to prevent the loss of funds due to potential vulnerabilities within the protocol. The limitations will be subject to adjustments by governance as we gain more confidence in the system's robustness.
Flow
1. Registration
Complete a one-time registration to securely associate your Ethereum address with your off-chain payment service ID.
🙌Registration2. Create order
Indicate your intention to on-ramp by creating an order and specifying the amount of the on-chain asset you wish to receive. The UI presents the best rates available from the off-ramper's deposits. Once your order is created, the corresponding off-ramper's liquidity is locked giving you ample time to complete the off-chain payment and generate a proof of transaction.
3. Perform Off-chain Payment
Execute an off-chain payment in fiat currency through the payment service to the designated off-ramper. The payment must at least equal the signaled on-ramp USDC amount times the off-ramper’s exchange rate.
4. Proof of Payment
After payment, the user generates a proof of payment data and it's authenticity along with also extracting the following from the payment data
On-ramper’s Off-chain payment ID
Off-ramper’s Off-chain payment ID
Payment amount
Payment timestamp
Note: The on-ramper's off-chain payment ID is hashed for privacy when sending this information on-chain.
We use both emails and web data to generate the proof of payment. Find detailed information about those here.
5. Unlocking Escrow
The smart contract checks the proof of payment along with the following to unlock the escrowed funds:
Verification of the on-ramper’s intent
Correspondence of the deposit to the correct off-ramper
Adequacy of the payment amount
Timing of the payment post-intent
Upon successful verification, the contract releases the agreed-upon USDC to the on-ramper’s address.
Proof of payment email
Proof of payment web data
Risks of on-ramping
😬RisksLast updated