Operation Type (for Signing)
Request Body
| Field | Type | Need | Description | Example |
|---|---|---|---|---|
”account” | string | required | User’s wallet address | 42trU9A5… |
“signature” | string | required | Cryptographic signature | 5j1Vy9Uq… |
“timestamp” | integer | required | Current timestamp in milliseconds | 1716200000000 |
”challenge_id” | string | required | Challenge ID (UUID) from Begin WebAuthn registration | 45c48cce-2e2d-4fbd-8f3b-7a1c9e0d5b62 |
”credential” | object | required | The credential from navigator.credentials.create() as JSON, with binary values as base64url strings. Not part of the signed payload | See below |
”expiry_window” | integer | optional | Signature expiry in milliseconds | 30000 |
Signing
Signchallenge_id as the data object. Do not sign credential. For the request above, the message to sign is:
Response
- Status 200: Passkey or security key added
Pacifica shows recovery keys only once. Store them somewhere safe.
- Status 400: Invalid request parameters or signature
- Status 401: The credential is not valid, or the challenge is unknown, expired, or already used
- Status 403: The account is a subaccount, or it does not exist
- Status 422: The registration does not fit the account. The
errorfield says why:
- Status 500: Internal server error
- Status 503: The two-factor service is unavailable. Retry later