/// Ramp · On/Off-ramp

The bridge both ways

Most ramps only care about the way in. Protocore Ramp treats the way out as a first-class flow — crypto sold back to euros lands in a bank account by instant SEPA, the same day.

2-way
On-ramp and off-ramp
Instant
SEPA payout
Upfront
Priced before confirm
Widget
Embeds in your product
/// 01

In and out, priced up front

The buy flow quotes before it commits: rate, fee, and network on screen, and the number on the confirm button is the number that arrives. The sell flow does the same in reverse, landing euros by instant SEPA. No hidden spread discovered on the receipt.

/// 02

A product and a widget

Ramp runs standalone with its own mobile flows — and it also ships as an embeddable widget. The demo shows it inside NovaDEX, a fictional partner exchange: their interface, their users, our ramp doing the conversion underneath.

  • [ 01 ]Standalone buy and sell flows, ready to use
  • [ 02 ]Widget embed for exchanges, wallets, and apps
  • [ 03 ]Same rails and pricing in both packagings
/// Features
Ramp inside NovaDEX — their exchange, our quote on top.
/// 01

A widget inside your product

The demo shows Ramp where it earns its keep: inside NovaDEX, a fictional partner exchange. Their dark UI, their order book, our buy modal on top — €250.00 in, USDC out, the quote and €0.50 fee itemized, Base network, paid with Mastercard •••• 4417 or Apple Pay. The footer states who does what: powered by Protocore, KYC by partner.

  • [ 01 ]The host keeps its interface and its users
  • [ 02 ]Quote, fee, and network itemized inside the modal
  • [ 03 ]Card and Apple Pay on the buy leg
The buy flow — rate, fee, and network shown before the tap.
/// 02

On-ramp priced before confirm

The buy flow quotes before it commits. €250.00 becomes USDC at a rate quoted up front, and the breakdown is open on screen: rate, fee €0.50, network Base. Preset amounts — €100, €250, €500 — or the keypad. Nothing about the number changes after the tap.

Cash out — 300 USDC to a EUR account, arriving today.
/// 03

Off-ramp as a first-class flow

Most ramps stop caring once the money is in. The sell flow gets the same treatment as the buy: 300 USDC quoted to euros before confirm, a balance readout with a max button, the destination account — RO49 •••• 0421 — and the arrival stated up front: instant SEPA, today. The exit is as finished as the entrance.

  • [ 01 ]Balance shown with one-tap max — 512.40 USDC in the demo
  • [ 02 ]Destination IBAN picked before the quote is confirmed
  • [ 03 ]The amount you receive — stated before, matched after
Review before commit — the whole deal on one card.
/// 04

The sell, reviewed before it moves

The review screen is the whole deal on one card: 300 USDC on Base, the EUR account ending 0421 as the destination, the €0.50 fee on its own line, arrival by instant SEPA today. The screen says it in writing — the exact EUR amount is locked and shown before you confirm.

  • [ 01 ]Destination account confirmed before the quote
  • [ 02 ]Fee and network itemized, nothing folded in
  • [ 03 ]The exact EUR amount shown before the final tap
Activity — every order, its status, and its method in one list.
/// 05

A history that explains itself

The activity screen keeps every order with its status attached: a sell processing over instant SEPA, completed buys on Base and Solana, and — the row that matters — a cancelled buy marked no charge made. Filter by all, buy, or sell; search when the list gets long.

Limits & verification — the meter, the tiers, the upgrade path.
/// 06

Limits in the open

One meter shows the month: €2,430.00 used of €10,000, buys and sells combined, resetting Aug 1. Below it, the tiers — Basic at €150 a month on email and phone, Verified at €10,000 with an ID document and selfie check, Verified+ at €50,000 with proof of address and source of funds. The upgrade starts in-app and states its ~10 minutes up front.

Widget configuration — script, origins, theme, and a live preview.
/// 07

The partner configures it, not us

The widget is a settings page, not a support ticket: copy the embed script, list the origins allowed to mount it, pick light, dark, or auto theme, and toggle fiat currencies per market. A live preview shows exactly what users will see — with the rate line reading shown before you confirm.

  • [ 01 ]The widget refuses to mount on unlisted origins
  • [ 02 ]Auto theme follows the host page
  • [ 03 ]EUR default, other currencies as toggles
/// And more

Both directions, one product

Buy and sell are two tabs of the same flow, not two products. A user who came in through the on-ramp already knows how to leave — same layout, same breakdown, opposite direction.

Instant SEPA out

The off-ramp lands in a bank account, not a queue: USDC sold becomes euros by instant SEPA, arriving the same day. Cash out is a transfer, not a support ticket.

No hidden spread

The rate and the €0.50 fee are itemized before the user commits, and the receipt matches the quote. The number on the confirm button is the number that arrives.

