---
title: "Update a domain (overwriting update)"
method: PUT
path: "/domains/{name}"
tags: ["domains"]
---

# Update a domain (overwriting update)

`PUT /domains/{name}`

Perform Domain updates while doing full resets of the records.

### Change Owner with Record Reset
```
{
  "owner": {
    "type": "EXTERNAL",
    "address": "0x123"
  },
  "records": {}
}
```
Clears all records from the domain, then changes owner to the new owner address.

NOTE: You must include `"records": {}` to indicate the intent to clear records.

#### Owner Types
When changing owner of a domain, you must provide both a `type` and an `address` to clearly indicate the intent of the change.
- `NONE`: Used when changing the owner to a "burn" address, which will result in nobody owning the domain
  - Valid "burn" addresses are `0x0000000000000000000000000000000000000000` and `0x000000000000000000000000000000000000dEaD`
- `UD`: Used when changing the owner to an addressed owned by Unstoppable Domains
- `SELF`: Used when changing the owner to another address that belongs to your account
- `EXTERNAL`: Used when changing the owner to address that doesn't qualify as any of the above.
  - _WARNING_: This will result in the domain belonging to an address outside of the management of Unstoppable Domains and we will have no way to recover it.

### Update Records with Record Reset
```
{
  "records": {
    "key2": "value2"
  }
}
```
When applied to a domain with existing records, only `key2` will remain after the update is complete.

See [our documentation](https://docs.unstoppabledomains.com/resolution/guides/records-reference/) for more information on standardized keys.

## Path parameters

- `name` string, required

## Query parameters

- `$preview` boolean — Allows simulating the operation creation (when set to `true`), without actually starting any processing. This can be used to validate the operation will be permitted and get a preview of the initial outcome. When used, the operation in the response will have `PREVIEW` for all `id` and `status` values.

## Request body

- DomainUpdateRequestBody
  - `owner` DomainUpdateRequestBodyOwner
    - `type` 'NONE' | 'UD' | 'SELF' | 'EXTERNAL', required — - `NONE`: Domain is not currently owned by anyone - `UD`: Domain is owned by a wallet/contract that belongs to Unstoppable Domains - `SELF`: Domain is owned by your account. You can manage this domains through the API - `EXTERNAL`: Owner doesn't qualify as any of the above.
    - `address` string, required
  - `records` UpdateDomainRecords

## Response `200`

- DomainOperationResponse
  - `@type` 'unstoppabledomains.com/partner.v3.DomainOperationResult', required
  - `operation` OperationCheckResponse, required
    - `id` string, required
    - `@type` 'unstoppabledomains.com/partner.v3.Operation', required
    - `status` 'QUEUED' | 'SIGNATURE_REQUIRED' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
    - `type` 'DOMAIN_CLAIM' | 'DOMAIN_UPDATE' | 'DOMAIN_RETURN' | 'WALLET_CREATE' | 'WALLET_UPDATE' | 'WALLET_VERIFY' | 'ACCOUNT_UPDATE', required
    - `domain` string
    - `lastUpdatedTimestamp` number, required
    - `dependencies` union[], required
      - union
        - MintSubOperationResponse
          - `id` string, required
          - `status` 'QUEUED' | 'SIGNATURE_REQUIRED' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
          - `@type` 'unstoppabledomains.com/partner.v3.BlockchainOperation', required
          - `transaction` SubOperationTransactionResponse
            - `hash` string
            - `blockchain` 'MATIC' | 'ETH' | 'BASE', required
          - `type` 'MINT', required
          - `parameters` MintParametersResponse, required
            - `initialRecords` DomainRecords
            - `toAddress` string, required
        - UpdateRecordsSubOperationResponse
          - `id` string, required
          - `status` 'QUEUED' | 'SIGNATURE_REQUIRED' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
          - `@type` 'unstoppabledomains.com/partner.v3.BlockchainOperation', required
          - `transaction` SubOperationTransactionResponse
            - `hash` string
            - `blockchain` 'MATIC' | 'ETH' | 'BASE', required
          - `type` 'UPDATE_RECORDS', required
          - `parameters` UpdateRecordsParametersResponse, required
            - `recordUpdates` DomainRecords, required
            - `resetRecords` boolean, required
        - TransferSubOperationResponse
          - `id` string, required
          - `status` 'QUEUED' | 'SIGNATURE_REQUIRED' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
          - `@type` 'unstoppabledomains.com/partner.v3.BlockchainOperation', required
          - `transaction` SubOperationTransactionResponse
            - `hash` string
            - `blockchain` 'MATIC' | 'ETH' | 'BASE', required
          - `type` 'TRANSFER', required
          - `parameters` TransferParametersResponse, required
            - `fromAddress` string, required
            - `toAddress` string, required
            - `resetRecords` boolean, required
        - ReturnSubOperationResponse
          - `id` string, required
          - `status` 'QUEUED' | 'SIGNATURE_REQUIRED' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
          - `@type` 'unstoppabledomains.com/partner.v3.BlockchainOperation', required
          - `transaction` SubOperationTransactionResponse
            - `hash` string
            - `blockchain` 'MATIC' | 'ETH' | 'BASE', required
          - `type` 'RETURN', required
        - WalletCreateSubOperationResponse
          - `id` string, required
          - `status` 'QUEUED' | 'SIGNATURE_REQUIRED' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `result` WalletCreateResultResponse
            - `address` string, required
          - `type` 'WALLET_CREATE', required
        - WalletSetDefaultSubOperationResponse
          - `id` string, required
          - `status` 'QUEUED' | 'SIGNATURE_REQUIRED' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `parameters` WalletSetDefaultParametersResponse, required
            - `address` string, required
          - `type` 'WALLET_SET_DEFAULT', required
        - WebhookCreateSubOperationResponse
          - `id` string, required
          - `status` 'QUEUED' | 'SIGNATURE_REQUIRED' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `parameters` WebhookCreateParametersResponse, required
            - `type` 'OPERATION_FINISHED' | 'OPERATION_ACTION_REQUIRED', required
            - `url` string, uri, required
          - `result` WebhookCreateResultResponse
            - `id` string, required
          - `type` 'WEBHOOK_CREATE', required
        - WebhookDeleteSubOperationResponse
          - `id` string, required
          - `status` 'QUEUED' | 'SIGNATURE_REQUIRED' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
          - `@type` 'unstoppabledomains.com/partner.v3.PlatformOperation', required
          - `parameters` WebhookDeleteParametersResponse, required
            - `id` string, required
          - `type` 'WEBHOOK_DELETE', required

## Other responses

- `400` — Validation error or bad request due to domain custody, unsupported blockchain, etc.
- `502`

---

[API](https://skmtc.net/unstoppabledomains/apis/web3-partner-api-v3.md) · [All operations](https://skmtc.net/unstoppabledomains/apis/web3-partner-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unstoppabledomains/web3-partner-api-v3/versions/8331236de8e8/schema)
