Skip to content

feat: add authorizationRelay handler#154

Open
figtracer wants to merge 1 commit intotempoxyz:mainfrom
figtracer:feat/authorization-relay
Open

feat: add authorizationRelay handler#154
figtracer wants to merge 1 commit intotempoxyz:mainfrom
figtracer:feat/authorization-relay

Conversation

@figtracer
Copy link
Copy Markdown

@figtracer figtracer commented Mar 20, 2026

Description:

adds Handler.authorizationRelay() — a handler that serves an /authorize page for cross-domain access key authorization.

problem

every mpp-powered app currently needs its own passkey wallet per domain (webauthn rpId limitation). users have to create a new wallet and fund it separately for each app. this kills adoption.

solution

a relay page that lets third-party apps authorize access keys against the user's existing tempo wallet via popup + postMessage.

flow:

  1. third-party app (e.g. varzim.figtracer.com) opens popup to tempo.xyz/authorize?keyAddress=0x...&hash=0x...
  2. relay page shows "authorize access key?" with key address, expiry, requesting origin
  3. user approves with their tempo.xyz passkey
  4. signed credential is sent back to the opener via postMessage
  5. third-party app uses the access key to sign mpp payments from the user's main wallet

same pattern as tempo wallet login in the CLI — but for the browser.

usage:

const relay = Handler.authorizationRelay({
  rp: { id: 'tempo.xyz' },
})

companion PR: wevm/wagmi — crossDomainAccessKey connector wevm/wagmi#5027

@figtracer figtracer marked this pull request as ready for review March 25, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant