finds.dev← search

// the find

ithacaxyz/porto

★ 615 · TypeScript · Apache-2.0 · updated Jun 2026

Authentication & payments on the web

Porto was a smart contract wallet for Ethereum that combined passkey-based authentication with onchain payments, targeting web developers who wanted to skip the MetaMask-or-nothing UX for their dapps. It shipped wagmi/viem connectors, a hosted dialog UI, and an ERC-4337-style relay service. It is now shutting down — funds must be withdrawn by July 24, 2026.

The key management design is genuinely thoughtful: P256, secp256k1, and WebAuthn keys are all first-class, and the permission system (grant/revoke scoped permissions per dapp) is closer to OAuth than to the usual 'sign everything' wallet model. The viem and wagmi integration layers are thorough — wallet_prepareCalls, wallet_sendPreparedCalls, the full EIP-5792 batch call surface is there. The dialog-as-iframe architecture keeps the signing UI off the dapp's origin without requiring a browser extension. Guest checkout mode (no account needed for one-off payments) was a real UX improvement over anything else in this space.

It's shutting down in less than a month, which is the only fact that matters for anyone evaluating adoption. The relay is a centralized dependency — if Ithaca's relay goes away, so does gas sponsorship and the account upgrade flow, which is exactly what's happening now. The smart contract account design means users needed to actively migrate funds; ordinary EOA users don't have this problem. Documentation was scattered across SDK, relay, and contracts sections without a clear mental model of which layer owns what, making the learning curve steeper than the ambient complexity warranted.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →