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 |
”enrollment_id” | string | required | Enrollment ID (UUID) from Begin TOTP enrollment | 8f14e45f-ceea-467a-9575-0b3a8d6c3f1e |
”code” | string | required | The authenticator app’s current code. Exactly 6 digits. Not part of the signed payload | 123456 |
”expiry_window” | integer | optional | Signature expiry in milliseconds | 30000 |
- If the code is wrong, the enrollment stays open. Try again.
- After 5 wrong codes, the enrollment ends. Start again.
- After 10 minutes, the enrollment expires. Start again.
Signing
Signenrollment_id as the data object. Do not sign code. For the request above, the message to sign is:
Response
- Status 200: Authenticator app added
Pacifica shows recovery keys only once. Store them somewhere safe.
- Status 400: Invalid request parameters or signature
- Status 401: The code is wrong, or the enrollment is unknown, expired, or ended
- Status 403: The account is a subaccount, or it does not exist
- Status 422: A factor change ended this enrollment (
two-factor settings changed. Start again.), or the account has no room for another factor - Status 500: Internal server error
- Status 503: The two-factor service is unavailable. Retry later