> ## Documentation Index
> Fetch the complete documentation index at: https://base-a060aa97-docs-add-b20-spec.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# IB20Asset.updateExtraMetadata

> Generated B20 reference for updateExtraMetadata(string,string).

[Related concept](/base-chain/specs/upgrades/beryl/b20/specification/concepts/variants-asset-vs-stablecoin)

## Signature

```solidity theme={null}
function updateExtraMetadata(string calldata key, string calldata value) external;
```

| Field               | Value                                |
| ------------------- | ------------------------------------ |
| Selector            | `0xb2851ef5`                         |
| Canonical signature | `updateExtraMetadata(string,string)` |

## Description

Sets, updates, or removes an extra-metadata entry. An empty `value` removes the
entry. Emits `ExtraMetadataUpdated`.
Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `METADATA_ROLE`.
Dev: Reverts with `InvalidMetadataKey` when `key` is the empty string.
Param: key   Metadata entry key (e.g. `"category"`).
Param: value New value, or empty string to remove.

## Access control

`METADATA_ROLE` gates this call.

## Policy interaction

No direct policy interaction.

## Example

```solidity theme={null}
IB20Asset(target).updateExtraMetadata(arg0, arg1);
```

## Related

* [IB20Asset reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset)
* [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses)
