Skip to main content
Removes one two-factor factor. Your other factors and your recovery keys stay. To get factor IDs, call Get two-factor status. You cannot remove the last factor. To remove it, disable two-factor authentication.

Operation Type (for Signing)

Request Body

FieldTypeNeedDescriptionExample
”account”stringrequiredUser’s wallet address42trU9A5…
“signature”stringrequiredCryptographic signature5j1Vy9Uq…
“timestamp”integerrequiredCurrent timestamp in milliseconds1716200000000
”factor_id”stringrequiredID (UUID) of the factor to removec9f0f895-fb98-4b91-a3b5-6e9e7c2f1d4a
”proof”objectrequiredProof. A recovery key works. Not part of the signed payload. See Proofs
”expiry_window”integeroptionalSignature expiry in milliseconds30000
Sign this request with the account’s own key. Agent wallets cannot sign it. The account must be a main account. Pacifica checks that the factor exists and is not the last one before it checks the proof. A request that fails these checks does not use up your proof. This call also ends every enrollment in progress.

Signing

Sign factor_id as the data object. Do not sign proof. For the request above, the message to sign is:

Response

  • Status 200: Factor removed
  • Status 400: Invalid request parameters or signature
  • Status 401: The proof is wrong, expired, or already used
  • Status 403: The account is a subaccount, or it does not exist
  • Status 422: The factor cannot be removed. The error field says why:
  • Status 429: Too many proof attempts
  • Status 500: Internal server error
  • Status 503: The two-factor service is unavailable. Retry later

Code Example (Python)