Skip to main content
When you connect Supabase to your Noah project and ask Noah to add authentication, it sets up Web3 wallet authentication by default. Users sign in by connecting their Solana wallet and signing a message — no passwords or email verification needed. This is powered by Supabase’s built-in Web3 Wallet auth provider.

Get Started

All you need is one prompt. Make sure Supabase is connected to your project, then ask Noah to add authentication. Noah will automatically:
  • Enable the Web3 Wallet provider in your Supabase project
  • Generate a wallet service for creating and managing Solana keypairs
  • Add a Connect button to your app’s UI
  • Set up the full sign-in flow with message signing and session management
  • Handle auth state changes so the UI updates when users connect or disconnect
That’s it — your app now has wallet-based authentication.

How It Works

  1. The user clicks Connect in your app
  2. Noah generates or retrieves a Solana wallet for the user
  3. A sign-in message is created and signed with the wallet’s private key
  4. The signature is verified by Supabase using signInWithWeb3
  5. The user is authenticated and a session is created
Noah uses Supabase’s signInWithWeb3 method with the solana chain. This is different from traditional email/password or social login — it is a cryptographic, wallet-based authentication flow.

Web3 Wallet Provider

When you ask Noah to add Supabase auth, the Web3 Wallet provider is automatically enabled in your Supabase project — no manual configuration needed.
Supabase Authentication Sign In / Providers page showing Web3 Wallet enabled

What Noah Generates

When you prompt Noah to add Supabase auth, it creates the following:

Wallet Service

Generates or retrieves a Solana keypair for the user. Handles wallet creation, storage, and message signing.

Connect Button

A UI component that lets users connect their wallet, view their address, copy it, and disconnect.

Auth State Listener

Listens for authentication state changes using supabase.auth.onAuthStateChange and updates the UI accordingly.

Sign-In Flow

Constructs a structured sign-in message, signs it with the wallet, and calls supabase.auth.signInWithWeb3 to authenticate.

Example Prompts

Once authentication is set up, use these prompts to customize the experience:
Make the connect wallet button match my app's theme with rounded corners and a gradient background.
Create a profile page that shows the connected wallet address, account creation date, and a sign-out button.
Only allow authenticated users to access the dashboard. 
If not connected, redirect them to the home page.

Troubleshooting

Clicking the Connect button shows no response or an error.
  • Make sure your Noah project is connected to Supabase
  • Try disconnecting and reconnecting Supabase from the Cloud tab
  • Ask Noah: “Fix the connect wallet button, it’s not working”
The session is lost when the page reloads.
  • Ask Noah: “The auth session is not persisting after refresh, fix it”
  • Make sure your app is connected to the correct Supabase project
Authentication works in preview but breaks on the published app.
  • Check that your redirect URLs are configured correctly in Supabase
  • If using a custom domain, add it to Supabase’s URL Configuration