Logo
Learn
  • Explore Course
Build
  • Explore Buildathon
  • Project Archive
Hack
Hack Coming Soon
  • Explore IRL Hackhouse
  • How to Qualify
  • Past Events

Parmelia

Parmelia is a stablecoin payments app on Arbitrum that lets people receive, request, swap, and manage crypto payments through simple links, QR codes, and a PWA.

Videos

Description

Parmelia is a stablecoin payments app for people who don't want to think about blockchain. They just want to get paid.

It's built around how people already move money: a link, a QR code, a username, a contact. You share a link, someone pays you in USDC, and you both get a receipt. That's the core idea.

Doing that with crypto today is painful. To receive money you're expected to handle wallet addresses, seed phrases, gas, networks, and transaction hashes, and most people quit before they even start. That hurts most in Latin America and other dollarized economies, where stablecoins are already how a lot of freelancers, families, and small merchants save and get paid in dollars. The technology is useful; the experience isn't.

Parmelia hides all of that, and it never holds your money. Your wallet is a smart account that you control with a passkey, your fingerprint or face. Firebase handles login and the app experience, but it can't touch your funds: every payment needs your passkey. The backend can submit the transaction for you and even cover the gas, but it can't move anything on its own.

What you can do right now

  • Create a wallet with your fingerprint, no seed phrase.

  • Get paid through a link or a QR code.

  • Pay a username, scan a QR, or paste an address.

  • See all your activity: payments, deposits, swaps, each with a receipt showing date, time, and the transaction hash.

  • Swap between assets inside the app, with Uniswap routing under the hood.

  • Save contacts, invite people, get push notifications, and install it on your phone.

Onchain architecture

The onchain side is account abstraction, ERC-4337, on Arbitrum: smart accounts authorized by WebAuthn passkeys, deployed at deterministic addresses, with a paymaster that covers gas using short-lived signatures that expire after a few minutes so they can't be reused.

The account also supports multiple passkeys, batched calls, upgrades, and guardian recovery with a 48-hour delay.

Why Arbitrum

I chose Arbitrum because a payments app can't make people think about gas.

Arbitrum gives me low and predictable fees, you only pay for the gas you actually use, EIP-712 and full Solidity support, a canonical and verified ERC-4337 EntryPoint, and the liquidity I need for swaps.

For this buildathon it runs on Arbitrum Sepolia, with everything configured to move to Arbitrum One.

Roadmap

Where this is going, roadmap, not part of this submission:

  • A Parmelia card and local bank-QR settlement so people can spend their stablecoin balance in the real world.

  • An Earn option for idle balances.

  • A payments API so any app, store, or bot can accept stablecoins the way they accept Stripe today.

The payment and account architecture is already built with these in mind.

Links

  • App: https://app.parmelia.me

  • Landing: https://parmelia.me

  • Main repository: https://github.com/danelerr/parmelia-links

  • Landing repository: https://github.com/danelerr/parmelia-landing

Contracts on Arbitrum Sepolia 421614

  • EntryPoint v0.9 canonical: 0x433709009B8330FDa32311DF1C2AFA402eD8D009

  • ERC7913WebAuthnVerifier: 0xb7fA10dEe75042D6973676A7d7882e4621B806d6

  • AccountWebAuthnV2 impl: 0xa450bc49a0dA738FA348445980b542d78A22527e

  • AccountFactoryV2: 0x75c7761dcED5F8eCc708E750bDe5CA7d4557EDEB

  • ParmeliaPaymaster: 0x31f357a64cF5899da21337f0D9e28ef8D6385753

  • Explorer: https://sepolia.arbiscan.io/address/0x75c7761dcED5F8eCc708E750bDe5CA7d4557EDEB

Progress During Hackathon

Parmelia already existed before the buildathon, but it was a more generic, portable prototype. During Arbitrum Open House London I rebuilt it into something that actually belongs on Arbitrum and that I'd be comfortable putting in front of real users. The first big decision was the chain. Parmelia used to target a different L1, and I moved it to Arbitrum on purpose. The reasons were practical: on Arbitrum you pay for the gas you actually use, instead of having reserved gas charged to you even when you don't spend it. Fees are low and predictable, EIP-712 works, and the ERC-4337 EntryPoint is canonical and verified, which wasn't the case where I was before. For a payments app, that reliability is the difference between "works" and "don't ship it." From there, the work fell into three areas. Contracts. I deployed the V2 smart-account stack to Arbitrum Sepolia: the WebAuthn verifier, the account factory, and the paymaster, and verified it on-chain. I made the deployment deterministic with CREATE2, so the same code produces the same addresses on every chain, and added support for multiple passkeys per account, batched execution, upgradeability, and guardian recovery with a 48-hour timelock. The paymaster sponsors gas with signatures that expire after a few minutes so they can't be replayed. I also had to tune the compiler to keep the account under the 24KB contract-size limit. Product. I rebranded and rebuilt the whole front end around a mobile-first payments flow: dashboard, send, charge, QR, swap, statement, contacts, and receipts. I reworked the transaction history to read from a ledger, with a cron job that picks up deposits coming from outside the app. I added an internal swap module on top of Uniswap routing, turned Parmelia into an installable PWA with push notifications, and split the site into parmelia.me for the landing and app.parmelia.me for the app. Infrastructure. I cleaned up the Cloudflare Worker backend: D1 database, RPC failover, Turnstile anti-abuse, passkey and email-link login, and analytics. I also added tests around the parts that handle money: swap encoding, fees and slippage, validation, and the paymaster. Roadmap. I also designed the next phase on paper: cross-chain deposits, fees, an Earn product, and a Stripe-style payments API, but I'm not presenting those as live features. What's in this submission is what actually works and can be demonstrated: passkey accounts, sponsored gas, payment links and QR, payments, swaps, history, receipts, and the PWA.

Tech Stack

ReactWeb3NodeSolidityArbitrumCloudlareFoundryFirebase

Fundraising Status

Bootstrapped. Not currently fundraising, but open to Arbitrum ecosystem grants, milestone-based support, and strategic partnerships.

Team Leader
DDaniel Cueto
GitHub Link
github

GitHub

https://github.com/danelerr/parmelia-links
Product Category
DeFiInfraSocialFi