Social

OAuth Account Linking

X is the only supported profile social link. Linking requires an active SIWE session. Google and email sign-in through Privy remain separate from profile linking.

GET
/api/auth/twitter
Starts X OAuth verification and returns to your BASIS profile. No wallet goes in the URL: it links the newest wallet signed in to this browser's session, or the one named in the x-wallet-address header (it must be signed in too). Send Accept: application/json to get { url } back instead of a redirect, then open that URL in the same browser.
Auth: Session
200 { url } (Accept: application/json)302 Redirect to X401 Not authenticated403 Wallet not signed in

The retired Discord, GitHub and Google linking routes, including their callbacks, return HTTP 410. Existing legacy links can still be removed through the unlink endpoint.