Skip to main content
PATCH
/
v1
/
apps
/
{app_id}
/
intents
/
key_quorums
/
{key_quorum_id}
Create key quorum update intent
curl --request PATCH \
  --url https://api.privy.io/v1/apps/{app_id}/intents/key_quorums/{key_quorum_id} \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --header 'privy-app-id: <privy-app-id>' \
  --data '{
  "public_keys": [
    "<string>"
  ],
  "authorization_threshold": 2,
  "display_name": "<string>",
  "user_ids": [
    "<string>"
  ]
}'
{
  "intent_id": "<string>",
  "created_by_display_name": "<string>",
  "created_by_id": "<string>",
  "created_at": 123,
  "resource_id": "<string>",
  "authorization_details": [
    {
      "members": [
        {
          "type": "user",
          "user_id": "<string>",
          "display_name": "<string>",
          "has_signed": true
        }
      ],
      "threshold": 123,
      "display_name": "<string>"
    }
  ],
  "status": "pending",
  "expires_at": 123,
  "intent_type": "KEY_QUORUM",
  "request_details": {
    "method": "PATCH",
    "url": "<string>",
    "body": {
      "public_keys": [
        "<string>"
      ],
      "authorization_threshold": 2,
      "display_name": "<string>",
      "user_ids": [
        "<string>"
      ]
    }
  },
  "current_resource_data": {
    "id": "tb54eps4z44ed0jepousxi4n",
    "display_name": "Prod key quorum",
    "authorization_threshold": 1,
    "authorization_keys": [
      {
        "public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx4aoeD72yykviK+f/ckqE2CItVIG\n1rCnvC3/XZ1HgpOcMEMialRmTrqIK4oZlYd1RfxU3za/C9yjhboIuoPD3g==",
        "display_name": null
      },
      {
        "public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErzZtQr/bMIh3Y8f9ZqseB9i/AfjQ\nhu+agbNqXcJy/TfoNqvc/Y3Mh7gIZ8ZLXQEykycx4mYSpqrxp1lBKqsZDQ==",
        "display_name": null
      }
    ]
  },
  "action_result": {
    "status_code": 123,
    "executed_at": 123,
    "authorized_by_display_name": "<string>",
    "authorized_by_id": "<string>",
    "response_body": {
      "id": "tb54eps4z44ed0jepousxi4n",
      "display_name": "Prod key quorum",
      "authorization_threshold": 1,
      "authorization_keys": [
        {
          "public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx4aoeD72yykviK+f/ckqE2CItVIG\n1rCnvC3/XZ1HgpOcMEMialRmTrqIK4oZlYd1RfxU3za/C9yjhboIuoPD3g==",
          "display_name": null
        },
        {
          "public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErzZtQr/bMIh3Y8f9ZqseB9i/AfjQ\nhu+agbNqXcJy/TfoNqvc/Y3Mh7gIZ8ZLXQEykycx4mYSpqrxp1lBKqsZDQ==",
          "display_name": null
        }
      ]
    },
    "prior_state": {
      "id": "tb54eps4z44ed0jepousxi4n",
      "display_name": "Prod key quorum",
      "authorization_threshold": 1,
      "authorization_keys": [
        {
          "public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx4aoeD72yykviK+f/ckqE2CItVIG\n1rCnvC3/XZ1HgpOcMEMialRmTrqIK4oZlYd1RfxU3za/C9yjhboIuoPD3g==",
          "display_name": null
        },
        {
          "public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErzZtQr/bMIh3Y8f9ZqseB9i/AfjQ\nhu+agbNqXcJy/TfoNqvc/Y3Mh7gIZ8ZLXQEykycx4mYSpqrxp1lBKqsZDQ==",
          "display_name": null
        }
      ]
    }
  }
}

Authorizations

Authorization
string
header
required

Basic Auth header with your app ID as the username and your app secret as the password.

Headers

privy-app-id
string
required

ID of your Privy app.

Path Parameters

app_id
string
required

ID of the app.

key_quorum_id
string
required

ID of the key quorum.

Body

application/json
public_keys
string[]

List of P-256 public keys of the keys that should be authorized to sign on the key quorum, in base64-encoded DER format.

authorization_threshold
number

The number of keys that must sign for an action to be valid. Must be less than or equal to total number of key quorum members.

Required range: x >= 1
display_name
string
Maximum length: 50
user_ids
string[]

List of user IDs of the users that should be authorized to sign on the key quorum.

Response

200 - application/json

Created key quorum update intent.

Response for a key quorum update intent creation request

intent_id
string
required

Unique ID for the intent

created_by_display_name
string
required

Display name of the user who created the intent

created_at
number
required

Unix timestamp when the intent was created

resource_id
string
required

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

authorization_details
object[]
required

Detailed authorization information including key quorum members, thresholds, and signature status

status
enum<string>
required

Current status of the intent

Available options:
pending,
executed,
failed,
expired,
rejected
expires_at
number
required

Unix timestamp when the intent expires

intent_type
enum<string>
required
Available options:
KEY_QUORUM
request_details
object
required

The original key quorum update request that would be sent to the key quorum endpoint

created_by_id
string

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

current_resource_data
object

Current state of the key quorum before any changes. If undefined, the resource was deleted and no longer exists

Example:
{
"id": "tb54eps4z44ed0jepousxi4n",
"display_name": "Prod key quorum",
"authorization_threshold": 1,
"authorization_keys": [
{
"public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx4aoeD72yykviK+f/ckqE2CItVIG\n1rCnvC3/XZ1HgpOcMEMialRmTrqIK4oZlYd1RfxU3za/C9yjhboIuoPD3g==",
"display_name": null
},
{
"public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErzZtQr/bMIh3Y8f9ZqseB9i/AfjQ\nhu+agbNqXcJy/TfoNqvc/Y3Mh7gIZ8ZLXQEykycx4mYSpqrxp1lBKqsZDQ==",
"display_name": null
}
]
}
action_result
object

Result of key quorum update execution (only present if status is 'executed' or 'failed')