AC
Aigarth Tracker
AC
Aigarth Tracker

Wallet Auth

Command centre for the Qubic wallet-as-identity flow. Powers the lp-qubic CTA. New endpoint as of today — live stats will fill in as wallets connect.

Real K12 verifier active

K12 + SchnorrQ_Verify is the only path now. The 32-byte dev stub is no longer emitted by any client; it's only a historical marker.

Linked wallets
0
Active (not revoked)
Unique users
0
One per Qubic address
Sessions (30d)
0
Wallet-auth logins
Sign-ins (24h)
0
Real K12 verifier
30-day proof kinds
How the user proved wallet ownership at sign-in
kind: message0
0%of 0 30d logins

window.qubic / vault / paste-address dev stub

kind: transaction0
0%of 0 30d logins

MetaMask Qubic snap (Option B — self-transfer w/ challenge in input)

message = direct 64-byte SchnorrQ over the canonical challenge. transaction = the snap's signTransaction RPC wrapped around a self-transfer with inputType 0x4147 ("AG"); the server unwraps and verifies against the embedded challenge. The unknown bucket is for audit rows whose metadata doesn't carry a kind (should be 0 after Phase 21).

Recent sign-ins
Last 10 wallet-auth sessions
All services →
No wallet-auth sign-ins yet. Try it from /lp-qubic (open the page in a new tab — paste any 60-char uppercase address).
Endpoint health
Live ping to identity service
  • wallet.startPOST
    /v1/auth/wallet/start
  • wallet.finishPOST
    /v1/auth/wallet/finish
  • wallet.statsGET
    /v1/auth/wallet/stats
Transaction audit feed
Last 10 wallet-auth events with proof kind, label, and IP hash
Phase 21
No wallet-auth events yet. Sign in via the snap (MetaMask Flask), the in-browser vault, or paste an address to populate the feed.
How the flow works
Wallet-as-identity on the identity service
  1. 1Request nonce

    Browser POSTs a 60-char Qubic address to /v1/auth/wallet/start. The server stores a one-shot nonce (5 min TTL) and returns the canonical message to sign.

  2. 2Sign

    Pick a path: window.qubic, MetaMask Qubic snap (Option B — self-transfer with the challenge in input), in-browser vault, or paste-address dev stub. The server accepts kind:'message' or kind:'transaction'.

  3. 3Verify + provision

    /v1/auth/wallet/finish verifies the proof (K12 + SchnorrQ_Verify, or the dev-stub shape check), finds or creates the user (deterministic email + personal org), issues a JWT session, and sets the aigarth_session cookie.