Introducing 0xramp: non-custodial ZEC ↔ local fiat (Pix and more) for emerging markets

Hello Zcash community,

I’m Vini B (@vinibarbosabr on X, owner of thecoding.substack.com and thecoding.dev). Together with @Michae2xl (Zcash Brazil Lead and a long term contributor to the Zcash community, with many notable initiatives here), we’ve been building something really amazing that we believe belongs in this community: 0xramp (https://0xramp.app).

0xramp is a non-custodial on-ramp and off-ramp that lets people move between Zcash and real local currencies using peer-to-peer payment rails that already exist in their countries: Pix in Brazil, UPI in India, and equivalents in Argentina (Alias), Venezuela (Pago Movil), Indonesia (GoPay), Nigeria, Ecuador, and Colombia. More corridors are planned as Peru, Cuba, Bolivia and Phillippnes.

The goal is simple: make private money usable by ordinary people without forcing them through custodial exchanges or full KYC just to get in or out.

Why this matters

In many emerging markets the banking system is the only practical way to receive a salary or pay bills, yet it is also a surveillance and control layer. People who understand Zcash often still struggle to convert their local currency into ZEC (or the other way around) without giving up privacy, custody, or both.

Centralized exchanges frequently require identity disclosure, can delist ZEC, freeze accounts, or simply become unavailable. 0xramp takes a different path:

  • User keeps the keys.
  • Funds never sit in our custody.
  • The order is placed on-chain by your wallet.
  • When selling, the Pix key (or local equivalent) is encrypted and goes directly to the merchant. We never see or store the plaintext.

The result is a flow that feels closer to “cash in, cash out” while staying non-custodial end to end.

How the pieces fit together (high level)

Two protocols do the heavy lifting:

  • P2P.me connects users to real local merchants via on-chain orders (currently on Base). Your wallet signs. The fiat leg happens peer-to-peer.
  • NEAR Intents handles the crypto leg so you receive (or send) the exact asset you want — ZEC by default — without being forced through intermediate hops yourself.

0xramp is the interface that puts Zcash first, keeps the experience simple, and stays out of the custody path.

In practice:

  • Buy: pay via fiat → receive ZEC in your wallet in roughly six minutes.
  • Sell: send ZEC → receive the exact local-currency amount in your fiat account.

Limits start low by design and can increase with activity. We are still in open beta → start small.

Current state and honest limitations

  • Live corridors: BRL (Brazil), INR (India), ARS (Argentina), VEN (Venezuela), IDR (Indonesia).
  • Alpha corridors: NGN (Nigeria), COP (Colombia), ECU (Ecuador).
  • ZEC is the pinned default destination.
  • The product is live at 0xramp.app. We strongly recommend testing with small amounts first and reporting anything that feels off.

We already have early integrations with wallets in the ecosystem (including @noir_walletNoir) and want to make the handoff as clean as possible for any Zcash wallet that wants to support it.

Roadmap: We are studying implementing Tor and NYM mixnet for metadata privacy and protection.

More on our background

Vini has a 6+ years of experience working in crypto and contributing to many OSS crypto projects and ecosystems like Zcash, NEAR, Nano, Monero, Dash, MultiversX, Quai Network, and more.

Right now, Vini works as an independent contractor for technical content, docs engineering, and devrel initiatives; while also contributing to public repositories and developing tools and public goods for these ecosystems.

On NEAR, Vini runs a validator at thecoding.pool.near with 405,000+ NEAR (~$800K) in delegated staking and is a top 10 governance delegate on House of Stake with 305,000+ veNEAR (~$600K) delegated for voting in proposals.

Vini also has deep knowledge of NEAR Intents and NEAR’s Confidential Shard operations and have been actvely advocating for NEAR’s confidential intents, NEAR AI’s private solutions (IronClaw and the verifiable privacy via TEEs), and Zcash, of course.

Michae2xl brings over 10 years of crypto user experience, having led Zcash Brazil for more than 4.5 years with deep “skin in the game.”

A day-one ZecHub DAO member and effective co-founder, as well as ZCAP participant, he has shaped the Zcash community through innovations like launching the Zcash Discord server and coordinating the first Zcon Voices outside the U.S.

Co-founder of Offchain Brazil, a hub of education in Brazil. Serving as a vital bridge-builder who connects and innovates with partners. As a Software Engineer and Product Owner, with strong leadership skills.

Invitation

If you’re in one of the supported countries, or if you simply want to see a working non-custodial local-rail path for ZEC, try it and tell us what breaks or feels friction.

Feedback — here on the forum, on X, or directly — is the most valuable thing you can give us right now.

Follow us at @0xramplabs and join our Telegram group.

Private money only becomes real money when ordinary people can easily move in and out of it without surrendering control. That’s the problem we’re trying to solve.

We are also publishing a ZCG proposal soon to help us fund one year of 0xramp operations, with a focus on Zcash and on enabling (and hardening) the corridors.

Happy to answer questions, take criticism, or discuss integration paths.

— Vini B
building with Michael @ 0xramp.app

Edit (2026-08-31)

We have submitted a Grant Application for the ZCG:
Grant Application - 0xramp: Non-custodial ZEC ⇿ local-fiat ramp for emerging markets #408

9 Likes

Cool! Can you highlight main differences with https://zcashto.cash/?

2 Likes

Hey, thank you for your message!

Sure!

Zcashto dot cash is a great app too and solves a similar problem.

A few differences I can spot in a first glance:

  • We cover some different corridors (and they compliment each other beautifully)
    • 0xramp has BRL, INR, VEN, ARS, IDR, NGN, COP, ECU
      With a clear focus on emerging markets in LATAM and Asia
    • zcashdotcash has USD, EUR, GBP, CNY, and ARS (from what I can see in the app)
  • zcashdotcash is Zcash-only, while 0xramp is Zcash-first (pinned ZEC as the default currency, but also covering many other currencies)

I don’t know these details on zcashdotcash, but it’s worth noting that:

  • We are whitelisted by P2P.me, we are live in their app store, and have a directly integration to their reputation system (meaning ZEC holders can benefit from P2Pme’s entire ecosystem directly from our app).
  • We have already made $13K+ in volume in 200+ orders during our beta phase.
    • ZEC has more than 20% of that, with $3K+ volume.
  • We have a direct support channel with both P2Pme and NEAR Intents.
  • We have a very strong presence in Brazil, which is a huge market that needs this solution very much.

Not sure what else you would like to know. Let me know what angles interest you the most.

Maybe someone from zcashdotcash can also come and highlight other differences, but we don’t need to make it a dispute or a “winner-takes-all” thing. I surely don’t want that as I see value in both solutions for Zcash users and communities worldwide.

5 Likes

Nice to see the Philippines included in the roadmap. Easier ways to move between ZEC and local currency would remove a big hurdle for everyday users.

Does the current flow let someone receive ZEC in any self-custodial wallet, or does it only work with certain wallets? I’m especially curious whether transparent ZEC addresses, like those currently supported by Gem Wallet, are compatible.

2 Likes

Thank you very much, very interesting project!

2 Likes

amazing product, hope this will get support

2 Likes

I’m eagerly awaiting the launch in Mexico. When I’m onboarding here, the first question I get is how to buy ZEC. Bitso (the main exchange in Mexico) listed ZEC at the beginning of the year, but (I assume due to regulatory issues) you can’t send or receive it; you can only buy ZEC within the app and hold it. To buy and sell it, you can only use stablecoins or BTC, not even things like ETH or SOL. So there are several difficulties here in acquiring ZEC and holding it in self-custody. It seems like 0xramp might help solve this. When it’s ready, please let me know so I can share it with the Club Zcash Querétaro - Mexico community. Thanks and congratulations.

4 Likes

You can receive it in any wallet.

When you are buying, you input the address of your wallet.

When you are selling, you send ZEC to the address the app provides.

1 Like

Hi Vini! I’m new to the Zcash community and very interested in education and user experience, particularly in Latin America.

I noticed that Colombia/COP is currently in alpha. I work with cacao-producing communities in Latin America and have a cacao farmer contact in Colombia who may be open to testing this from the perspective of an ordinary user rather than someone already familiar with crypto.

Before I approach them, what does “alpha” mean specifically for the COP corridor? Is it ready for real-user testing with small amounts, and what kind of feedback would be most useful to you?

I would be very interested in observing where the experience is intuitive, where there is friction, and whether he sees a real use for it in the first place.

Carmen

4 Likes

Thanks for clarifying! Being able to enter an existing wallet address keeps the flow simple. That answers my question.

2 Likes

Hey palmar, thank you for the warm message!

And yes, his is one of the pain points we have in mind and know this happens in many countries.

Good to see the Mexico community well represented here by you and we will keep building for making it available there, if possible.

Also, thank you @haenko and @jenkin for the positive votes.

Hello Carmen!

Welcome, and thank you for such a thoughtful offer.

This is exactly the kind of testing that would be valuable to us.

For COP, “Alpha” does not mean a sandbox or test funds. The corridor is live on mainnet and currently supports both buying ZEC with COP and selling ZEC to receive COP. It is suitable for a small real-user test, but I would treat it as a closely supported early test rather than a fully mature, hands-off experience.

The safest approach would be to use the minimum amount shown in the app—currently around COP 16,000, although quotes, limits and liquidity can change—and only an amount he would be comfortable having delayed if something requires support. The app is available in Spanish and shows the complete quote and cost before an order is created.

One current detail worth knowing is that buying ZEC requires a transparent Zcash receiving address. When selling ZEC, funds may be sent from a shielded wallet, but the refund address must currently be transparent. For receiving COP, the interface accepts Colombian transfer identifiers such as a phone number, a Nequi email or an alias.

The most useful feedback would be:

  • whether he can understand the login, wallet and address steps without crypto guidance;
  • whether the Colombian transfer terminology and identifiers feel natural;
  • whether the quote, fees, timing and order status inspire confidence;
  • exactly where he hesitates, gets stuck or needs an explanation;
  • how the experience performs on his normal device and internet connection;
  • and, most importantly, whether it solves a real problem for him.

I would suggest starting with whichever direction matches a genuine need he already has, rather than asking him to complete both flows simply as a test. If you let me know which direction he would try and approximately when, we can coordinate a window to monitor the test and help if anything gets stuck.

Any screenshots or notes would be very helpful, provided bank identifiers and wallet addresses are redacted.

4 Likes

Hi Vini! This is really helpful! I’ll reach out to him and see if he’s interested and which direction would be most useful for him to test. Is there another channel you prefer for coordinating outside the forum Signal, Telegram, email, etc.? If he’s interested, I’d be happy to coordinate a time with you.

-Carmen

1 Like

Hey Vini

Really cool and useful product.

I have a question about privacy of this protocol and how it works here.

If a ZEC buyer, how and where my fiat transaction is being stored (if they are) or what’s being using to prove that the transaction is complete?
If I am ZEC seller, where will my receiving account will be stored waiting for the buyer?

Basically, is there any way you or any other provider can link my fiat account with my ZEC account?

The interesting part to me is metadata: if the fiat rail is P2P but the surrounding flow leaks timing or identity, how much of the privacy gain survives end-to-end?

1 Like

Thank you very much, Carmen!

We have a Telegram group at /zeroxramp.

I’m also on Signal as vinib90 and on Telegram at /vinibarbosa.

Feel free to reach out!


I’ll answer the other questions from @megabyte0x and @operational-anxiety4 as soon as possible.

We are running here to get everything ready for the V1 launch.

VB

1 Like

UPDATE: 0xramp v1.0.0 is live!

Open beta is closed. 0xramp v1.0.0 is what is now running at 0xramp.app.

Same architecture as the original post: 0xramp is the interface + session layer. Your wallet places the order. P2P.me owns identity, limits, merchant matching, and USDC escrow on Base. NEAR Intents owns USDC ↔ ZEC (and other cryptocurrencies). We do not custody keys or the fiat payment.

What shipped in v1: revamped UI (user interface), the production shell (buy/sell, swap, activity, account/limits, invites, help), fiat-first quotes, in-app receipts, and the corridor table:

  • Stable: BRL (Pix), INR (UPI), IDR (GoPay / QRIS), ARS (Alias), VEN (Pago Móvil)
  • Alpha (mainnet, start small): COP, NGN, ECU, BOB, CUP, PEN, PHP

ZEC is still the pinned default. Delivery is transparent t-addr only. That matters for the two questions I still had unanswered (addressed below).

Announcement: 0xramp labs on X: "🛡️♾ 0xramp v1.0.0 is live! 0xramp[.]app is out of open beta. We have shipped many notable improvements and bug fixes, thanks to the incredible community that starts to build around the app and actively provided feedback to our team. The first thing you will notice: it's a di… / X


Q1 — @megabyte0x

Thanks! This is a very important question and I’ll go deep on it.

We currently operate in three different databases, with three different views.

If you are buying ZEC

You pay a P2P.me merchant on the local rail (Pix, UPI, …), from your bank app, for the exact amount on the card. That payment never sits in an 0xramp wallet. Completeness is not “we saw a screenshot.” It is:

  1. the P2P.me order on Base moving to a terminal status (the Diamond is public: amount, timestamps, user, merchant, recipient), and
  2. NEAR Intents reporting SUCCESS on the reserved route.

0xramp’s backend is a reconciler. It stores a rail session (capability URL): signing account, corridor, amounts, the NEAR deposit address, the destination you typed, a p2p_order_id. It does not store your bank login. On buy we never see your Pix key at all, you are the one paying the merchant.

If you are selling ZEC

The “account waiting for the payer” is the on-chain P2P.me sell order, placed by your wallet. The Pix/UPI/Alias/… key you typed is encrypted in the browser (ECIES) to the merchant. 0xramp persists a hash, not the plaintext. The merchant decrypts in order to pay you. P2P.me is the party that operates that payout rail.

Can someone link fiat account ↔ ZEC account?

Define the three observers:

Who What they can join
0xramp EVM account you signed with ↔ destination t-addr you typed ↔ amounts ↔ p2p_order_id. We do not have your bank data. We do have the ZEC address you pasted, because the session has to send there.
P2P.me Fiat identity / merchant matching (and KYC above their limits, or ZKKYC via social verification) ↔ the same EVM user on the Diamond ↔, on sell, the payout key the merchant needs. They do not automatically receive your ZEC t-addr from the Diamond. The Base recipient on a buy is the NEAR deposit address, not your Zcash address.
Public chain observer Base order (amount, time, user, NEAR deposit) + NEAR route + Zcash transparent delivery. Amount + timing can stitch those three hops. A t-addr is public like a Bitcoin address.

So: there is no automatic “Pix key printed on a shielded ZEC address.” There is a join path.

  • 0xramp can join your session’s EVM account to the t-addr you typed.
  • P2P.me can join fiat identity to that EVM account.
  • Anyone watching all three ledgers can try amount + clock.

If those logs are combined, fiat identity and the t-addr are combinable. That is inherent to a transparent delivery hop with a public escrow on Base. We do not want to pretend otherwise, it’s important that users (like you) know the truth.

What we will not do: store plaintext payout keys or custody the ZEC. After the t-addr lands, shielding is your wallet’s job (z_shieldcoinbase / send t→z).


Q2 — @operational-anxiety4

Thanks! Another super important question and complimentary to the one I answered above.

Most of the privacy gain of Zcash does not automatically survive the ramp, because v1’s ZEC hop is still transparent.

What does survive:

  • No 0xramp custody of keys or of the fiat payment.
  • Sell payout key is encrypted to the merchant, not stored in the clear on our side.
  • Buy destination is chosen by you; P2P.me’s on-chain recipient is the NEAR deposit, not your ZEC address.
  • After you receive, you can shield.

What does not survive, and should not be hand-waved:

  • Identity on the fiat rail. Above P2P.me base limits you are in their verification system. Even inside base limits, the merchant who received your Pix/UPI payment saw a real-world payment.
  • Public metadata on Base and NEAR. Amount, timestamps, signing address, deposit address are on-chain.
  • Transparent ZEC delivery. The t-addr and the value are on the Zcash chain.
  • Timing. Fiat settle → Intents swap → t-addr payment is a short window. Size + time is a fingerprint. We still do not batch, delay, or mix that hop (so we can deliver a fast and non-expensive settlement). You can still have an operational strategy to do it yourself.

So the P2P rail removes us as a custodian. It does not remove a metadata trail across three public (or transparent) ledgers. If the threat model is “I do not want 0xramp holding my ZEC,” we match that. If the threat model is “the buy must be unlinkable from my Pix payment to a z-addr,” we do not provide that. Use a t-addr you control, then shield, and do not treat the ramp itself as a privacy protocol.

Happy to go deeper on any one hop and keep answering questions!

3 Likes

Thanks for clear and honest answer!

2 Likes

Great to see PHP included in the alpha corridors, and thanks for clarifying that ZEC delivery currently uses transparent addresses. That should make the current flow compatible with Gem Wallet’s transparent ZEC support. I’ll keep an eye on how the Philippine corridor develops.

2 Likes