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

# IB20Asset.extraMetadata

> Returns the value of a named metadata entry on a B20 Asset token.

## Signature

```solidity IB20Asset.sol theme={null}
function extraMetadata(string calldata key) external view returns (string memory);
```

| Field               | Value                   |
| ------------------- | ----------------------- |
| Selector            | `0x4ddf9da0`            |
| Canonical signature | `extraMetadata(string)` |

## Description

Returns the value of the named metadata entry, or the empty string if no entry exists for that key. Each Asset token carries an arbitrary key/value store the issuer can use freely — for example `"category"` → `"electronics"`, `"region"` → `"north-america"`, or `"reference"` → `"REF-2024-001"`. All entries are optional and added post-creation; the factory seeds none at token creation.

## Parameters

| Name  | Type     | Description                                                                                                                                   |
| ----- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `key` | `string` | Metadata entry key. An empty key reverts with `InvalidMetadataKey` on write operations; read calls with an empty key return the empty string. |

## Returns

| Type     | Description                                                |
| -------- | ---------------------------------------------------------- |
| `string` | Current value for the key, or the empty string if not set. |

## Access Control

View — no role required.

## Policy Interaction

No direct policy interaction.

## Example

```solidity Usage Example theme={null}
string memory category = IB20Asset(token).extraMetadata("category");
```
