Skip to main content
Update an organization with a PATCH request. The request can change any of these fields, and must include at least one:
  • display_name: the organization’s display name.
  • default_key_quorum_id: the key quorum that administers the organization. It must be a key quorum in your app. Changing it does not change the owner of the organization’s existing wallets.
  • default_wallet_configurations: the organization’s default wallet configurations.
For example, the following request changes the organization’s default key quorum:

Update default wallet configurations

Updates to default_wallet_configurations use JSON Merge Patch semantics:
  • An omitted chain type, or an omitted field within a chain type, keeps its stored value.
  • Setting a chain type to null removes that chain type’s defaults.
  • A provided field replaces the stored value. Arrays are replaced in full, so [] clears the field.
Fields within a chain type cannot be null. Use [] to clear a field. For example, the following update leaves the ethereum policy unchanged, clears its additional signers, and removes the solana defaults:
Privy validates the full configuration that results from the update, including chain types the request does not change. If any policy or signer is no longer valid, the update fails. Updated defaults apply only to wallets created after the update. Existing wallets keep their current configuration.

Deleting policies and key quorums used as defaults

Privy rejects requests to delete a policy or key quorum that an organization uses as a default:
  • Deleting a policy listed in any policy_ids or override_policy_ids returns a 400 error: Cannot delete policy because it is an organization's default policy
  • Deleting a key quorum listed as a signer_id returns a 400 error: Cannot delete key quorum because it is a default signer for an organization
This matches the existing protection for an organization’s default_key_quorum_id. To delete the resource, first remove it from the organization’s defaults, for example by setting that chain type to null.
This protection is best-effort and is not transactional. If an organization update that adds a reference completes while a delete is in progress, the delete can still succeed. Wallet creation for that chain type then fails with a 400 error until your app updates the organization’s defaults.