The Wallet at wallet.alterauth.com is a hosted dashboard end users sign into to manage the apps that hold their credentials. It’s free, always-on, requires no per-app code, and exists the moment an IDP is wired. For end users, it answers three questions:Documentation Index
Fetch the complete documentation index at: https://docs.alterauth.com/llms.txt
Use this file to discover all available pages before exploring further.
- What apps have access to my data? A list of every grant the user has across every Alter app integrated with their identity.
- What did they do with it? An activity feed showing every API call made on the user’s behalf, with a
reasonfield the application supplies. - How do I revoke? One click per grant.
How a user signs in
The Wallet is OIDC-authenticated through the same identity providers an app uses. The user signs in via Auth0 / Clerk / Okta / custom OIDC, lands on the dashboard, and sees every grant their identity owns across every Alter app integrated with that IDP. No per-app account creation. No separate password. The user already exists at the IDP; the Wallet trusts the IDP’s session.What an end user sees
- Apps — a card per app the user has at least one grant for. Each card shows the app’s display name, logo, and a count of grants.
- Connections — for each app, the list of grants by provider (Google, Slack, …), with account identifier, scopes granted, status, and last-used timestamp.
- Activity — every API call made on the user’s behalf, with method, provider, response status, latency, and the
reasonfield the app supplied per call. - Approvals — pending HITL approvals waiting on the user’s decision, with Approve / Deny buttons.
- Revoke — per-grant; effective immediately.
What the developer configures
Branding: the Wallet picks up the app’s display name, logo, and color scheme from the developer portal’s app settings. Set these once; the Wallet renders them. Reason text: the most useful field in the activity feed isreason — the human-readable explanation of why the application made each call. Pass it on every app.request():
reason.
Trust model
Three properties matter:- The Wallet only shows what’s already true on the backend. It’s a read/revoke UI over the same audit trail and grant table the SDK uses. There’s no “Wallet-side state” that could drift.
- Revocation is immediate. The next
app.request()against a revoked grant raisesGrantRevokedError. The token is deleted from the vault. - The Wallet’s session is independent of the app’s session. A user signing out of the app does not sign them out of the Wallet, and vice versa. The IDP is the source of truth for both.
When to suppress the Wallet
For internal admin tools and operator-only apps that have no end users at all, the Wallet is invisible by default — there’s no user identity to sign in. For products that do have end users but prefer an in-app revocation UI, the Wallet still exists (the user can always reach it directly); building a per-app revocation UI on top viaapp.list_grants / app.revoke_grant is a supplement, not a replacement.
What’s next
Connections
The grants that surface in the Wallet.
Audit logs
The activity feed’s source of truth.
Add HITL approvals
Wallet-driven approval flow.