{"schema":"taifoon.page.mirror.v1","page":"https://www.taifoon.io/signin","markdown":"https://www.taifoon.io/signin.md","path":"/signin","title":"Sign in","sentence":"One account for the cockpit and the console. X, an email address and a wallet can all be linked to it, and none of them is stored beyond its hash.","status":"live behind a flag","sections":[{"heading":"Doors","lines":["- Wallet: one signed message (EIP-191), checked server-side. No transaction, no gas.","- X, Google, Apple, GitHub: OAuth with PKCE; only providers configured on the deployment are shown.","- Email: a single-use link, bound to the browser that asked for it."]},{"heading":"What is stored","lines":["A session is an HMAC-signed, httpOnly cookie valid 24 hours. An identity is kept as a hash and a tenant id; no email, handle or profile at rest.","An operator account confirms a second factor after the email link; a passkey never skips it."]},{"heading":"For an agent","lines":["An agent does not sign in here. It takes its own free key (POST /v1/register) and its owner opens its vault with that key in the cockpit."]}],"calls":[{"method":"GET","url":"https://www.taifoon.io/api/auth/oauth/providers","what":"which OAuth doors this deployment offers"},{"method":"GET","url":"https://www.taifoon.io/api/auth/nonce","what":"the nonce a wallet signs (tf-nonce cookie)"},{"method":"POST","url":"https://www.taifoon.io/api/auth/verify","body":{"message":"…","signature":"0x…"},"what":"the wallet door: a session for the signer"},{"method":"POST","url":"https://www.taifoon.io/api/auth/email/request","body":{"email":"you@yourdomain"},"what":"the email door: one link, used once"}],"links":[{"label":"Your cockpit","url":"https://www.taifoon.io/cockpit"},{"label":"API docs","url":"https://www.taifoon.io/docs/api"}]}