Built for partners

The widget drops into exchanges, wallets, and consumer apps that need fiat rails without building them. The host keeps its brand and its users; Ramp does the conversion underneath.

A standalone app as well

Ramp also ships as its own mobile product, with complete buy and sell flows ready to use. Going direct doesn't require a host product — the standalone flows are the same ones the widget runs.

One set of rails

Widget and standalone quote the same rate, charge the same fee, and settle the same way. Packaging is a distribution choice, not a pricing tier.

Familiar ways in

The buy leg takes a saved card — Mastercard •••• 4417 in the demo — or Apple Pay. A first-time user needs a payment method they already have, not a crypto balance to start from.

Verification, credited on screen

Who verifies is printed on the flow. The demo footers read KYC by a named provider on the standalone app and KYC by partner inside the embed. Users learn who checks their documents before they upload anything.

Cancelled means uncharged

An order abandoned before commitment moves no money, and the history says so in writing: cancelled, no charge made. The edge case is answered where the user goes looking for it.

USDC on three networks

The crypto side runs USDC on Base, Ethereum, and Solana. The network is part of the quote and part of the history row — never a surprise on the receipt.

A partner back office

Partners get their own surface: orders, payouts, reports, and a developers tab, scoped to their traffic. The demo shows NovaDEX seeing NovaDEX — nothing else.

Keys that rotate

The widget mounts with a publishable key, and the key rotates in one click the day it leaks into a repo. Rotation is a routine, not an incident.

Origins that fail closed

The allowlist is enforcement, not documentation: the widget refuses to mount on any origin not listed. A copied embed on a lookalike domain renders nothing.

Theme follows the host

Light, dark, or auto — and auto reads the host page's theme attribute, so the widget matches the product around it without a stylesheet handshake.

Currencies as toggles

Fiat currencies switch on per partner — EUR as the default, RON alongside in the demo, others off until wanted. Rolling out a market is a toggle, not a build.

Events for the host

The developers tab carries the integration surface: order lifecycle events delivered to the host's systems, so a partner learns about a completed buy without polling for it.

One allowance, both directions

The monthly limit counts buys and sells together against one allowance, and the meter sits on the user's screen with its reset date printed. Nobody discovers a limit by hitting it.

Statuses that tell the truth

Orders carry their real state: processing while SEPA is in flight, completed when settled, cancelled when abandoned. A sell reads processing until the euros land — not a premature checkmark.

Quotes hold or re-quote

A quote is priced when shown and honored when confirmed. If it can no longer hold, the flow re-quotes and shows the new number before anything moves — it never silently substitutes one.

/// In the product
The widget embedded in NovaDEX — Ramp inside someone else's product.
Widget configuration — embed snippet, allowed origins, and a live preview.
/// FAQ

Both directions, answered.

  • Every quote is priced before you confirm — rate, fee, and network on screen — and the number on the confirm button is the number that lands. There is no spread discovered later on the receipt, and a cancelled order makes no charge at all.

  • The off-ramp pays out over SEPA Instant, so euros from a crypto sale land the same day. The review screen locks the exact euro amount and itemizes the fee before you commit.

  • Yes — it ships as an embeddable widget alongside the standalone flows. The demo runs it inside NovaDEX, a fictional partner exchange: their interface and users, our ramp doing the conversion. You get a publishable key, allowed origins, and an embed snippet.

  • Same rails, same pricing, different packaging. Whether a user buys in the standalone app or through the widget in your product, the quote-before-confirm flow and the settlement underneath are identical.

  • Limits rise with verification. The demo shows three tiers, and a user lifts their own ceiling by completing the next verification step in-app — the allowance used and remaining is shown as they go.

/// Evaluate

Run a euro through the ramp.

[ 01 ]

Guided demo walkthrough

We walk the buy and sell flows with you — card or Apple Pay in, USDC out, and crypto back to euros by instant SEPA — with pricing shown before each confirm.

[ 02 ]

Sandbox account

A test account for the standalone flows, so your team can complete an on-ramp and an off-ramp against test rails.

[ 03 ]

Embeddable widget keys

A publishable key and the embed snippet to drop the widget into a test page — the same integration the NovaDEX demo uses.

[ 04 ]

API access and docs

The quote and order APIs plus the integration docs, so pricing and settlement can be wired into your own product.

Availability

Ship it standalone, or embed the widget under your own brand.

In the ecosystem

Ramp is the door between euros and the crypto the rest of the family moves — Chain carries the on-chain leg, Wallets holds the result, and ATM is the same exchange with cash in hand.

Pick a product. Or take the core.

Everything above runs in production demos we can walk you through — standalone, whitelabel, or as one platform. Tell us what you're building and we'll show you the shortest path to it.

Contact us