The problem
XDC is EVM-compatible, but the tooling around it lagged. Users had no first-class wallet they could trust, and no native way to swap tokens without bridging out to another chain. The barrier wasn't the technology, it was that nobody had built a product around it.
What I built
MyXDC is two products in one: a non-custodial wallet and an on-chain exchange.
- Client-side key management. Keys are generated and encrypted in the browser and never leave the device. The app can't access funds, only the user can.
- A full DEX. A Uniswap V2 fork deployed to XDC: pools, swaps, liquidity provision, and slippage protection.
- A UX that hides the chain. Gas, confirmations, and address formats are abstracted into a flow that feels like a normal app, not a blockchain console.
Technical highlights
Porting Uniswap V2 to XDC meant reconciling address formats (XDC's xdc prefix vs.
EVM's 0x) across every contract call, RPC request, and UI surface, a subtle
source of bugs that I handled with a single normalisation layer so the rest of the
app never had to think about it.
The result
A working wallet and DEX that gave XDC users self-custody and native swaps for the first time, with key material that never touches a server.
