# `token.hasRole`

Checks if an address has a specific role for a TIP-20 token. [Learn more about token roles](https://docs.tempo.xyz/protocol/tip403/spec)

## Usage

:::code-group

```ts twoslash [example.ts]
import { client } from './viem.config'

const hasRole = await client.token.hasRole({
  account: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEbb',
  role: 'issuer',
  token: '0x20c0000000000000000000000000000000000011',
})

console.log('Has issuer role:', hasRole)
// @log: Has issuer role: true
```

```ts twoslash [viem.config.ts] filename="viem.config.ts"
// [!include ~/snippets/tempo/viem.config.ts:setup]
```

:::

## Return Type

```ts
type ReturnType = boolean // Whether the account has the role
```

## Parameters

### account

* **Type:** `Address`

Address to check for the role.

### role

* **Type:** `"defaultAdmin" | "pause" | "unpause" | "issuer" | "burnBlocked"`

Role to check.

### token

* **Type:** `Address | bigint`

Address or ID of the TIP-20 token.

### blockNumber (optional)

* **Type:** `bigint`

Block number to read the state from.

### blockOverrides (optional)

* **Type:** `BlockOverrides`

Block overrides to apply to the state.

### blockTag (optional)

* **Type:** `BlockTag`

Block tag to read the state from.

### stateOverride (optional)

* **Type:** `StateOverride`

State override to apply.
