PATCH /v1/auth/me
Update the current user’s display name, email, and/or X handle. With EMAIL_CONFIRMATION_ENABLED=1 this route never sets an address: `email: <address>` is a 409 `conflict` with `reason: use_email_code` (confirm it with POST /v1/auth/email/start and /verify; an address equal to the account’s current email is ignored). `email: null` removes the email (and any pending one) as before; the previous address gets a notice.
Update the current user’s display name, email, and/or X handle. With EMAIL_CONFIRMATION_ENABLED=1 this route never sets an address: email: <address> is a 409 conflict with reason: use_email_code (confirm it with POST /v1/auth/email/start and /verify; an address equal to the account’s current email is ignored). email: null removes the email (and any pending one) as before; the previous address gets a notice.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/auth/me" \ -H "Content-Type: application/json" \ -d '{}'{ "user": { "user_id": "string", "eoa": "string", "email": "string", "display_name": "string", "x_username": "string", "created_at": "string" }}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}{ "error": "string", "message": "string", "feature": "string", "field": "string", "plan": "string", "retry_after_sec": 0, "retry_after_seconds": 0, "reason": "string", "issues": [ null ], "trace_id": "string"}GET /v1/auth/me GET
Previous Page
POST /v1/auth/email/start POST
Mail a 6-digit code (10 minutes, 5 attempts) to confirm an email for the signed-in account. Always `{ ok: true, expires_in_seconds }` for a well-formed address, whether or not it already belongs to another account (an owner who CONFIRMED the address gets a notice instead of a code; an address that sits unconfirmed on another wallet account does not block the code, and the right code moves the address to the account that proved the inbox). The mail is sent after the response, so the answer never says whether it was delivered: to RESEND, call this route again; it mails a FRESH code and the previous one stops working. Rate-limited per caller, per account and per address over 5 minutes, and per account and per address over a DAY (10 codes each): a 429 carries `retry_after_seconds` and `Retry-After`. 404 `email_confirmation_disabled` while EMAIL_CONFIRMATION_ENABLED is off.