Rampwise
slot —

Ticket RW-····/simulation — nothing is signed or sent

Cash on one side, coins on the other, and a referee you can read in between.

Rampwise is an escrow-first design for swapping local money and stablecoins with a stranger. Run a full trade below: post an offer, lock the coins, send the bank payment, release — or push it into a dispute and watch the rules decide.

  1. 1OfferMerchant posts a price
  2. 2LockCoins move into escrow
  3. 3PayBuyer sends local money
  4. 4ReleaseEscrow pays the buyer
  5. ⋯DisputeArbiter checks the proof

Loading rate…

Buyer, merchant, escrow vault and arbiter with the paths coins and payment take bank transfer · off-chain lock release Arbiter idle 0 USDC Buyer 0 USDC Merchant 250 USDC

Draft

Set the amount and local currency, then post the offer as the merchant.

Frame by frame

One trade, four moves, nothing left to trust.

  1. 01
    Offer

    The merchant posts 250 USDC at the live reference plus 1.2 %. Nothing has moved yet.

  2. 02
    Lock

    Coins leave the merchant first. The vault closes and a 15-minute window starts.

  3. 03
    Pay

    The buyer sends the bank transfer off-chain and posts only a salted hash of its reference.

  4. 04
    Release

    The merchant confirms and escrow pays the buyer. Four ledger lines, each hashed to the one before.

02

Six states. Every exit is written down before the trade starts.

Most ramp scams live in the gaps — "I sent it", "I never got it", "your time ran out". Rampwise closes the gaps by giving every state an owner, a clock and a default outcome.

Offered

Merchant posts a price

Price is a spread over a published reference rate, never a free number. The offer shows limits, accepted banks and the merchant's score.

Who acts
Buyer accepts or ignores
Default
Expires after 24 h

Locked

Coins leave the merchant first

The merchant's USDC moves into an escrow account before the buyer is asked to pay anything. The buyer pays only against coins that already exist.

Who acts
Buyer sends money
Default
Refund to merchant after 15 min

Paid

Buyer commits to a payment reference

The buyer marks the transfer sent and posts a hash of the bank reference. Nothing readable about the bank leaves their device yet.

Who acts
Merchant confirms receipt
Default
Auto-dispute after 60 min

Released

Escrow pays the buyer

The merchant confirms the money arrived and the escrow releases to the buyer's wallet. Both scores update from this single event.

Who acts
Nobody — terminal
Default
—

Disputed

Evidence beats volume

The buyer reveals the reference and salt to the arbiter. If it hashes to the earlier commitment and the bank record matches, the buyer wins.

Who acts
Arbiter rules
Default
Bond of the loser covers costs

Refunded

Silence returns the coins

If the buyer never marks payment within the window, coins go back to the merchant automatically. No one has to ask for permission.

Who acts
Nobody — terminal
Default
—
Transition table used by the simulator above
FromToTriggered byCondition
DraftOfferedMerchantAmount within limits, spread ≤ 8 %
OfferedLockedMerchantEscrow balance equals the ticket amount
LockedPaidBuyerCommitment posted inside the window
LockedRefundedClockWindow ends with no payment mark
PaidReleasedMerchantMerchant confirms receipt
PaidDisputedEither sideDisagreement, or merchant silent for 60 min
DisputedReleased / RefundedArbiterRevealed reference matches the commitment, or not

04

Exchange rates read from money that already lives on Solana.

Euro, franc, rand, Singapore dollar and peso stablecoins trade on Solana. Their live USD price is an implied FX rate — no bank feed, no API key. Thin pools drift, so each row carries its liquidity.

Currencies without a liquid on-chain stablecoin (INR, BRL, ARS, IDR, NGN…) use a rate you type in, and the tools say so.

Source: Jupiter price v3 · refreshed every 30 s

05

A score that knows the difference between 3 of 3 and 392 of 400.

Raw completion rates reward luck. The model below uses the Wilson lower bound — the completion rate you can be 95 % sure of — then weighs speed, age, stake and how many different people a trader has dealt with.

0/ 1000

—

    Model — weights are a published proposal for discussion, not a live scoring service.

    06

    What a ramp really costs, line by line.

    Fees hide in three places: the headline fee, the spread over a fair rate, and the fixed charges that punish small tickets. Edit any number to match the quotes you actually see.

    RouteFee %Spread %Fixed $Total

    Model — default values are typical published ranges for each route type, not quotes from any named provider. Rampwise network cost uses the live priority-fee reading.

    08

    Prove you paid without handing over your bank statement.

    The escrow only needs to know that a payment matching the trade happened. It does not need your name, balance or history. Rampwise splits what goes where.

    On the public ledger

    • Escrow amount and asset
    • The two wallet addresses
    • State changes and their slots
    • A 32-byte hash of the payment reference

    Kept on the buyer's device

    • The bank reference itself
    • The random salt used in the hash
    • Revealed only to an arbiter, only in a dispute

    Never collected

    • Names, ID scans or selfies
    • Bank balances or statement history
    • Contact lists or device fingerprints

    Try the commitment on its own

    Type any reference. Your browser adds 16 random bytes of salt and hashes both with SHA-256. Anyone can check a later reveal against the hash; nobody can work backwards from the hash to the reference.

    Salt
    —
    Commitment
    —

    A hash commitment proves consistency, not that money moved. Production designs pair it with a bank-side proof (for example a TLS-notarised statement line). That part is described here as a direction, not shipped.

    09

    Questions people ask before their first trade.

    Is Rampwise live? Can I trade here today?

    No. This site is a working design: the simulator, calculators and data are real, but no escrow program is deployed and no wallet is ever asked to sign. Nothing on this page moves money.

    Where do the prices come from?

    SOL/USD is read from Jupiter's price API, the Hyperliquid order-book mid and a Raydium SOL/USDC pool via DexScreener, and the median is used. Local-currency rates are implied from fiat stablecoins on Solana (EURC, VCHF, ZARP, XSGD, MXNe) via Jupiter. All are keyless public endpoints called from your browser.

    Why lock the merchant's coins before the buyer pays?

    Because the buyer is the one sending irreversible bank money. If coins are already sitting in escrow, the worst a dishonest merchant can do is refuse to confirm — which leads to a dispute where the buyer's evidence decides.

    What does the hash commitment actually prove?

    That the reference shown to the arbiter in a dispute is the same one the buyer had when they marked the trade paid. It stops stories changing after the fact. It does not, by itself, prove the bank transfer happened.

    How is the reputation score calculated?

    It combines the Wilson lower bound of the completion rate with release speed, account age, bonded stake and the number of distinct counterparties. The weights are visible in the model and you can move every input. It is a proposal, not a live service.

    Are the fee comparisons quotes from real companies?

    No. They are route types with typical published ranges, and every number is editable. The only live input is the Solana network cost, read from recent priority fees.

    Does the site store anything about me?

    No accounts, no cookies, no analytics. Calculator inputs live in the page. The simulator ledger is kept in memory and disappears on reload.

    What happens on a thin currency pool?

    Its implied rate can drift from the interbank rate. The corridor board flags pools under $50k of depth, and the spread calculator lets you type your own rate for any currency.