Before you start
- Use Node.js and a browser application served over HTTPS. The hosted provider does not accept plain
http://localhost; use local HTTPS for development. - Register your application and domains in the Dashboard.
- Configure sponsorship token endpoints before calling intent or asset methods. Authentication itself does not require a funded account.
Install the SDK
@rhinestone/1auth 0.10.1 release.
Initialize the client
Create one client and reuse it throughout your application:oneauth.ts
my-app with the client ID of your registered application. The sponsorship URLs are same-origin backend endpoints; follow Sponsorship setup to implement them.
Authenticate and obtain an account
accountAddress is a typed 0x${string} address. Authentication creates an account when the verified identity has none in your application’s namespace, or signs in to the existing account.
To restore a current wallet session without opening the dialog, call getSession():
Account isolation
Passkeys are created and used on your application’s domain. By default, each hostname has its own passkey and account namespace, even when the user verifies the same email or OAuth identity. Funding and recovery configuration remain isolated to that namespace. See Passkeys and domains before sharing accounts across subdomains or changing your production hostname. Changing the RP ID selects a different account; existing balances do not move automatically.Account management
Build account management in your application. Account-management popups, redirect signing, inline-embed signing, andopenAccountDialog() are not supported for these wallets and return APP_ORIGIN_FLOW_UNSUPPORTED.