Romi
Romi is a simple, secure crypto wallet integrating multiple chains and tokens into a pair (Tok/Cha)
Problem Statement
Romi: Automatic Crypto ConversionRomi watches your wallet and automatically converts any tokens you receive into the crypto you actually want, on the chain you prefer. Set your preferences once, and Romi handles the rest.How It WorksRomi simplifies dealing with different cryptocurrencies and blockchains:Choose Your PreferencesTell Romi what token you want to end up with and which blockchain you prefer. That's it.Automatic SwapsWhen someone sends you any supported token, Romi finds the best exchange rate and converts it automatically. No manual swapping needed.Cross-Chain DeliveryIf you want your tokens on a different blockchain than where you received them, Romi handles the bridging automatically.Easy Setup for New UsersRomi is designed to be straightforward, especially for people new to crypto:No Existing Wallet RequiredDon't have a crypto wallet? Romi creates one for you during signup thanks to Privy.Simple AddressesInstead of long, confusing wallet addresses, you get a readable (and can choose) name like "yourname.romi.eth" that people can actually remember.Clean InterfaceThe app focuses on what you need to know, not technical details. Set your preferences and you're done.What's SupportedRight now, Romi works with Base, Arbitrum, and Optimism networks, and supports USDC and WETH. The system is built to add more chains and tokens without effort.Who It's ForRomi works well for people who:Want to simplify their crypto experienceReceive payments in different cryptocurrencies and have it swap into a single oneDon't want to manually manage swaps and bridgingAre new to crypto and want something straightforwardThe goal is for us handle the technical stuff automatically so users can focus on using their crypto rather than managing it.
Solution
🖥️ our stack Frontend: NextJS + Privy for SIWEWallet Abstraction: [Privy] – To onboard users without existing wallets and create embedded wallets for a seamless startENS Integration: [ENS + L2 Registration] – Automatically registers a human-readable ENS (e.g., username.toromi.eth) on supported L2s to make wallet identities memorable and social. We used durin.dev contracts as base to deploy the L2 Registry and RegistarOn-chain Data: [The Graph] – For detecting token deposits in registered walletsSwapping: [1inch API] – Best-route swaps to a destination tokenBridging: [Chainlink CCIP] – Cross-chain delivery of the final token🧩 How It Works ( Wallet Registration: Users register their wallet and set a destination token and chain. This info is stored and used to determine routing logic later.Monitoring Wallets: A backend monitor continuously queries The Graph to detect new incoming token balances for registered wallets.Swap Execution: When a new deposit is detected, we call the 1inch API to find the best route to swap it into the user’s destination token.Bridge to Final Chain: After swapping, we trigger Chainlink CCIP to bridge the destination token to the chain selected by the user during setup.🧪 Improvements that could be made CCIP Limitations: Since CCIP doesn’t support all tokens or all routes, we currently only support 3 chains (Base, Optimism, Arbitrum) and 2 tokens. But the system is modula and easy to extend its feature like fallback swaps on destination chains for more supported tokens.Real-Time Detection: The "monitoring" mechanism isn't webhook-based. It’s polling + caching Graph queries with some throttling. Not ideal for production, but fast enough for a hackathon. 🤝 Partners useful tools The Graph helped us avoid building custom indexers for wallet activity. Massive time saver.1inch API gave us instant access to multiple DEXs with no need to write on-chain routing logic.Chainlink CCIP gave us a secure and trusted way to bridge across chains without building our own bridge infra.Privy: Made onboarding frictionless for non-Web3 users.
Hackathon
ETHGlobal Cannes
2025
Prizes
- 🏆
Best usage of Chainlink CCIP and/or CCT
Chainlink
- 🏆
Utilize 1inch APIs
1inch
Contributors
- agustinignaciovazquez
41 contributions
- alavarello
22 contributions
- v0[bot]
3 contributions