Passkey Verifier
Create a real passkey, sign a challenge issued by the deployed Stylus wallet, and inspect every value the contract checks. Nothing here is simulated and nothing is stored.
The deployed wallet
A key is already registered, and register() reverts with "already registered" once one is — so this wallet is permanently bound to the device that claimed it. Anyone else can still do everything below; only the final on-chain execute() needs that device.
Origin binding
This origin does not match. The contract compares the origin field of clientDataJSON against a compile-time constant, so execute() would reject an assertion signed here — by design, and the contract is deployed and must not be redeployed. Everything below still runs for real; the signature is verified in the browser against the same curve instead.
1 · Create a passkey
2 · Sign the contract's challenge
The challenge is not a transaction hash. The contract derives it from the call, the current nonce and its own address, so an assertion cannot be replayed against another transaction or another deployment.
Create a passkey first.