Intents

Create wallet update intent

Changed on

Create an intent to update a wallet. The intent must be authorized by the wallet owner before it can be executed.

patch/v1/intents/wallets/{wallet_id}

Request

  • Base URL
    https://api.privy.io
  • URL
    https://api.privy.io/v1/intents/wallets/{wallet_id}
  • Auth
    HTTP basic

Path parameters

wallet_idstring required

ID of the wallet.

Headers

privy-app-idstring required

ID of your Privy app.

privy-request-expirystring

Request expiry. Value is a Unix timestamp in milliseconds representing the deadline by which the request must be processed.

Request body

display_namestring nullable

A human-readable label for the wallet. Set to null to clear.

external_idstring

A customer-provided identifier for mapping to external systems. URL-safe characters only ([a-zA-Z0-9_-]), max 64 chars. Write-once: cannot be changed once set.

policy_idsstring[]

New policy IDs to enforce on the wallet. Currently, only one policy is supported per wallet.

owner_idstring cuid2 nullable

New key quorum ID to set as the owner of the wallet. Cannot be used together with owner. Set to null to clear the existing owner.

Response

Created wallet update intent.

intent_idstring required

Unique ID for the intent

created_by_display_namestring required

Display name of the user who created the intent

created_by_idstring

ID of the user who created the intent. If undefined, the intent was created using the app secret

created_atnumber required

Unix timestamp when the intent was created

resource_idstring required

ID of the resource being modified (wallet_id, policy_id, etc)

status'pending' | 'processing' | 'executed' | 'failed' | 'expired' | 'rejected' | 'dismissed' required

Current status of an intent.

custom_expiryboolean required

Whether this intent has a custom expiry time set by the client. If false, the intent expires after a default duration.

expires_atnumber required

Unix timestamp when the intent expires

rejected_atnumber

Unix timestamp when the intent was rejected, present when status is 'rejected'

dismissed_atnumber

Unix timestamp when the intent was dismissed, present when status is 'dismissed'

dismissal_reasonstring

Human-readable reason for dismissal, present when status is 'dismissed'

intent_type'WALLET' required

Example response

{
  "current_resource_data": {
    "id": "id2tptkqrxd39qo9j423etij",
    "address": "0xF1DBff66C993EE895C8cb176c30b07A559d76496",
    "display_name": "Treasury",
    "external_id": "my-order-123",
    "chain_type": "ethereum",
    "policy_ids": [],
    "additional_signers": [],
    "owner_id": "rkiz0ivz254drv1xw982v3jq",
    "parent_wallet_id": null,
    "entity": {
      "id": "jorpjo4rfxj62nx1itt8y1zt",
      "type": "user"
    },
    "created_at": 1741834854578,
    "exported_at": null,
    "imported_at": null,
    "archived_at": null
  },
  "action_result": {
    "response_body": {
      "id": "id2tptkqrxd39qo9j423etij",
      "address": "0xF1DBff66C993EE895C8cb176c30b07A559d76496",
      "display_name": "Treasury",
      "external_id": "my-order-123",
      "chain_type": "ethereum",
      "policy_ids": [],
      "additional_signers": [],
      "owner_id": "rkiz0ivz254drv1xw982v3jq",
      "parent_wallet_id": null,
      "entity": {
        "id": "jorpjo4rfxj62nx1itt8y1zt",
        "type": "user"
      },
      "created_at": 1741834854578,
      "exported_at": null,
      "imported_at": null,
      "archived_at": null
    },
    "prior_state": {
      "id": "id2tptkqrxd39qo9j423etij",
      "address": "0xF1DBff66C993EE895C8cb176c30b07A559d76496",
      "display_name": "Treasury",
      "external_id": "my-order-123",
      "chain_type": "ethereum",
      "policy_ids": [],
      "additional_signers": [],
      "owner_id": "rkiz0ivz254drv1xw982v3jq",
      "parent_wallet_id": null,
      "entity": {
        "id": "jorpjo4rfxj62nx1itt8y1zt",
        "type": "user"
      },
      "created_at": 1741834854578,
      "exported_at": null,
      "imported_at": null,
      "archived_at": null
    }
  }
}

Changes

    • warning

      added the new xrpl enum value to the ///// response property for the response status

    • warning

      added the new xrpl enum value to the //// response property for the response status

    • warning

      added the new xrpl enum value to the /// response property for the response status

    • info

      added the new optional request property

    • info

      added the optional property ///// to the response with the status

    • info

      added the optional property ///// to the response with the status

    • info

      added the optional property ///// to the response with the status

    • info

      added the optional property ///// to the response with the status

    • info

      added the optional property //// to the response with the status

    • info

      added the optional property //// to the response with the status

    • info

      added the optional property //// to the response with the status

    • info

      added the optional property //// to the response with the status

    • info

      added the optional property /// to the response with the status

    • info

      added the optional property /// to the response with the status

    • info

      added the optional property /// to the response with the status

    • info

      added the optional property /// to the response with the status

    • info

      added the optional property /// to the response with the status

    • info

      the ///// response's property pattern ^[a-zA-Z0-9_-]+$ was added for the status

    • info

      the //// response's property pattern ^[a-zA-Z0-9_-]+$ was added for the status

    • info

      the /// response's property pattern ^[a-zA-Z0-9_-]+$ was added for the status

    • info

      added the optional property ///// to the response with the status

    • info

      added the optional property //// to the response with the status

    • info

      added the optional property /// to the response with the status