Technology Apr 28, 2026 · 2 min read

Connecting Phantom to a Web App Changed How I Think About "Login"

On Day 4 of #100DaysOfSolana, I built a small Vite app that connects to a browser wallet. The feature itself is maybe 30 lines of code. The mindset shift it triggered is harder to measure. What I Built A minimal web app that: Detects installed wallets using getWallets() from @wallet-st...

DE
DEV Community
by Tanisha fonseca
Connecting Phantom to a Web App Changed How I Think About "Login"

On Day 4 of #100DaysOfSolana, I built a small Vite app that connects to a browser wallet. The feature itself is maybe 30 lines of code. The mindset shift it triggered is harder to measure.

What I Built

A minimal web app that:

  • Detects installed wallets using getWallets() from @wallet-standard/app
  • Filters for Solana-compatible wallets by checking wallet.chains
  • Prompts Phantom to connect with one button click
  • Displays the connected address and devnet balance
import { getWallets } from "@wallet-standard/app";

const { get } = getWallets();
const solanaWallets = get().filter(wallet =>
  wallet.chains.some(chain => chain.startsWith("solana:"))
);

No API keys. No backend. No session management. The wallet handles all of it.

What Surprised Me

In Web2, "Sign in with Google" feels like a convenience feature, you're still handing your identity to Google, who hands a token to the app. The app trusts Google. You trust Google. Everything flows through Google.

With Phantom, the app never sees your private key. It never talks to a central auth server. It sends a connection request to your wallet extension, which prompts you to approve it. If you approve, the app gets your public address, nothing more. Every subsequent action that needs your signature goes through the same approval flow.

The trust model is completely inverted. The app doesn't authenticate you. You authenticate yourself, and the app just observes the result.

"Sign in with Phantom" isn't "Sign in with Google for Web3." It's closer to showing your passport, the app sees proof of who you are, but it never holds the passport.

What's Next

Week 2 is about writing transactions and moving tokens on-chain. I'm looking forward to seeing how that signing flow works end-to-end from the user clicking a button, to Phantom prompting for approval, to the transaction landing on devnet.

If you're following along, drop your wallet setup experience below. Did anything about the browser wallet model surprise you?

Part of my #100DaysOfSolana journey.

DE
Source

This article was originally published by DEV Community and written by Tanisha fonseca.

Read original article on DEV Community
Back to Discover

Reading List