A world without this popup is possible, but we need your help! Auth addresses are live on the Farcaster protocol. This guide describes how mini apps, authentication providers, Farcaster clients, and third-party apps can upgrade to adopt them.
<aside> 🤔
Have a question? Reach out to horsefacts or deodad on Farcaster.
</aside>
Follow this guide if you are building a mini app, like Yoink, Farcade, or MiniWord.
<aside> ⚠️
If you use an authentication provider like Privy or Dynamic, check if they support auth address sign in before updating your app! We expect auth providers to roll out support over the next few weeks.
</aside>
Update @farcaster/frame-sdk
to version 0.0.39
or later. Opt in to auth address sign in by passing acceptAuthAddress: true
to the signIn
action:
import { sdk } from '@farcaster/frame-sdk'
await sdk.actions.signIn({
nonce,
acceptAuthAddress: true
});
Or, consider using the new Quick Auth SDK action, which provides a higher level authentication API that returns an easy to verify session token. We strongly encourage new mini apps to try Quick Auth for a better sign in experience!
If you use a third party authentication provider like Privy or Dynamic, check their docs. You’ll likely need to update your dependencies.
If you verify sign in messages yourself, update the @farcaster/auth-client
package to version 0.6.0
or later. Call verifySignInMessage
and pass acceptAuthAddress: true
.
const { data, success, fid } = await appClient.verifySignInMessage({
nonce: 'abcd1234',
domain: 'example.com',
message: 'example.com wants you to sign in with your Ethereum account…',
signature: '0x9335c3055d47780411a3fdabad293c68c84ea350a11794cd11fd51b…',
acceptAuthAddress: true,
});