Skip to content

feat(card): offer EURC on Base in the Wirex Fund your card flow - #2667

Merged
MayankMittal1 merged 1 commit into
masterfrom
feat/eurc-direct-deposit
Oct 8, 2026
Merged

MayankMittal1 merged 1 commit into
masterfrom
feat/eurc-direct-deposit

Conversation

@MayankMittal1

@MayankMittal1 MayankMittal1 commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

What

Wirex cardholders now see a EURC row under Stablecoins in "Fund your card", after USDC and USDT. Choosing it offers Base only, then shows the same card deposit address. The backend delivers the EURC to the user's Safe on Base, where the Base spend-module instance sells it for euro purchases.

Depends on Solid-Money/solid-backend#1947. Without it, EURC sent to the card address is dropped and left stranded.

Scope

  • Wirex only. The Rain modals keep USDC/USDT. A Rain user's EURC would land in their Safe, not on the Rain card.
  • Base only for now. The backend also accepts Ethereum EURC, but that bridge needs a EURC float on the backend wallet first. To offer it, add the Ethereum entry back to EURC_TOKENS; the address is recorded in the comment there.
  • Not in BRIDGE_TOKENS. Every other deposit surface reads that map: the old savings "Deposit directly" flow, external-wallet "Add funds", and the wallet address screen. Adding EURC there would offer it where it can't be delivered, so it gets its own EURC_TOKENS table, which only the card fund flow reads.
  • Not offered in "Move from wallet". Base EURC already sits in the Safe the euro balance is spent from.

Changes

  • constants/bridge.ts: EURC_TOKENS (Base, 6 decimals).
  • lib/utils/cardFunding.ts: CARD_FUND_EURC_SYMBOL. Chains for EURC come from EURC_TOKENS. The tooltip gives EURC its own clause ("EURC only on Base").
  • CardFund/constants.ts and CardFundOptions: a tokens prop that defaults to the dollar rows. WirexCardFundModal passes WIREX_CARD_FUND_TOKENS, which adds EURC.
  • lib/utils/depositFee.ts: EURC card deposits are free on Base and charged elsewhere, whatever the issuer.
  • EURC icon (assets/images/eurc.png, registered in lib/assets.ts), also used for activity rows via getTokenIcon.

Tests

Ran each of these individually; all pass:

  • lib/utils/__tests__/cardFunding.test.ts (21)
  • lib/utils/__tests__/depositFee.test.ts (42)
  • components/Card/__tests__/CardFundOptions.test.tsx (6)

CardFundOptions.test.tsx failed to load on master as well: useTransfiCountryAvailability imports MMKV, whose native module jest can't load. The test now mocks that hook.

tsc shows no new errors; the 10 existing errors are the same on master.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Wirex cardholders get a EURC row beside USDC and USDT. It hands out the same
card deposit address; the backend delivers EURC to the Safe on Base, where the
Base spend-module instance sells it for euro purchases.

- EURC_TOKENS kept out of BRIDGE_TOKENS, which every other deposit surface
  offers from (savings, external-wallet add funds, wallet address screen).
- Base only for now; Ethereum waits on a backend EURC float.
- Rain cardholders are not offered EURC: it would land in the Safe, not on
  the Rain card.
- Fee notice: EURC card deposits are free on Base, charged elsewhere.
- EURC icon for the rows and activity.
- CardFundOptions test mocks useTransfiCountryAvailability, whose MMKV import
  kept the suite from loading under jest (broken on master too).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated
solid-app Ignored Ignored Oct 8, 2026 9:05am UTC
solid-app-staging Ignored Ignored Oct 8, 2026 9:05am UTC

Request Review

@MayankMittal1
MayankMittal1 merged commit 8519627 into master Oct 8, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant