# Update tokens

You can update token details in Ripple Custody using the `v0_UpdateTicker` intent. This allows you to modify token metadata such as the display name or symbol.

## What you can update

| Field | Updatable | Notes |
|  --- | --- | --- |
| `name` | Yes | Token display name |
| `symbol` | Yes | Token ticker symbol |
| `ledgerId` | No | Cannot be changed after creation |
| `kind` | No | Cannot be changed after creation |
| `decimals` | Yes | Token decimal precision |
| `ledgerDetails` | No | Cannot be changed after creation |


## Prerequisites

Before updating a token, you need the following:

| Prerequisite | Additional information |
|  --- | --- |
| Token ID and current revision | [View tokens](/products/custody/accounts-and-assets/tokenization/token-management/api/view-tokens) |
| API authentication | [Authenticate API requests](/products/custody/identity-and-access/authentication/authenticate-api-requests) |
| A new intent ID in UUID format |  |


## Update a token

To update token details, follow the steps in [Manage intents and approvals](/products/custody/governance/intents/manage-intents-and-approvals), with a payload similar to the following example.

### Payload example


```json
{
  "payload": {
    "reference": {
      "id": "4773918e-0d63-4a5b-bfd7-1edc664c3b20",
      "revision": 1
    },
    "name": "Updated Token Name",
    "symbol": "UTN",
    "customProperties": {},
    "type": "v0_UpdateTicker"
  }
}
```

### Payload fields

| Field | Type | Required | Description |
|  --- | --- | --- | --- |
| `payload.reference.id` | UUID | Yes | Token ID from [Get ticker](/products/custody/reference/api/openapi/tickers/getticker) |
| `payload.reference.revision` | integer | Yes | Current token revision from the ticker response. |
| `payload.name` | string | Yes | Updated token display name |
| `payload.decimals` | integer | No | Updated token decimal precision |
| `payload.symbol` | string | No | Updated token ticker symbol |
| `payload.description` | string | No | Updated token description. |
| `payload.customProperties` | object | Yes | Custom string metadata. Use `{}` when empty. |
| `payload.type` | string | Yes | Must be `v0_UpdateTicker` |


Only include optional fields you want to update. Omitted optional fields retain their current values.

The token is updated when the intent is successfully approved and executed.

## Verify the result

After the intent is executed, verify the token was updated:


```http
GET /v1/tickers/{tickerId}
```

See [Get ticker](/products/custody/reference/api/openapi/tickers/getticker) for the complete API reference.

## Related topics

- [Token Management concepts](/products/custody/accounts-and-assets/tokenization/token-management)
- [View tokens](/products/custody/accounts-and-assets/tokenization/token-management/api/view-tokens)
- [Add tokens](/products/custody/accounts-and-assets/tokenization/token-management/api/add-custom-token)
- [Manage intents and approvals](/products/custody/governance/intents/manage-intents-and-approvals)
- [API reference: List tickers](/products/custody/reference/api/openapi/tickers/gettickers)
- [API reference: Get ticker](/products/custody/reference/api/openapi/tickers/getticker)