> For the complete documentation index, see [llms.txt](https://clanker.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://clanker.gitbook.io/documentation/sdk-reference/v4.md).

# V4 — Clanker Class

[**clanker-sdk**](/documentation/sdk-reference/sdk-reference.md)

***

[clanker-sdk](/documentation/sdk-reference/sdk-reference.md) / v4

## v4

### Classes

#### Clanker

Defined in: [src/v4/index.ts:30](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L30)

Clanker v4

**Constructors**

**Constructor**

```ts
new Clanker(config?): Clanker;
```

Defined in: [src/v4/index.ts:34](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L34)

**Parameters**

| Parameter | Type            |
| --------- | --------------- |
| `config?` | `ClankerConfig` |

**Returns**

[`Clanker`](#clanker)

**Properties**

| Property        | Modifier   | Type | Defined in                                                                                       |
| --------------- | ---------- | ---- | ------------------------------------------------------------------------------------------------ |
| `publicClient?` | `readonly` | { }  | [src/v4/index.ts:32](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L32) |
| `wallet?`       | `readonly` | { }  | [src/v4/index.ts:31](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L31) |

**Methods**

**availableRewards()**

```ts
availableRewards(token): Promise<bigint>;
```

Defined in: [src/v4/index.ts:151](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L151)

Check available rewards for a token and recipient.

**Parameters**

| Parameter               | Type                                                                      | Description                |
| ----------------------- | ------------------------------------------------------------------------- | -------------------------- |
| `token`                 | { `rewardRecipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } | Token to check rewards for |
| `token.rewardRecipient` | `` `0x${string}` ``                                                       | -                          |
| `token.token`           | `` `0x${string}` ``                                                       | -                          |

**Returns**

`Promise`<`bigint`>

Amount of rewards for the `token` and `rewardRecipient`

**claimRewards()**

```ts
claimRewards(token): Promise<
  | {
  error: undefined;
  txHash: `0x${string}`;
}
  | {
  error: ClankerError;
  txHash: undefined;
}>;
```

Defined in: [src/v4/index.ts:97](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L97)

Claim rewards for a clanker token.

**Parameters**

| Parameter               | Type                                                                      | Description                |
| ----------------------- | ------------------------------------------------------------------------- | -------------------------- |
| `token`                 | { `rewardRecipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } | Token to claim rewards for |
| `token.rewardRecipient` | `` `0x${string}` ``                                                       | -                          |
| `token.token`           | `` `0x${string}` ``                                                       | -                          |

**Returns**

`Promise`< | { `error`: `undefined`; `txHash`: `` `0x${string}` ``; } | { `error`: `ClankerError`; `txHash`: `undefined`; }>

Transaction hash of the claim or error

**claimRewardsSimulate()**

[View full generated declaration (593 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/ada917a1362016063d4b2eae3cb6871f395699365ee926cbf64f2cda96f3e970.txt)

Defined in: [src/v4/index.ts:74](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L74)

Simulate claiming rewards. Will use the wallet account on the Clanker class or the passed-in account.

**Parameters**

| Parameter               | Type                                                                      | Description                                       |
| ----------------------- | ------------------------------------------------------------------------- | ------------------------------------------------- |
| `token`                 | { `rewardRecipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } | The token to simulate reward claiming for         |
| `token.rewardRecipient` | `` `0x${string}` ``                                                       | -                                                 |
| `token.token?`          | `` `0x${string}` ``                                                       | -                                                 |
| `account?`              | `Account`                                                                 | Optional account to simulate calling claiming for |

**Returns**

`Promise`< | `SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"ClaimAmountTooHigh"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRecipient"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoFeesToClaim"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TransferFailed"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"AddDepositor"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokens"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokensPermissioned"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"StoreTokens"`; `type`: `"event"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"addDepositor"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"allowedDepositors"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `"isAllowed"`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"availableFees"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"claim"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"feesToClaim"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"storeFees"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"claim"` | `"addDepositor"` | `"storeFees"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"ClaimAmountTooHigh"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRecipient"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoFeesToClaim"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TransferFailed"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"AddDepositor"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokens"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokensPermissioned"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"StoreTokens"`; `type`: `"event"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"addDepositor"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"allowedDepositors"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `"isAllowed"`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"availableFees"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"claim"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"feesToClaim"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"storeFees"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"claim"` | `"addDepositor"` | `"storeFees"`>> & { `error`: `ClankerError`; }>

The simulated output

**claimVaultedTokens()**

```ts
claimVaultedTokens(token): Promise<
  | {
  txHash: `0x${string}`;
} & {
  error?: undefined;
}
  | UndefinedValues<{
  txHash: `0x${string}`;
}> & {
  error: ClankerError;
}>;
```

Defined in: [src/v4/index.ts:481](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L481)

Claim vaulted tokens for a clanker token.

**Parameters**

| Parameter     | Type                              | Description                       |
| ------------- | --------------------------------- | --------------------------------- |
| `token`       | { `token`: `` `0x${string}` ``; } | Token to claim vaulted tokens for |
| `token.token` | `` `0x${string}` ``               | -                                 |

**Returns**

`Promise`< | { `txHash`: `` `0x${string}` ``; } & { `error?`: `undefined`; } | `UndefinedValues`<{ `txHash`: `` `0x${string}` ``; }> & { `error`: `ClankerError`; }>

Transaction hash of the claim or error

**deploy()**

```ts
deploy(token, options?): Promise<
  | {
  txHash: `0x${string}`;
  waitForTransaction: () => ClankerResult<{
     address: `0x${string}`;
  }>;
} & {
  error?: undefined;
}
  | UndefinedValues<{
  txHash: `0x${string}`;
  waitForTransaction: () => ClankerResult<{
     address: `0x${string}`;
  }>;
}> & {
  error: ClankerError;
}>;
```

Defined in: [src/v4/index.ts:204](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L204)

Deploy a token

**Parameters**

| Parameter                           | Type                                                                                                                                                                                                                                                                                                       | Description                                                                                                                            |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `token`                             | [Full type](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/f5a0587f996f6c02255e424e06554895e48f63dbcee4f50620ac17c7813ef83f.txt)                                                                                                                           | The token to deploy                                                                                                                    |
| `token.airdrop?`                    | { `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                        | Token airdrop. Tokens are locked for some duration with possible vesting.                                                              |
| `token.airdrop.admin?`              | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Admin for the airdrop. Defaults to TokenAdmin if not set.                                                                              |
| `token.airdrop.amount?`             | `number`                                                                                                                                                                                                                                                                                                   | How many tokens to lock up. Denoted in whole tokens (without the 18 decimals). Minimum is 25 bps of the supply.                        |
| `token.airdrop.lockupDuration?`     | `number`                                                                                                                                                                                                                                                                                                   | How long to lock the tokens for. In seconds. Minimum 1 day.                                                                            |
| `token.airdrop.merkleRoot?`         | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Root of the airdrop merkle tree.                                                                                                       |
| `token.airdrop.vestingDuration?`    | `number`                                                                                                                                                                                                                                                                                                   | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `token.chainId?`                    | `1` \| `143` \| `4663` \| `8453` \| `10143` \| `2741` \| `84532` \| `42161` \| `130` \| `56`                                                                                                                                                                                                               | Id of the chain that the token will be deployed to. Defaults to base (8453).                                                           |
| `token.context?`                    | { `id?`: `string`; `interface?`: `string`; `messageId?`: `string`; `platform?`: `string`; }                                                                                                                                                                                                                | Social provenance for the token. Interface defaults to "SDK" if not set.                                                               |
| `token.context.id?`                 | `string`                                                                                                                                                                                                                                                                                                   | User id of the poster on the social platform the token was deployed from. Used for provenance and will be verified by aggregators.     |
| `token.context.interface?`          | `string`                                                                                                                                                                                                                                                                                                   | System the token was deployed via. Defaults to "SDK".                                                                                  |
| `token.context.messageId?`          | `string`                                                                                                                                                                                                                                                                                                   | Id of the message on the social platform the token was deployed from. Used for provenance and will be verified by aggregators.         |
| `token.context.platform?`           | `string`                                                                                                                                                                                                                                                                                                   | Social platform the token was deployed from. Used for provenance and will be verified by aggregators.                                  |
| `token.devBuy?`                     | { `amountOutMin?`: `number`; `ethAmount`: `number`; `poolKey?`: { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `recipient?`: `` `0x${string}` ``; }                                                      | Token dev buy. Tokens are bought in the token creation transaction.                                                                    |
| `token.devBuy.amountOutMin?`        | `number`                                                                                                                                                                                                                                                                                                   | Amount out min for the ETH -> PAIR swap. Used if the clanker is not paired with ETH.                                                   |
| `token.devBuy.ethAmount?`           | `number`                                                                                                                                                                                                                                                                                                   | How much of the token to buy (denoted in ETH).                                                                                         |
| `token.devBuy.poolKey?`             | { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }                                                                                                                                                            | Pool identifier. Used if the clanker is not paired with ETH. Then the devbuy will pay ETH -> PAIR -> CLANKER.                          |
| `token.devBuy.poolKey.currency0?`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | -                                                                                                                                      |
| `token.devBuy.poolKey.currency1?`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | -                                                                                                                                      |
| `token.devBuy.poolKey.fee?`         | `number`                                                                                                                                                                                                                                                                                                   | -                                                                                                                                      |
| `token.devBuy.poolKey.hooks?`       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | -                                                                                                                                      |
| `token.devBuy.poolKey.tickSpacing?` | `number`                                                                                                                                                                                                                                                                                                   | -                                                                                                                                      |
| `token.devBuy.recipient?`           | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Recipient address for the purchased tokens. Defaults to tokenAdmin if not specified.                                                   |
| `token.fees?`                       | \| { `clankerFee`: `number`; `pairedFee`: `number`; `type?`: `"static"`; } \| { `baseFee`: `number`; `decayFilterBps`: `number`; `feeControlNumerator`: `number`; `maxFee`: `number`; `referenceTickFilterPeriod`: `number`; `resetPeriod`: `number`; `resetTickFilter`: `number`; `type?`: `"dynamic"`; } | Fee structure for the token.                                                                                                           |
| `token.image?`                      | `string`                                                                                                                                                                                                                                                                                                   | Image for the token. This should be a normal or ipfs url.                                                                              |
| `token.locker?`                     | { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData?`: `` `0x${string}` ``; }                                                                                                                                                                                                                       | Token locker                                                                                                                           |
| `token.locker.locker?`              | `` `0x${string}` `` \| `"Locker"`                                                                                                                                                                                                                                                                          | Locker extension address.                                                                                                              |
| `token.locker.lockerData?`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Locker extension specific data. Abi encoded hex of the parameters.                                                                     |
| `token.metadata?`                   | { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }                                                                                                                                                                                | Metadata for the token.                                                                                                                |
| `token.metadata.auditUrls?`         | `string`\[]                                                                                                                                                                                                                                                                                                | Audits for other contracts or services offered by the project.                                                                         |
| `token.metadata.description?`       | `string`                                                                                                                                                                                                                                                                                                   | Description of the token or token project.                                                                                             |
| `token.metadata.socialMediaUrls?`   | { `platform`: `string`; `url`: `string`; }\[]                                                                                                                                                                                                                                                              | Socials for the token. These may be displayed on aggregators.                                                                          |
| `token.name?`                       | `string`                                                                                                                                                                                                                                                                                                   | Name of the token. Example: "My Token".                                                                                                |
| `token.pool?`                       | { `pairedToken?`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker?`: `number`; `tickSpacing?`: `number`; }                                                                                             | Pool information                                                                                                                       |
| `token.pool.pairedToken?`           | `` `0x${string}` `` \| `"WETH"`                                                                                                                                                                                                                                                                            | Token to pair the clanker with.                                                                                                        |
| `token.pool.positions?`             | { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]                                                                                                                                                                                                                              | Positions for initial pool liquidity. Bps must sum to 100%.                                                                            |
| `token.pool.tickIfToken0IsClanker?` | `number`                                                                                                                                                                                                                                                                                                   | Starting tick of the pool.                                                                                                             |
| `token.pool.tickSpacing?`           | `number`                                                                                                                                                                                                                                                                                                   | Tick spacing.                                                                                                                          |
| `token.poolExtension?`              | { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }                                                                                                                                                                                                                                       | \[v4.1+ only] Custom developer extension                                                                                               |
| `token.poolExtension.address?`      | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Address of the developer extension                                                                                                     |
| `token.poolExtension.initData?`     | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Initialization data for the extension                                                                                                  |
| `token.presale?`                    | { `bps`: `number`; }                                                                                                                                                                                                                                                                                       | Presale configuration for the token. Must be deployed via the presale contract.                                                        |
| `token.presale.bps?`                | `number`                                                                                                                                                                                                                                                                                                   | Bps for allocation to presale                                                                                                          |
| `token.rewards?`                    | { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }                                                                                                                                                 | Rewards & recipients for rewards generated by the token.                                                                               |
| `token.rewards.recipients?`         | { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]                                                                                                                                                                    | Recipients of the token rewards. Must sum to 100%.                                                                                     |
| `token.salt?`                       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Custom salt for CREATE2 deployment. If provided, this will be used instead of vanity address generation. Takes precedence over vanity. |
| `token.sniperFees?`                 | { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }                                                                                                                                                                                                                            | \[v4.1+ only] Sniper fees                                                                                                              |
| `token.sniperFees.endingFee?`       | `number`                                                                                                                                                                                                                                                                                                   | Ending sniper fee (units: Unibps)                                                                                                      |
| `token.sniperFees.secondsToDecay?`  | `number`                                                                                                                                                                                                                                                                                                   | Sniper fee duration                                                                                                                    |
| `token.sniperFees.startingFee?`     | `number`                                                                                                                                                                                                                                                                                                   | Starting sniper fee (units: Unibps)                                                                                                    |
| `token.symbol?`                     | `string`                                                                                                                                                                                                                                                                                                   | Symbol for the token. Example: "MTK".                                                                                                  |
| `token.tokenAdmin?`                 | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Admin for the token. They will be able to change fields like image, metadata, etc.                                                     |
| `token.vanity?`                     | `boolean`                                                                                                                                                                                                                                                                                                  | Whether or not to enable the "0xb07" address suffix.                                                                                   |
| `token.vault?`                      | { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                                                   | Token vault. Tokens are locked for some duration with possible vesting.                                                                |
| `token.vault.lockupDuration?`       | `number`                                                                                                                                                                                                                                                                                                   | How long to lock the tokens for. In seconds. Minimum 7 days.                                                                           |
| `token.vault.percentage?`           | `number`                                                                                                                                                                                                                                                                                                   | Percent of total supply allocated to the vault.                                                                                        |
| `token.vault.recipient?`            | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Recipient for the vault extension. Defaults to tokenAdmin if not set.                                                                  |
| `token.vault.vestingDuration?`      | `number`                                                                                                                                                                                                                                                                                                   | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `options?`                          | [`DeployTokenOptions`](/documentation/sdk-reference/index.md#deploytokenoptions)                                                                                                                                                                                                                           | Optional deployment options                                                                                                            |

**Returns**

`Promise`< | { `txHash`: `` `0x${string}` ``; `waitForTransaction`: () => `ClankerResult`<{ `address`: `` `0x${string}` ``; }>; } & { `error?`: `undefined`; } | `UndefinedValues`<{ `txHash`: `` `0x${string}` ``; `waitForTransaction`: () => `ClankerResult`<{ `address`: `` `0x${string}` ``; }>; }> & { `error`: `ClankerError`; }>

Transaction hash and awaitable function for full deployment

**deploySimulate()**

```ts
deploySimulate(token, account?): Promise<
  | SimulateContractReturnType<ClankerFactory, 
  | "claimTeamFees"
  | "deployToken"
  | "deployTokenZeroSupply"
  | "initialize"
  | "renounceOwnership"
  | "setAdmin"
  | "setDeprecated"
  | "setExtension"
  | "setHook"
  | "setLocker"
  | "setMevModule"
  | "setTeamFeeRecipient"
  | "transferOwnership"
  | "updateLiquidityLocker"
  | "claimRewards"
  | "deployTokenWithCustomTeamRewardRecipient"
  | "updateVault"> & {
  error?: undefined;
}
  | UndefinedValues<SimulateContractReturnType<ClankerFactory, 
  | "claimTeamFees"
  | "deployToken"
  | "deployTokenZeroSupply"
  | "initialize"
  | "renounceOwnership"
  | "setAdmin"
  | "setDeprecated"
  | "setExtension"
  | "setHook"
  | "setLocker"
  | "setMevModule"
  | "setTeamFeeRecipient"
  | "transferOwnership"
  | "updateLiquidityLocker"
  | "claimRewards"
  | "deployTokenWithCustomTeamRewardRecipient"
  | "updateVault">> & {
  error: ClankerError;
}>;
```

Defined in: [src/v4/index.ts:186](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L186)

Simulate a token deployment

**Parameters**

| Parameter                           | Type                                                                                                                                                                                                                                                                                                       | Description                                                                                                                            |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `token`                             | [Full type](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/f5a0587f996f6c02255e424e06554895e48f63dbcee4f50620ac17c7813ef83f.txt)                                                                                                                           | The token to deploy                                                                                                                    |
| `token.airdrop?`                    | { `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                        | Token airdrop. Tokens are locked for some duration with possible vesting.                                                              |
| `token.airdrop.admin?`              | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Admin for the airdrop. Defaults to TokenAdmin if not set.                                                                              |
| `token.airdrop.amount?`             | `number`                                                                                                                                                                                                                                                                                                   | How many tokens to lock up. Denoted in whole tokens (without the 18 decimals). Minimum is 25 bps of the supply.                        |
| `token.airdrop.lockupDuration?`     | `number`                                                                                                                                                                                                                                                                                                   | How long to lock the tokens for. In seconds. Minimum 1 day.                                                                            |
| `token.airdrop.merkleRoot?`         | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Root of the airdrop merkle tree.                                                                                                       |
| `token.airdrop.vestingDuration?`    | `number`                                                                                                                                                                                                                                                                                                   | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `token.chainId?`                    | `1` \| `143` \| `4663` \| `8453` \| `10143` \| `2741` \| `84532` \| `42161` \| `130` \| `56`                                                                                                                                                                                                               | Id of the chain that the token will be deployed to. Defaults to base (8453).                                                           |
| `token.context?`                    | { `id?`: `string`; `interface?`: `string`; `messageId?`: `string`; `platform?`: `string`; }                                                                                                                                                                                                                | Social provenance for the token. Interface defaults to "SDK" if not set.                                                               |
| `token.context.id?`                 | `string`                                                                                                                                                                                                                                                                                                   | User id of the poster on the social platform the token was deployed from. Used for provenance and will be verified by aggregators.     |
| `token.context.interface?`          | `string`                                                                                                                                                                                                                                                                                                   | System the token was deployed via. Defaults to "SDK".                                                                                  |
| `token.context.messageId?`          | `string`                                                                                                                                                                                                                                                                                                   | Id of the message on the social platform the token was deployed from. Used for provenance and will be verified by aggregators.         |
| `token.context.platform?`           | `string`                                                                                                                                                                                                                                                                                                   | Social platform the token was deployed from. Used for provenance and will be verified by aggregators.                                  |
| `token.devBuy?`                     | { `amountOutMin?`: `number`; `ethAmount`: `number`; `poolKey?`: { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `recipient?`: `` `0x${string}` ``; }                                                      | Token dev buy. Tokens are bought in the token creation transaction.                                                                    |
| `token.devBuy.amountOutMin?`        | `number`                                                                                                                                                                                                                                                                                                   | Amount out min for the ETH -> PAIR swap. Used if the clanker is not paired with ETH.                                                   |
| `token.devBuy.ethAmount?`           | `number`                                                                                                                                                                                                                                                                                                   | How much of the token to buy (denoted in ETH).                                                                                         |
| `token.devBuy.poolKey?`             | { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }                                                                                                                                                            | Pool identifier. Used if the clanker is not paired with ETH. Then the devbuy will pay ETH -> PAIR -> CLANKER.                          |
| `token.devBuy.poolKey.currency0?`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | -                                                                                                                                      |
| `token.devBuy.poolKey.currency1?`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | -                                                                                                                                      |
| `token.devBuy.poolKey.fee?`         | `number`                                                                                                                                                                                                                                                                                                   | -                                                                                                                                      |
| `token.devBuy.poolKey.hooks?`       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | -                                                                                                                                      |
| `token.devBuy.poolKey.tickSpacing?` | `number`                                                                                                                                                                                                                                                                                                   | -                                                                                                                                      |
| `token.devBuy.recipient?`           | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Recipient address for the purchased tokens. Defaults to tokenAdmin if not specified.                                                   |
| `token.fees?`                       | \| { `clankerFee`: `number`; `pairedFee`: `number`; `type?`: `"static"`; } \| { `baseFee`: `number`; `decayFilterBps`: `number`; `feeControlNumerator`: `number`; `maxFee`: `number`; `referenceTickFilterPeriod`: `number`; `resetPeriod`: `number`; `resetTickFilter`: `number`; `type?`: `"dynamic"`; } | Fee structure for the token.                                                                                                           |
| `token.image?`                      | `string`                                                                                                                                                                                                                                                                                                   | Image for the token. This should be a normal or ipfs url.                                                                              |
| `token.locker?`                     | { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData?`: `` `0x${string}` ``; }                                                                                                                                                                                                                       | Token locker                                                                                                                           |
| `token.locker.locker?`              | `` `0x${string}` `` \| `"Locker"`                                                                                                                                                                                                                                                                          | Locker extension address.                                                                                                              |
| `token.locker.lockerData?`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Locker extension specific data. Abi encoded hex of the parameters.                                                                     |
| `token.metadata?`                   | { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }                                                                                                                                                                                | Metadata for the token.                                                                                                                |
| `token.metadata.auditUrls?`         | `string`\[]                                                                                                                                                                                                                                                                                                | Audits for other contracts or services offered by the project.                                                                         |
| `token.metadata.description?`       | `string`                                                                                                                                                                                                                                                                                                   | Description of the token or token project.                                                                                             |
| `token.metadata.socialMediaUrls?`   | { `platform`: `string`; `url`: `string`; }\[]                                                                                                                                                                                                                                                              | Socials for the token. These may be displayed on aggregators.                                                                          |
| `token.name?`                       | `string`                                                                                                                                                                                                                                                                                                   | Name of the token. Example: "My Token".                                                                                                |
| `token.pool?`                       | { `pairedToken?`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker?`: `number`; `tickSpacing?`: `number`; }                                                                                             | Pool information                                                                                                                       |
| `token.pool.pairedToken?`           | `` `0x${string}` `` \| `"WETH"`                                                                                                                                                                                                                                                                            | Token to pair the clanker with.                                                                                                        |
| `token.pool.positions?`             | { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]                                                                                                                                                                                                                              | Positions for initial pool liquidity. Bps must sum to 100%.                                                                            |
| `token.pool.tickIfToken0IsClanker?` | `number`                                                                                                                                                                                                                                                                                                   | Starting tick of the pool.                                                                                                             |
| `token.pool.tickSpacing?`           | `number`                                                                                                                                                                                                                                                                                                   | Tick spacing.                                                                                                                          |
| `token.poolExtension?`              | { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }                                                                                                                                                                                                                                       | \[v4.1+ only] Custom developer extension                                                                                               |
| `token.poolExtension.address?`      | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Address of the developer extension                                                                                                     |
| `token.poolExtension.initData?`     | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Initialization data for the extension                                                                                                  |
| `token.presale?`                    | { `bps`: `number`; }                                                                                                                                                                                                                                                                                       | Presale configuration for the token. Must be deployed via the presale contract.                                                        |
| `token.presale.bps?`                | `number`                                                                                                                                                                                                                                                                                                   | Bps for allocation to presale                                                                                                          |
| `token.rewards?`                    | { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }                                                                                                                                                 | Rewards & recipients for rewards generated by the token.                                                                               |
| `token.rewards.recipients?`         | { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]                                                                                                                                                                    | Recipients of the token rewards. Must sum to 100%.                                                                                     |
| `token.salt?`                       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Custom salt for CREATE2 deployment. If provided, this will be used instead of vanity address generation. Takes precedence over vanity. |
| `token.sniperFees?`                 | { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }                                                                                                                                                                                                                            | \[v4.1+ only] Sniper fees                                                                                                              |
| `token.sniperFees.endingFee?`       | `number`                                                                                                                                                                                                                                                                                                   | Ending sniper fee (units: Unibps)                                                                                                      |
| `token.sniperFees.secondsToDecay?`  | `number`                                                                                                                                                                                                                                                                                                   | Sniper fee duration                                                                                                                    |
| `token.sniperFees.startingFee?`     | `number`                                                                                                                                                                                                                                                                                                   | Starting sniper fee (units: Unibps)                                                                                                    |
| `token.symbol?`                     | `string`                                                                                                                                                                                                                                                                                                   | Symbol for the token. Example: "MTK".                                                                                                  |
| `token.tokenAdmin?`                 | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Admin for the token. They will be able to change fields like image, metadata, etc.                                                     |
| `token.vanity?`                     | `boolean`                                                                                                                                                                                                                                                                                                  | Whether or not to enable the "0xb07" address suffix.                                                                                   |
| `token.vault?`                      | { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                                                   | Token vault. Tokens are locked for some duration with possible vesting.                                                                |
| `token.vault.lockupDuration?`       | `number`                                                                                                                                                                                                                                                                                                   | How long to lock the tokens for. In seconds. Minimum 7 days.                                                                           |
| `token.vault.percentage?`           | `number`                                                                                                                                                                                                                                                                                                   | Percent of total supply allocated to the vault.                                                                                        |
| `token.vault.recipient?`            | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Recipient for the vault extension. Defaults to tokenAdmin if not set.                                                                  |
| `token.vault.vestingDuration?`      | `number`                                                                                                                                                                                                                                                                                                   | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `account?`                          | `Account`                                                                                                                                                                                                                                                                                                  | Optional account for the deployer                                                                                                      |

**Returns**

`Promise`< | `SimulateContractReturnType`<`ClankerFactory`, | `"claimTeamFees"` | `"deployToken"` | `"deployTokenZeroSupply"` | `"initialize"` | `"renounceOwnership"` | `"setAdmin"` | `"setDeprecated"` | `"setExtension"` | `"setHook"` | `"setLocker"` | `"setMevModule"` | `"setTeamFeeRecipient"` | `"transferOwnership"` | `"updateLiquidityLocker"` | `"claimRewards"` | `"deployTokenWithCustomTeamRewardRecipient"` | `"updateVault"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`<`ClankerFactory`, | `"claimTeamFees"` | `"deployToken"` | `"deployTokenZeroSupply"` | `"initialize"` | `"renounceOwnership"` | `"setAdmin"` | `"setDeprecated"` | `"setExtension"` | `"setHook"` | `"setLocker"` | `"setMevModule"` | `"setTeamFeeRecipient"` | `"transferOwnership"` | `"updateLiquidityLocker"` | `"claimRewards"` | `"deployTokenWithCustomTeamRewardRecipient"` | `"updateVault"`>> & { `error`: `ClankerError`; }>

Abi transaction

**getAvailableRewardsTransaction()**

[View full generated declaration (294 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/5510b481cb39ada4963e1ea810178b91a08102901c0e3ba960141cd2775f759c.txt)

Defined in: [src/v4/index.ts:124](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L124)

Get an abi-typed transaction for checking rewards on a token.

**Parameters**

| Parameter               | Type                                                                      | Description                |
| ----------------------- | ------------------------------------------------------------------------- | -------------------------- |
| `token`                 | { `rewardRecipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } | Token to check rewards for |
| `token.rewardRecipient` | `` `0x${string}` ``                                                       | -                          |
| `token.token?`          | `` `0x${string}` ``                                                       | -                          |
| `options?`              | { `chain?`: `Chain`; }                                                    | -                          |
| `options.chain?`        | `Chain`                                                                   | -                          |

**Returns**

`Promise`<{ `abi`: readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"ClaimAmountTooHigh"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRecipient"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoFeesToClaim"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TransferFailed"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"AddDepositor"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokens"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokensPermissioned"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"StoreTokens"`; `type`: `"event"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"addDepositor"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"allowedDepositors"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `"isAllowed"`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"availableFees"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"claim"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"feesToClaim"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"storeFees"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }]; `address`: `` `0x${string}` ``; `args`: readonly \[`` `0x${string}` ``, `` `0x${string}` ``]; `functionName`: `"availableFees"`; }>

Abi transaction

**getClaimRewardsTransaction()**

[View full generated declaration (289 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/ccff050fbbd0a4feab28a6c9f94fa7b73f6318657070e34cfc63852502b8a7f9.txt)

Defined in: [src/v4/index.ts:46](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L46)

Get an abi-typed transaction for claiming rewards on a token.

**Parameters**

| Parameter               | Type                                                                      | Description            |
| ----------------------- | ------------------------------------------------------------------------- | ---------------------- |
| `token`                 | { `rewardRecipient`: `` `0x${string}` ``; `token`: `` `0x${string}` ``; } | The token to claim for |
| `token.rewardRecipient` | `` `0x${string}` ``                                                       | -                      |
| `token.token?`          | `` `0x${string}` ``                                                       | -                      |
| `options?`              | { `chain?`: `Chain`; }                                                    | -                      |
| `options.chain?`        | `Chain`                                                                   | -                      |

**Returns**

`Promise`<`ClankerTransactionConfig`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"ClaimAmountTooHigh"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRecipient"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoFeesToClaim"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TransferFailed"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"AddDepositor"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokens"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountClaimed"`; `type`: `"uint256"`; }]; `name`: `"ClaimTokensPermissioned"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"StoreTokens"`; `type`: `"event"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"addDepositor"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"depositor"`; `type`: `"address"`; }]; `name`: `"allowedDepositors"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `"isAllowed"`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"availableFees"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"claim"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"feesToClaim"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"feeOwner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"storeFees"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }]>>

Abi transaction

**getDeployTransaction()**

[View full generated declaration (820 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/4e40aea66468e76911e9fe9bdc8096023a6150d6af9cfae320caba1b92d23a30.txt)

Defined in: [src/v4/index.ts:175](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L175)

Get an abi-typed transaction for deploying a clanker.

**Parameters**

| Parameter                           | Type                                                                                                                                                                                                                                                                                                       | Description                                                                                                                            |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `token`                             | [Full type](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/f5a0587f996f6c02255e424e06554895e48f63dbcee4f50620ac17c7813ef83f.txt)                                                                                                                           | The token to deploy                                                                                                                    |
| `token.airdrop?`                    | { `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                        | Token airdrop. Tokens are locked for some duration with possible vesting.                                                              |
| `token.airdrop.admin?`              | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Admin for the airdrop. Defaults to TokenAdmin if not set.                                                                              |
| `token.airdrop.amount`              | `number`                                                                                                                                                                                                                                                                                                   | How many tokens to lock up. Denoted in whole tokens (without the 18 decimals). Minimum is 25 bps of the supply.                        |
| `token.airdrop.lockupDuration`      | `number`                                                                                                                                                                                                                                                                                                   | How long to lock the tokens for. In seconds. Minimum 1 day.                                                                            |
| `token.airdrop.merkleRoot`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Root of the airdrop merkle tree.                                                                                                       |
| `token.airdrop.vestingDuration?`    | `number`                                                                                                                                                                                                                                                                                                   | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `token.chainId?`                    | `1` \| `143` \| `4663` \| `8453` \| `10143` \| `2741` \| `84532` \| `42161` \| `130` \| `56`                                                                                                                                                                                                               | Id of the chain that the token will be deployed to. Defaults to base (8453).                                                           |
| `token.context?`                    | { `id?`: `string`; `interface?`: `string`; `messageId?`: `string`; `platform?`: `string`; }                                                                                                                                                                                                                | Social provenance for the token. Interface defaults to "SDK" if not set.                                                               |
| `token.context.id?`                 | `string`                                                                                                                                                                                                                                                                                                   | User id of the poster on the social platform the token was deployed from. Used for provenance and will be verified by aggregators.     |
| `token.context.interface?`          | `string`                                                                                                                                                                                                                                                                                                   | System the token was deployed via. Defaults to "SDK".                                                                                  |
| `token.context.messageId?`          | `string`                                                                                                                                                                                                                                                                                                   | Id of the message on the social platform the token was deployed from. Used for provenance and will be verified by aggregators.         |
| `token.context.platform?`           | `string`                                                                                                                                                                                                                                                                                                   | Social platform the token was deployed from. Used for provenance and will be verified by aggregators.                                  |
| `token.devBuy?`                     | { `amountOutMin?`: `number`; `ethAmount`: `number`; `poolKey?`: { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `recipient?`: `` `0x${string}` ``; }                                                      | Token dev buy. Tokens are bought in the token creation transaction.                                                                    |
| `token.devBuy.amountOutMin?`        | `number`                                                                                                                                                                                                                                                                                                   | Amount out min for the ETH -> PAIR swap. Used if the clanker is not paired with ETH.                                                   |
| `token.devBuy.ethAmount`            | `number`                                                                                                                                                                                                                                                                                                   | How much of the token to buy (denoted in ETH).                                                                                         |
| `token.devBuy.poolKey?`             | { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }                                                                                                                                                            | Pool identifier. Used if the clanker is not paired with ETH. Then the devbuy will pay ETH -> PAIR -> CLANKER.                          |
| `token.devBuy.poolKey.currency0`    | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | -                                                                                                                                      |
| `token.devBuy.poolKey.currency1`    | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | -                                                                                                                                      |
| `token.devBuy.poolKey.fee`          | `number`                                                                                                                                                                                                                                                                                                   | -                                                                                                                                      |
| `token.devBuy.poolKey.hooks`        | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | -                                                                                                                                      |
| `token.devBuy.poolKey.tickSpacing`  | `number`                                                                                                                                                                                                                                                                                                   | -                                                                                                                                      |
| `token.devBuy.recipient?`           | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Recipient address for the purchased tokens. Defaults to tokenAdmin if not specified.                                                   |
| `token.fees?`                       | \| { `clankerFee`: `number`; `pairedFee`: `number`; `type?`: `"static"`; } \| { `baseFee`: `number`; `decayFilterBps`: `number`; `feeControlNumerator`: `number`; `maxFee`: `number`; `referenceTickFilterPeriod`: `number`; `resetPeriod`: `number`; `resetTickFilter`: `number`; `type?`: `"dynamic"`; } | Fee structure for the token.                                                                                                           |
| `token.image?`                      | `string`                                                                                                                                                                                                                                                                                                   | Image for the token. This should be a normal or ipfs url.                                                                              |
| `token.locker?`                     | { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData?`: `` `0x${string}` ``; }                                                                                                                                                                                                                       | Token locker                                                                                                                           |
| `token.locker.locker`               | `` `0x${string}` `` \| `"Locker"`                                                                                                                                                                                                                                                                          | Locker extension address.                                                                                                              |
| `token.locker.lockerData?`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Locker extension specific data. Abi encoded hex of the parameters.                                                                     |
| `token.metadata?`                   | { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }                                                                                                                                                                                | Metadata for the token.                                                                                                                |
| `token.metadata.auditUrls?`         | `string`\[]                                                                                                                                                                                                                                                                                                | Audits for other contracts or services offered by the project.                                                                         |
| `token.metadata.description?`       | `string`                                                                                                                                                                                                                                                                                                   | Description of the token or token project.                                                                                             |
| `token.metadata.socialMediaUrls?`   | { `platform`: `string`; `url`: `string`; }\[]                                                                                                                                                                                                                                                              | Socials for the token. These may be displayed on aggregators.                                                                          |
| `token.name`                        | `string`                                                                                                                                                                                                                                                                                                   | Name of the token. Example: "My Token".                                                                                                |
| `token.pool?`                       | { `pairedToken?`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker?`: `number`; `tickSpacing?`: `number`; }                                                                                             | Pool information                                                                                                                       |
| `token.pool.pairedToken?`           | `` `0x${string}` `` \| `"WETH"`                                                                                                                                                                                                                                                                            | Token to pair the clanker with.                                                                                                        |
| `token.pool.positions`              | { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]                                                                                                                                                                                                                              | Positions for initial pool liquidity. Bps must sum to 100%.                                                                            |
| `token.pool.tickIfToken0IsClanker?` | `number`                                                                                                                                                                                                                                                                                                   | Starting tick of the pool.                                                                                                             |
| `token.pool.tickSpacing?`           | `number`                                                                                                                                                                                                                                                                                                   | Tick spacing.                                                                                                                          |
| `token.poolExtension?`              | { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }                                                                                                                                                                                                                                       | \[v4.1+ only] Custom developer extension                                                                                               |
| `token.poolExtension.address`       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Address of the developer extension                                                                                                     |
| `token.poolExtension.initData`      | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Initialization data for the extension                                                                                                  |
| `token.presale?`                    | { `bps`: `number`; }                                                                                                                                                                                                                                                                                       | Presale configuration for the token. Must be deployed via the presale contract.                                                        |
| `token.presale.bps`                 | `number`                                                                                                                                                                                                                                                                                                   | Bps for allocation to presale                                                                                                          |
| `token.rewards?`                    | { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }                                                                                                                                                 | Rewards & recipients for rewards generated by the token.                                                                               |
| `token.rewards.recipients`          | { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]                                                                                                                                                                    | Recipients of the token rewards. Must sum to 100%.                                                                                     |
| `token.salt?`                       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Custom salt for CREATE2 deployment. If provided, this will be used instead of vanity address generation. Takes precedence over vanity. |
| `token.sniperFees?`                 | { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }                                                                                                                                                                                                                            | \[v4.1+ only] Sniper fees                                                                                                              |
| `token.sniperFees.endingFee`        | `number`                                                                                                                                                                                                                                                                                                   | Ending sniper fee (units: Unibps)                                                                                                      |
| `token.sniperFees.secondsToDecay`   | `number`                                                                                                                                                                                                                                                                                                   | Sniper fee duration                                                                                                                    |
| `token.sniperFees.startingFee`      | `number`                                                                                                                                                                                                                                                                                                   | Starting sniper fee (units: Unibps)                                                                                                    |
| `token.symbol`                      | `string`                                                                                                                                                                                                                                                                                                   | Symbol for the token. Example: "MTK".                                                                                                  |
| `token.tokenAdmin`                  | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Admin for the token. They will be able to change fields like image, metadata, etc.                                                     |
| `token.vanity?`                     | `boolean`                                                                                                                                                                                                                                                                                                  | Whether or not to enable the "0xb07" address suffix.                                                                                   |
| `token.vault?`                      | { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration?`: `number`; }                                                                                                                                                                                   | Token vault. Tokens are locked for some duration with possible vesting.                                                                |
| `token.vault.lockupDuration`        | `number`                                                                                                                                                                                                                                                                                                   | How long to lock the tokens for. In seconds. Minimum 7 days.                                                                           |
| `token.vault.percentage`            | `number`                                                                                                                                                                                                                                                                                                   | Percent of total supply allocated to the vault.                                                                                        |
| `token.vault.recipient?`            | `` `0x${string}` ``                                                                                                                                                                                                                                                                                        | Recipient for the vault extension. Defaults to tokenAdmin if not set.                                                                  |
| `token.vault.vestingDuration?`      | `number`                                                                                                                                                                                                                                                                                                   | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |

**Returns**

`Promise`<`ClankerTransactionConfig`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"Deprecated"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ExtensionMsgValueMismatch"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ExtensionNotEnabled"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"HookNotEnabled"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidExtension"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidHook"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidLocker"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidMevModule"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"LockerNotEnabled"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MaxExtensionBpsExceeded"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MaxExtensionsExceeded"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MevModuleNotEnabled"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotFound"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"OnlyNonOriginatingChains"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"OnlyOriginatingChain"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }]; `name`: `"ClaimTeamFees"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"extension"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"extensionSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"msgValue"`; `type`: `"uint256"`; }]; `name`: `"ExtensionTriggered"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"SetAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"bool"`; `name`: `"deprecated"`; `type`: `"bool"`; }]; `name`: `"SetDeprecated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"extension"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"SetExtension"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"SetHook"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"pool"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"SetLocker"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"mevModule"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"SetMevModule"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldTeamFeeRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newTeamFeeRecipient"`; `type`: `"address"`; }]; `name`: `"SetTeamFeeRecipient"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"msgSender"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"tokenAddress"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"tokenAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"string"`; `name`: `"tokenImage"`; `type`: `"string"`; }, { `indexed`: `false`; `internalType`: `"string"`; `name`: `"tokenName"`; `type`: `"string"`; }, { `indexed`: `false`; `internalType`: `"string"`; `name`: `"tokenSymbol"`; `type`: `"string"`; }, { `indexed`: `false`; `internalType`: `"string"`; `name`: `"tokenMetadata"`; `type`: `"string"`; }, { `indexed`: `false`; `internalType`: `"string"`; `name`: `"tokenContext"`; `type`: `"string"`; }, { `indexed`: `false`; `internalType`: `"int24"`; `name`: `"startingTick"`; `type`: `"int24"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"poolHook"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"PoolId"`; `name`: `"poolId"`; `type`: `"bytes32"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"pairedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"mevModule"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"extensionsSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"extensions"`; `type`: `"address[]"`; }]; `name`: `"TokenCreated"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"BPS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_EXTENSIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_EXTENSION_BPS"`; `outputs`: readonly \[{ `internalType`: `"uint16"`; `name`: `""`; `type`: `"uint16"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"TOKEN_SUPPLY"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `name`: `"admins"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"claimTeamFees"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `components`: readonly \[{ `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClanker.TokenConfig"`; `name`: `"tokenConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClanker.PoolConfig"`; `name`: `"poolConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClanker.LockerConfig"`; `name`: `"lockerConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClanker.MevModuleConfig"`; `name`: `"mevModuleConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClanker.ExtensionConfig[]"`; `name`: `"extensionConfigs"`; `type`: `"tuple[]"`; }]; `internalType`: `"struct IClanker.DeploymentConfig"`; `name`: `"deploymentConfig"`; `type`: `"tuple"`; }]; `name`: `"deployToken"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"tokenAddress"`; `type`: `"address"`; }]; `stateMutability`: `"payable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"tokenAdmin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol"`; `type`: `"string"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"originatingChainId"`; `type`: `"uint256"`; }]; `internalType`: `"struct IClanker.TokenConfig"`; `name`: `"tokenConfig"`; `type`: `"tuple"`; }]; `name`: `"deployTokenZeroSupply"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"tokenAddress"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"deploymentInfoForToken"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"deprecated"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"pool"`; `type`: `"address"`; }]; `name`: `"enabledLockers"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"teamFeeRecipient_"`; `type`: `"address"`; }]; `name`: `"initialize"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"setAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bool"`; `name`: `"deprecated_"`; `type`: `"bool"`; }]; `name`: `"setDeprecated"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"extension"`; `type`: `"address"`; }, { `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"setExtension"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"setHook"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"pool"`; `type`: `"address"`; }, { `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"setLocker"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"mevModule"`; `type`: `"address"`; }, { `internalType`: `"bool"`; `name`: `"enabled"`; `type`: `"bool"`; }]; `name`: `"setMevModule"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"teamFeeRecipient_"`; `type`: `"address"`; }]; `name`: `"setTeamFeeRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"teamFeeRecipient"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenDeploymentInfo"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `internalType`: `"address[]"`; `name`: `"extensions"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClanker.DeploymentInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }], `"deployToken"`> & { `expectedAddress?`: `` `0x${string}` ``; }>

Abi transaction

**getTokenRewards()**

```ts
getTokenRewards(token): Promise<{
  numPositions: bigint;
  poolKey: {
     currency0: `0x${string}`;
     currency1: `0x${string}`;
     fee: number;
     hooks: `0x${string}`;
     tickSpacing: number;
  };
  positionId: bigint;
  rewardAdmins: readonly `0x${string}`[];
  rewardBps: readonly number[];
  rewardRecipients: readonly `0x${string}`[];
  token: `0x${string}`;
}>;
```

Defined in: [src/v4/index.ts:743](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L743)

Get the token rewards information from the locker contract. This is useful for obtaining the rewardIndex needed for updateRewardRecipient and updateRewardAdmin.

The returned object contains:

* token: The token address
* poolKey: The Uniswap V4 pool key
* positionId: The LP position ID
* numPositions: Number of LP positions
* rewardBps: Array of reward basis points for each recipient
* rewardAdmins: Array of admin addresses (index = rewardIndex)
* rewardRecipients: Array of recipient addresses (index = rewardIndex)

**Parameters**

| Parameter     | Type                              | Description                               |
| ------------- | --------------------------------- | ----------------------------------------- |
| `token`       | { `token`: `` `0x${string}` ``; } | The token address to get rewards info for |
| `token.token` | `` `0x${string}` ``               | -                                         |

**Returns**

`Promise`<{ `numPositions`: `bigint`; `poolKey`: { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `positionId`: `bigint`; `rewardAdmins`: readonly `` `0x${string}` ``\[]; `rewardBps`: readonly `number`\[]; `rewardRecipients`: readonly `` `0x${string}` ``\[]; `token`: `` `0x${string}` ``; }>

Token rewards information including rewardAdmins and rewardRecipients arrays

**getTokenRewardsTransaction()**

[View full generated declaration (842 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/6f80702bee3aa33fc40f63600adea5db1be44a84e1ee3275662abbbd5682d3d0.txt)

Defined in: [src/v4/index.ts:708](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L708)

Get the transaction config for reading token rewards information from the locker contract.

**Parameters**

| Parameter        | Type                              | Description                               |
| ---------------- | --------------------------------- | ----------------------------------------- |
| `token`          | { `token`: `` `0x${string}` ``; } | The token address to get rewards info for |
| `token.token`    | `` `0x${string}` ``               | -                                         |
| `options?`       | { `chain?`: `Chain`; }            | Optional chain configuration              |
| `options.chain?` | `Chain`                           | -                                         |

**Returns**

`Promise`<{ `abi`: readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"bytes"`; `name`: `"lockerData"`; `type`: `"bytes"`; }]; `internalType`: `"struct IClanker.LockerConfig"`; `name`: `"lockerConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"pairedToken"`; `type`: `"address"`; }, { `internalType`: `"int24"`; `name`: `"tickIfToken0IsClanker"`; `type`: `"int24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"bytes"`; `name`: `"poolData"`; `type`: `"bytes"`; }]; `internalType`: `"struct IClanker.PoolConfig"`; `name`: `"poolConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }]; `address`: `` `0x${string}` ``; `args`: readonly \[`` `0x${string}` ``]; `functionName`: `"tokenRewards"`; }>

Abi transaction config for reading token rewards

**getUpdateImageTransaction()**

[View full generated declaration (979 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/2cb913cedf802539be44c8eebb50b3a715a0eb8504e56188673dba4c586fc9ab.txt)

Defined in: [src/v4/index.ts:563](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L563)

Get an abi-typed transaction for updating the token image.

**Parameters**

| Parameter        | Type                                                    | Description                       |
| ---------------- | ------------------------------------------------------- | --------------------------------- |
| `token`          | { `newImage`: `string`; `token`: `` `0x${string}` ``; } | The token to update the image for |
| `token.newImage` | `string`                                                | -                                 |
| `token.token?`   | `` `0x${string}` ``                                     | -                                 |
| `options?`       | { `chain?`: `Chain`; }                                  | Optional chain configuration      |
| `options.chain?` | `Chain`                                                 | -                                 |

**Returns**

`Promise`<`ClankerTransactionConfig`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"uint48"`; `name`: `"_key"`; `type`: `"uint48"`; }, { `internalType`: `"uint208"`; `name`: `"_value"`; `type`: `"uint208"`; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"_interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }]>>

Abi transaction

**getUpdateMetadataTransaction()**

[View full generated declaration (979 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/a561f5b59d5813f8590967244097f1ac1388fabc8350b33d0e5bffe267bfac29.txt)

Defined in: [src/v4/index.ts:590](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L590)

Get an abi-typed transaction for updating the token metadata.

**Parameters**

| Parameter        | Type                                                    | Description                          |
| ---------------- | ------------------------------------------------------- | ------------------------------------ |
| `token`          | { `metadata`: `string`; `token`: `` `0x${string}` ``; } | The token to update the metadata for |
| `token.metadata` | `string`                                                | -                                    |
| `token.token?`   | `` `0x${string}` ``                                     | -                                    |
| `options?`       | { `chain?`: `Chain`; }                                  | Optional chain configuration         |
| `options.chain?` | `Chain`                                                 | -                                    |

**Returns**

`Promise`<`ClankerTransactionConfig`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"uint48"`; `name`: `"_key"`; `type`: `"uint48"`; }, { `internalType`: `"uint208"`; `name`: `"_value"`; `type`: `"uint208"`; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"_interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }]>>

Abi transaction

**getUpdateRewardAdminTransaction()**

[View full generated declaration (837 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/257175f3d708bc27f324549461b72a7ec692e16548d30ed058b9176e6b44cb60.txt)

Defined in: [src/v4/index.ts:258](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L258)

Get an abi-typed transaction for updating the reward admin.

**Parameters**

| Parameter            | Type                                                                                        | Description                              |
| -------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------- |
| `token`              | { `newAdmin`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward admin for |
| `token.newAdmin`     | `` `0x${string}` ``                                                                         | -                                        |
| `token.rewardIndex?` | `bigint`                                                                                    | -                                        |
| `token.token?`       | `` `0x${string}` ``                                                                         | -                                        |
| `options?`           | { `chain?`: `Chain`; }                                                                      | Optional chain configuration             |
| `options.chain?`     | `Chain`                                                                                     | -                                        |

**Returns**

`Promise`<`ClankerTransactionConfig`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"bytes"`; `name`: `"lockerData"`; `type`: `"bytes"`; }]; `internalType`: `"struct IClanker.LockerConfig"`; `name`: `"lockerConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"pairedToken"`; `type`: `"address"`; }, { `internalType`: `"int24"`; `name`: `"tickIfToken0IsClanker"`; `type`: `"int24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"bytes"`; `name`: `"poolData"`; `type`: `"bytes"`; }]; `internalType`: `"struct IClanker.PoolConfig"`; `name`: `"poolConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }]>>

Abi transaction

**getUpdateRewardRecipientTransaction()**

[View full generated declaration (837 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/6c6689c81853d454aad794f426f2624ead9cc503af4f2eefc75d8cc666b9f619.txt)

Defined in: [src/v4/index.ts:222](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L222)

Get an abi-typed transaction for updating the reward recipient.

**Parameters**

| Parameter            | Type                                                                                            | Description                                  |
| -------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------- |
| `token`              | { `newRecipient`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward recipient for |
| `token.newRecipient` | `` `0x${string}` ``                                                                             | -                                            |
| `token.rewardIndex?` | `bigint`                                                                                        | -                                            |
| `token.token?`       | `` `0x${string}` ``                                                                             | -                                            |
| `options?`           | { `chain?`: `Chain`; }                                                                          | Optional chain configuration                 |
| `options.chain?`     | `Chain`                                                                                         | -                                            |

**Returns**

`Promise`<`ClankerTransactionConfig`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"bytes"`; `name`: `"lockerData"`; `type`: `"bytes"`; }]; `internalType`: `"struct IClanker.LockerConfig"`; `name`: `"lockerConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"pairedToken"`; `type`: `"address"`; }, { `internalType`: `"int24"`; `name`: `"tickIfToken0IsClanker"`; `type`: `"int24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"bytes"`; `name`: `"poolData"`; `type`: `"bytes"`; }]; `internalType`: `"struct IClanker.PoolConfig"`; `name`: `"poolConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }]>>

Abi transaction

**getVaultClaimableAmount()**

```ts
getVaultClaimableAmount(token): Promise<bigint>;
```

Defined in: [src/v4/index.ts:494](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L494)

Get the amount of vaulted tokens available to claim.

**Parameters**

| Parameter     | Type                              | Description                               |
| ------------- | --------------------------------- | ----------------------------------------- |
| `token`       | { `token`: `` `0x${string}` ``; } | Token to check claimable vault amount for |
| `token.token` | `` `0x${string}` ``               | -                                         |

**Returns**

`Promise`<`bigint`>

Amount of tokens available to claim

**getVaultClaimTransaction()**

```ts
getVaultClaimTransaction(token, options?): Promise<any>;
```

Defined in: [src/v4/index.ts:456](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L456)

Get an abi-typed transaction for claiming vaulted tokens.

**Parameters**

| Parameter        | Type                              | Description            |
| ---------------- | --------------------------------- | ---------------------- |
| `token`          | { `token`: `` `0x${string}` ``; } | The token to claim for |
| `token.token`    | `` `0x${string}` ``               | -                      |
| `options?`       | { `chain?`: `Chain`; }            | -                      |
| `options.chain?` | `Chain`                           | -                      |

**Returns**

`Promise`<`any`>

Abi transaction

**updateImage()**

```ts
updateImage(token): Promise<
  | {
  error: undefined;
  txHash: `0x${string}`;
}
  | {
  error: ClankerError;
  txHash: undefined;
}>;
```

Defined in: [src/v4/index.ts:660](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L660)

Update the token image.

**Parameters**

| Parameter        | Type                                                    | Description                       |
| ---------------- | ------------------------------------------------------- | --------------------------------- |
| `token`          | { `newImage`: `string`; `token`: `` `0x${string}` ``; } | The token to update the image for |
| `token.newImage` | `string`                                                | -                                 |
| `token.token`    | `` `0x${string}` ``                                     | -                                 |

**Returns**

`Promise`< | { `error`: `undefined`; `txHash`: `` `0x${string}` ``; } | { `error`: `ClankerError`; `txHash`: `undefined`; }>

Transaction hash of the update or error

**updateImageSimulate()**

[View full generated declaration (1,991 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/c4d8636d1e940d80e3c425a5b691fe29a0c7ce470ed4fe3c888167967f159af1.txt)

Defined in: [src/v4/index.ts:618](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L618)

Simulate updating the token image. Will use the wallet account on the Clanker class or the passed-in account.

**Parameters**

| Parameter        | Type                                                    | Description                              |
| ---------------- | ------------------------------------------------------- | ---------------------------------------- |
| `token`          | { `newImage`: `string`; `token`: `` `0x${string}` ``; } | The token to update the image for        |
| `token.newImage` | `string`                                                | -                                        |
| `token.token?`   | `` `0x${string}` ``                                     | -                                        |
| `account?`       | `Account`                                               | Optional account to simulate calling for |

**Returns**

`Promise`< | `SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"uint48"`; `name`: `"_key"`; `type`: `"uint48"`; }, { `internalType`: `"uint208"`; `name`: `"_value"`; `type`: `"uint208"`; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"_interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }], | `"updateAdmin"` | `"approve"` | `"burn"` | `"burnFrom"` | `"crosschainBurn"` | `"crosschainMint"` | `"delegate"` | `"delegateBySig"` | `"permit"` | `"transfer"` | `"transferFrom"` | `"updateImage"` | `"updateMetadata"` | `"verify"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"_interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }], | `"updateAdmin"` | `"approve"` | `"burn"` | `"burnFrom"` | `"crosschainBurn"` | `"crosschainMint"` | `"delegate"` | `"delegateBySig"` | `"permit"` | `"transfer"` | `"transferFrom"` | `"updateImage"` | `"updateMetadata"` | `"verify"`>> & { `error`: `ClankerError`; }>

The simulated output

**updateMetadata()**

```ts
updateMetadata(token): Promise<
  | {
  error: undefined;
  txHash: `0x${string}`;
}
  | {
  error: ClankerError;
  txHash: undefined;
}>;
```

Defined in: [src/v4/index.ts:684](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L684)

Update the token metadata.

**Parameters**

| Parameter        | Type                                                    | Description                          |
| ---------------- | ------------------------------------------------------- | ------------------------------------ |
| `token`          | { `metadata`: `string`; `token`: `` `0x${string}` ``; } | The token to update the metadata for |
| `token.metadata` | `string`                                                | -                                    |
| `token.token`    | `` `0x${string}` ``                                     | -                                    |

**Returns**

`Promise`< | { `error`: `undefined`; `txHash`: `` `0x${string}` ``; } | { `error`: `ClankerError`; `txHash`: `undefined`; }>

Transaction hash of the update or error

**updateMetadataSimulate()**

[View full generated declaration (1,991 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/de3a4f4995549fa7f76610695353047f795278b455102167b6a1424e96f56a9e.txt)

Defined in: [src/v4/index.ts:640](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L640)

Simulate updating the token metadata. Will use the wallet account on the Clanker class or the passed-in account.

**Parameters**

| Parameter        | Type                                                    | Description                              |
| ---------------- | ------------------------------------------------------- | ---------------------------------------- |
| `token`          | { `metadata`: `string`; `token`: `` `0x${string}` ``; } | The token to update the metadata for     |
| `token.metadata` | `string`                                                | -                                        |
| `token.token?`   | `` `0x${string}` ``                                     | -                                        |
| `account?`       | `Account`                                               | Optional account to simulate calling for |

**Returns**

`Promise`< | `SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"uint48"`; `name`: `"_key"`; `type`: `"uint48"`; }, { `internalType`: `"uint208"`; `name`: `"_value"`; `type`: `"uint208"`; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"_interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }], | `"updateAdmin"` | `"approve"` | `"burn"` | `"burnFrom"` | `"crosschainBurn"` | `"crosschainMint"` | `"delegate"` | `"delegateBySig"` | `"permit"` | `"transfer"` | `"transferFrom"` | `"updateImage"` | `"updateMetadata"` | `"verify"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"name_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"symbol_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"maxSupply_"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context_"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"initialSupplyChainId_"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"CLOCK_MODE"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"DOMAIN_SEPARATOR"`; `outputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `""`; `type`: `"bytes32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"admin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"allData"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `"originalAdmin"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"context"`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"allowance"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"approve"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"balanceOf"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"burnFrom"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint32"`; `name`: `"pos"`; `type`: `"uint32"`; }]; `name`: `"checkpoints"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct Checkpoints.Checkpoint208"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"clock"`; `outputs`: readonly \[{ `internalType`: `"uint48"`; `name`: `""`; `type`: `"uint48"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"context"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainBurn"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"_to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"_amount"`; `type`: `"uint256"`; }]; `name`: `"crosschainMint"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"decimals"`; `outputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `""`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }]; `name`: `"delegate"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"delegatee"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"nonce"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"delegateBySig"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"delegates"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"eip712Domain"`; `outputs`: readonly \[{ `internalType`: `"bytes1"`; `name`: `"fields"`; `type`: `"bytes1"`; }, { `internalType`: `"string"`; `name`: `"name"`; `type`: `"string"`; }, { `internalType`: `"string"`; `name`: `"version"`; `type`: `"string"`; }, { `internalType`: `"uint256"`; `name`: `"chainId"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"verifyingContract"`; `type`: `"address"`; }, { `internalType`: `"bytes32"`; `name`: `"salt"`; `type`: `"bytes32"`; }, { `internalType`: `"uint256[]"`; `name`: `"extensions"`; `type`: `"uint256[]"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastTotalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }]; `name`: `"getPastVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"getVotes"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"imageUrl"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"isVerified"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"metadata"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"name"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"nonces"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"numCheckpoints"`; `outputs`: readonly \[{ `internalType`: `"uint32"`; `name`: `""`; `type`: `"uint32"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"originalAdmin"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }, { `internalType`: `"uint8"`; `name`: `"v"`; `type`: `"uint8"`; }, { `internalType`: `"bytes32"`; `name`: `"r"`; `type`: `"bytes32"`; }, { `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"permit"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"_interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"symbol"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"totalSupply"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transfer"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"transferFrom"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"admin_"`; `type`: `"address"`; }]; `name`: `"updateAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"image_"`; `type`: `"string"`; }]; `name`: `"updateImage"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"metadata_"`; `type`: `"string"`; }]; `name`: `"updateMetadata"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"verify"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Approval"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainBurn"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"CrosschainMint"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegator"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"fromDelegate"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"toDelegate"`; `type`: `"address"`; }]; `name`: `"DelegateChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"delegate"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"previousVotes"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"newVotes"`; `type`: `"uint256"`; }]; `name`: `"DelegateVotesChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[]; `name`: `"EIP712DomainChanged"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"to"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"Transfer"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"UpdateAdmin"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"image"`; `type`: `"string"`; }]; `name`: `"UpdateImage"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"string"`; `name`: `"metadata"`; `type`: `"string"`; }]; `name`: `"UpdateMetadata"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"admin"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"Verified"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"AlreadyVerified"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"CheckpointUnorderedInsertion"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ECDSAInvalidSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"length"`; `type`: `"uint256"`; }]; `name`: `"ECDSAInvalidSignatureLength"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes32"`; `name`: `"s"`; `type`: `"bytes32"`; }]; `name`: `"ECDSAInvalidSignatureS"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"increasedSupply"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"cap"`; `type`: `"uint256"`; }]; `name`: `"ERC20ExceededSafeSupply"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"allowance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientAllowance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"balance"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"needed"`; `type`: `"uint256"`; }]; `name`: `"ERC20InsufficientBalance"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"approver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidApprover"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"receiver"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidReceiver"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"sender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"spender"`; `type`: `"address"`; }]; `name`: `"ERC20InvalidSpender"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"deadline"`; `type`: `"uint256"`; }]; `name`: `"ERC2612ExpiredSignature"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"signer"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"ERC2612InvalidSigner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"timepoint"`; `type`: `"uint256"`; }, { `internalType`: `"uint48"`; `name`: `"clock"`; `type`: `"uint48"`; }]; `name`: `"ERC5805FutureLookup"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ERC6372InconsistentClock"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"currentNonce"`; `type`: `"uint256"`; }]; `name`: `"InvalidAccountNonce"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidShortString"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NotOriginalAdmin"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint8"`; `name`: `"bits"`; `type`: `"uint8"`; }, { `internalType`: `"uint256"`; `name`: `"value"`; `type`: `"uint256"`; }]; `name`: `"SafeCastOverflowedUintDowncast"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"string"`; `name`: `"str"`; `type`: `"string"`; }]; `name`: `"StringTooLong"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"expiry"`; `type`: `"uint256"`; }]; `name`: `"VotesExpiredSignature"`; `type`: `"error"`; }], | `"updateAdmin"` | `"approve"` | `"burn"` | `"burnFrom"` | `"crosschainBurn"` | `"crosschainMint"` | `"delegate"` | `"delegateBySig"` | `"permit"` | `"transfer"` | `"transferFrom"` | `"updateImage"` | `"updateMetadata"` | `"verify"`>> & { `error`: `ClankerError`; }>

The simulated output

**updateRewardAdmin()**

```ts
updateRewardAdmin(token): Promise<
  | {
  error: undefined;
  txHash: `0x${string}`;
}
  | {
  error: ClankerError;
  txHash: undefined;
}>;
```

Defined in: [src/v4/index.ts:418](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L418)

Update the reward admin for a token.

**Parameters**

| Parameter           | Type                                                                                        | Description                              |
| ------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------- |
| `token`             | { `newAdmin`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward admin for |
| `token.newAdmin`    | `` `0x${string}` ``                                                                         | -                                        |
| `token.rewardIndex` | `bigint`                                                                                    | -                                        |
| `token.token`       | `` `0x${string}` ``                                                                         | -                                        |

**Returns**

`Promise`< | { `error`: `undefined`; `txHash`: `` `0x${string}` ``; } | { `error`: `ClankerError`; `txHash`: `undefined`; }>

Transaction hash of the update or error

**updateRewardAdminSimulate()**

[View full generated declaration (1,661 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/56991d7dbca6a953a9f84db901e28a764f936667a9378c842e495a0e9a47cf88.txt)

Defined in: [src/v4/index.ts:338](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L338)

Simulate updating the reward admin. Will use the wallet account on the Clanker class or the passed-in account.

**Parameters**

| Parameter            | Type                                                                                        | Description                              |
| -------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------- |
| `token`              | { `newAdmin`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward admin for |
| `token.newAdmin`     | `` `0x${string}` ``                                                                         | -                                        |
| `token.rewardIndex?` | `bigint`                                                                                    | -                                        |
| `token.token?`       | `` `0x${string}` ``                                                                         | -                                        |
| `account?`           | `Account`                                                                                   | Optional account to simulate calling for |

**Returns**

`Promise`< | `SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"bytes"`; `name`: `"lockerData"`; `type`: `"bytes"`; }]; `internalType`: `"struct IClanker.LockerConfig"`; `name`: `"lockerConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"pairedToken"`; `type`: `"address"`; }, { `internalType`: `"int24"`; `name`: `"tickIfToken0IsClanker"`; `type`: `"int24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"bytes"`; `name`: `"poolData"`; `type`: `"bytes"`; }]; `internalType`: `"struct IClanker.PoolConfig"`; `name`: `"poolConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[..., ..., ..., ..., ...]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"collectRewards"` | `"collectRewardsWithoutUnlock"` | `"onERC721Received"` | `"placeLiquidity"` | `"updateFeePreference"` | `"updateRewardAdmin"` | `"updateRewardRecipient"` | `"withdrawERC20"` | `"withdrawETH"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClanker.LockerConfig"`; `name`: `"lockerConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClanker.PoolConfig"`; `name`: `"poolConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `components`: ...; `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"collectRewards"` | `"collectRewardsWithoutUnlock"` | `"onERC721Received"` | `"placeLiquidity"` | `"updateFeePreference"` | `"updateRewardAdmin"` | `"updateRewardRecipient"` | `"withdrawERC20"` | `"withdrawETH"`>> & { `error`: `ClankerError`; }>

The simulated output

**updateRewardRecipient()**

```ts
updateRewardRecipient(token): Promise<
  | {
  error: undefined;
  txHash: `0x${string}`;
}
  | {
  error: ClankerError;
  txHash: undefined;
}>;
```

Defined in: [src/v4/index.ts:379](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L379)

Update the reward recipient for a token.

**Parameters**

| Parameter            | Type                                                                                            | Description                                  |
| -------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------- |
| `token`              | { `newRecipient`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward recipient for |
| `token.newRecipient` | `` `0x${string}` ``                                                                             | -                                            |
| `token.rewardIndex`  | `bigint`                                                                                        | -                                            |
| `token.token`        | `` `0x${string}` ``                                                                             | -                                            |

**Returns**

`Promise`< | { `error`: `undefined`; `txHash`: `` `0x${string}` ``; } | { `error`: `ClankerError`; `txHash`: `undefined`; }>

Transaction hash of the update or error

**updateRewardRecipientSimulate()**

[View full generated declaration (1,661 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/67b76ecc494e4fb69702e0342cf8b8847d54aab8f3f9d2199d9ba7a8d3286c91.txt)

Defined in: [src/v4/index.ts:295](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L295)

Simulate updating the reward recipient. Will use the wallet account on the Clanker class or the passed-in account.

**Parameters**

| Parameter            | Type                                                                                            | Description                                  |
| -------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------- |
| `token`              | { `newRecipient`: `` `0x${string}` ``; `rewardIndex`: `bigint`; `token`: `` `0x${string}` ``; } | The token to update the reward recipient for |
| `token.newRecipient` | `` `0x${string}` ``                                                                             | -                                            |
| `token.rewardIndex?` | `bigint`                                                                                        | -                                            |
| `token.token?`       | `` `0x${string}` ``                                                                             | -                                            |
| `account?`           | `Account`                                                                                       | Optional account to simulate calling for     |

**Returns**

`Promise`< | `SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"locker"`; `type`: `"address"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"bytes"`; `name`: `"lockerData"`; `type`: `"bytes"`; }]; `internalType`: `"struct IClanker.LockerConfig"`; `name`: `"lockerConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: `"address"`; `name`: `"hook"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"pairedToken"`; `type`: `"address"`; }, { `internalType`: `"int24"`; `name`: `"tickIfToken0IsClanker"`; `type`: `"int24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"bytes"`; `name`: `"poolData"`; `type`: `"bytes"`; }]; `internalType`: `"struct IClanker.PoolConfig"`; `name`: `"poolConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[..., ..., ..., ..., ...]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: `"Currency"`; `name`: `"currency0"`; `type`: `"address"`; }, { `internalType`: `"Currency"`; `name`: `"currency1"`; `type`: `"address"`; }, { `internalType`: `"uint24"`; `name`: `"fee"`; `type`: `"uint24"`; }, { `internalType`: `"int24"`; `name`: `"tickSpacing"`; `type`: `"int24"`; }, { `internalType`: `"contract IHooks"`; `name`: `"hooks"`; `type`: `"address"`; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"collectRewards"` | `"collectRewardsWithoutUnlock"` | `"onERC721Received"` | `"placeLiquidity"` | `"updateFeePreference"` | `"updateRewardAdmin"` | `"updateRewardRecipient"` | `"withdrawERC20"` | `"withdrawETH"`> & { `error?`: `undefined`; } | `UndefinedValues`<`SimulateContractReturnType`\<readonly \[{ `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"factory_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"feeLocker_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"positionManager_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"permit2_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"universalRouter_"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"poolManager_"`; `type`: `"address"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"constructor"`; }, { `inputs`: readonly \[]; `name`: `"BASIS_POINTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_LP_POSITIONS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"MAX_REWARD_PARTICIPANTS"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewards"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"collectRewardsWithoutUnlock"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"factory"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"feeLocker"`; `outputs`: readonly \[{ `internalType`: `"contract IClankerFeeLocker"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `""`; `type`: `"uint256"`; }]; `name`: `"feePreferences"`; `outputs`: readonly \[{ `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"feePreference"`; `type`: `"uint8"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"id"`; `type`: `"uint256"`; }, { `internalType`: `"bytes"`; `name`: `""`; `type`: `"bytes"`; }]; `name`: `"onERC721Received"`; `outputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `""`; `type`: `"bytes4"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"owner"`; `outputs`: readonly \[{ `internalType`: `"address"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"permit2"`; `outputs`: readonly \[{ `internalType`: `"contract IPermit2"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClanker.LockerConfig"`; `name`: `"lockerConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClanker.PoolConfig"`; `name`: `"poolConfig"`; `type`: `"tuple"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"placeLiquidity"`; `outputs`: readonly \[{ `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"poolManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPoolManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"positionManager"`; `outputs`: readonly \[{ `internalType`: `"contract IPositionManager"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"renounceOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"bytes4"`; `name`: `"interfaceId"`; `type`: `"bytes4"`; }]; `name`: `"supportsInterface"`; `outputs`: readonly \[{ `internalType`: `"bool"`; `name`: `""`; `type`: `"bool"`; }]; `stateMutability`: `"pure"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"tokenRewards"`; `outputs`: readonly \[{ `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `components`: ...; `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `internalType`: `"struct IClankerLpLocker.TokenRewardInfo"`; `name`: `""`; `type`: `"tuple"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"transferOwnership"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"universalRouter"`; `outputs`: readonly \[{ `internalType`: `"contract IUniversalRouter"`; `name`: `""`; `type`: `"address"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"updateFeePreference"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"updateRewardAdmin"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"updateRewardRecipient"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[]; `name`: `"version"`; `outputs`: readonly \[{ `internalType`: `"string"`; `name`: `""`; `type`: `"string"`; }]; `stateMutability`: `"view"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawERC20"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"recipient"`; `type`: `"address"`; }]; `name`: `"withdrawETH"`; `outputs`: readonly \[]; `stateMutability`: `"nonpayable"`; `type`: `"function"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount0"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amount1"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards0"`; `type`: `"uint256[]"`; }, { `indexed`: `false`; `internalType`: `"uint256[]"`; `name`: `"rewards1"`; `type`: `"uint256[]"`; }]; `name`: `"ClaimedRewards"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"oldFeePreference"`; `type`: `"uint8"`; }, { `indexed`: `true`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn"`; `name`: `"newFeePreference"`; `type`: `"uint8"`; }]; `name`: `"FeePreferenceUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"rewardToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountSwapped"`; `type`: `"uint256"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"swappedToken"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"amountOut"`; `type`: `"uint256"`; }]; `name`: `"FeesSwapped"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"enum IClankerLpLockerFeeConversion.FeeIn[]"`; `name`: `"feePreference"`; `type`: `"uint8[]"`; }]; `name`: `"InitialFeePreferences"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"previousOwner"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"address"`; `name`: `"newOwner"`; `type`: `"address"`; }]; `name`: `"OwnershipTransferred"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"from"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }]; `name`: `"Received"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldAdmin"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newAdmin"`; `type`: `"address"`; }]; `name`: `"RewardAdminUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `true`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `indexed`: `true`; `internalType`: `"uint256"`; `name`: `"rewardIndex"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"oldRecipient"`; `type`: `"address"`; }, { `indexed`: `false`; `internalType`: `"address"`; `name`: `"newRecipient"`; `type`: `"address"`; }]; `name`: `"RewardRecipientUpdated"`; `type`: `"event"`; }, { `anonymous`: `false`; `inputs`: readonly \[{ `indexed`: `false`; `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }, { `components`: readonly \[{ `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }, { `internalType`: ...; `name`: ...; `type`: ...; }]; `indexed`: `false`; `internalType`: `"struct PoolKey"`; `name`: `"poolKey"`; `type`: `"tuple"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"poolSupply"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"positionId"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint256"`; `name`: `"numPositions"`; `type`: `"uint256"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"rewardBps"`; `type`: `"uint16[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardAdmins"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"address[]"`; `name`: `"rewardRecipients"`; `type`: `"address[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickLower"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"int24[]"`; `name`: `"tickUpper"`; `type`: `"int24[]"`; }, { `indexed`: `false`; `internalType`: `"uint16[]"`; `name`: `"positionBps"`; `type`: `"uint16[]"`; }]; `name`: `"TokenRewardAdded"`; `type`: `"event"`; }, { `inputs`: readonly \[]; `name`: `"InvalidPositionBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"InvalidRewardBps"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedPositionInfos"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"MismatchedRewardArrays"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"NoRewardRecipients"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"owner"`; `type`: `"address"`; }]; `name`: `"OwnableInvalidOwner"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"account"`; `type`: `"address"`; }]; `name`: `"OwnableUnauthorizedAccount"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ReentrancyGuardReentrantCall"`; `type`: `"error"`; }, { `inputs`: readonly \[{ `internalType`: `"address"`; `name`: `"token"`; `type`: `"address"`; }]; `name`: `"SafeERC20FailedOperation"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TickRangeLowerThanStartingTick"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksBackwards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksNotMultipleOfTickSpacing"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TicksOutOfTickBounds"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TokenAlreadyHasRewards"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyPositions"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"TooManyRewardParticipants"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"Unauthorized"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAddress"`; `type`: `"error"`; }, { `inputs`: readonly \[]; `name`: `"ZeroRewardAmount"`; `type`: `"error"`; }], | `"renounceOwnership"` | `"transferOwnership"` | `"collectRewards"` | `"collectRewardsWithoutUnlock"` | `"onERC721Received"` | `"placeLiquidity"` | `"updateFeePreference"` | `"updateRewardAdmin"` | `"updateRewardRecipient"` | `"withdrawERC20"` | `"withdrawETH"`>> & { `error`: `ClankerError`; }>

The simulated output

**getVaultClaimTransactionObject()**

[View full generated declaration (412 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/8b856fa9c2cc7772e703c96e65fdbbc68d32dfa61b7c92ee53401f16afbeb524.txt)

Defined in: [src/v4/index.ts:534](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L534)

Get the transaction object for claiming vaulted tokens (for offline signing or inspection).

**Parameters**

| Parameter             | Type                                                                                          | Description            |
| --------------------- | --------------------------------------------------------------------------------------------- | ---------------------- |
| `token`               | { `chainId?`: `number`; `token`: `` `0x${string}` ``; `vaultAddress?`: `` `0x${string}` ``; } | The token to claim for |
| `token.chainId?`      | `number`                                                                                      | -                      |
| `token.token`         | `` `0x${string}` ``                                                                           | -                      |
| `token.vaultAddress?` | `` `0x${string}` ``                                                                           | -                      |

**Returns**

[View full generated declaration (412 lines)](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/0bd20f0033d21571403c37ea64f8344ae38a2ee3334e6805898e196cabcec786.txt)

Transaction object for claiming vaulted tokens

| Name           | Type                                                                                                                                                                             | Default value         | Defined in                                                                                         |
| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | -------------------------------------------------------------------------------------------------- |
| `abi`          | [Full type](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/94a450732ddc3c2783871a07a1de268ae16372686f9b5e1cbb12c8e1807a6ffa.txt) | `ClankerVault_v4_abi` | [src/v4/index.ts:548](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L548) |
| `address`      | `` `0x${string}` ``                                                                                                                                                              | `vaultAddress`        | [src/v4/index.ts:547](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L547) |
| `args`         | `` `0x${string}` ``\[]                                                                                                                                                           | -                     | [src/v4/index.ts:550](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L550) |
| `chainId`      | `number` \| `undefined`                                                                                                                                                          | -                     | [src/v4/index.ts:551](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L551) |
| `functionName` | `string`                                                                                                                                                                         | `'claim'`             | [src/v4/index.ts:549](https://github.com/clanker-devco/clanker-sdk/blob/main/src/v4/index.ts#L549) |

### Functions

#### encodeFeeConfig()

```ts
function encodeFeeConfig(tokenConfig, clankerConfig): {
  hook: `0x${string}`;
  poolData: `0x${string}`;
};
```

Defined in: [src/config/clankerTokenV4.ts:494](https://github.com/clanker-devco/clanker-sdk/blob/main/src/config/clankerTokenV4.ts#L494)

Encode a fee configuration for Clanker v4.

**Parameters**

| Parameter                                | Type                                                                                                                                                                                                                                                                                                     | Description                                                                                                                            |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `tokenConfig`                            | [Full type](https://raw.githubusercontent.com/clanker-devco/DOCS/refs/heads/main/mintlify/assets/sdk-types/6db4da74dfd926c79bb571afcc24b3b87963bcb33d4450d31afb4b350493aa8f.txt)                                                                                                                         | -                                                                                                                                      |
| `tokenConfig.airdrop?`                   | { `admin?`: `` `0x${string}` ``; `amount`: `number`; `lockupDuration`: `number`; `merkleRoot`: `` `0x${string}` ``; `vestingDuration`: `number`; }                                                                                                                                                       | Token airdrop. Tokens are locked for some duration with possible vesting.                                                              |
| `tokenConfig.airdrop.admin?`             | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | Admin for the airdrop. Defaults to TokenAdmin if not set.                                                                              |
| `tokenConfig.airdrop.amount`             | `number`                                                                                                                                                                                                                                                                                                 | How many tokens to lock up. Denoted in whole tokens (without the 18 decimals). Minimum is 25 bps of the supply.                        |
| `tokenConfig.airdrop.lockupDuration`     | `number`                                                                                                                                                                                                                                                                                                 | How long to lock the tokens for. In seconds. Minimum 1 day.                                                                            |
| `tokenConfig.airdrop.merkleRoot`         | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | Root of the airdrop merkle tree.                                                                                                       |
| `tokenConfig.airdrop.vestingDuration`    | `number`                                                                                                                                                                                                                                                                                                 | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `tokenConfig.chainId`                    | `1` \| `56` \| `130` \| `143` \| `2741` \| `4663` \| `8453` \| `10143` \| `42161` \| `84532`                                                                                                                                                                                                             | Id of the chain that the token will be deployed to. Defaults to base (8453).                                                           |
| `tokenConfig.context`                    | { `id?`: `string`; `interface`: `string`; `messageId?`: `string`; `platform?`: `string`; }                                                                                                                                                                                                               | Social provenance for the token. Interface defaults to "SDK" if not set.                                                               |
| `tokenConfig.context.id?`                | `string`                                                                                                                                                                                                                                                                                                 | User id of the poster on the social platform the token was deployed from. Used for provenance and will be verified by aggregators.     |
| `tokenConfig.context.interface`          | `string`                                                                                                                                                                                                                                                                                                 | System the token was deployed via. Defaults to "SDK".                                                                                  |
| `tokenConfig.context.messageId?`         | `string`                                                                                                                                                                                                                                                                                                 | Id of the message on the social platform the token was deployed from. Used for provenance and will be verified by aggregators.         |
| `tokenConfig.context.platform?`          | `string`                                                                                                                                                                                                                                                                                                 | Social platform the token was deployed from. Used for provenance and will be verified by aggregators.                                  |
| `tokenConfig.devBuy?`                    | { `amountOutMin`: `number`; `ethAmount`: `number`; `poolKey`: { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }; `recipient?`: `` `0x${string}` ``; }                                                      | Token dev buy. Tokens are bought in the token creation transaction.                                                                    |
| `tokenConfig.devBuy.amountOutMin`        | `number`                                                                                                                                                                                                                                                                                                 | Amount out min for the ETH -> PAIR swap. Used if the clanker is not paired with ETH.                                                   |
| `tokenConfig.devBuy.ethAmount`           | `number`                                                                                                                                                                                                                                                                                                 | How much of the token to buy (denoted in ETH).                                                                                         |
| `tokenConfig.devBuy.poolKey`             | { `currency0`: `` `0x${string}` ``; `currency1`: `` `0x${string}` ``; `fee`: `number`; `hooks`: `` `0x${string}` ``; `tickSpacing`: `number`; }                                                                                                                                                          | Pool identifier. Used if the clanker is not paired with ETH. Then the devbuy will pay ETH -> PAIR -> CLANKER.                          |
| `tokenConfig.devBuy.poolKey.currency0`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | -                                                                                                                                      |
| `tokenConfig.devBuy.poolKey.currency1`   | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | -                                                                                                                                      |
| `tokenConfig.devBuy.poolKey.fee`         | `number`                                                                                                                                                                                                                                                                                                 | -                                                                                                                                      |
| `tokenConfig.devBuy.poolKey.hooks`       | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | -                                                                                                                                      |
| `tokenConfig.devBuy.poolKey.tickSpacing` | `number`                                                                                                                                                                                                                                                                                                 | -                                                                                                                                      |
| `tokenConfig.devBuy.recipient?`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | Recipient address for the purchased tokens. Defaults to tokenAdmin if not specified.                                                   |
| `tokenConfig.fees`                       | \| { `clankerFee`: `number`; `pairedFee`: `number`; `type`: `"static"`; } \| { `baseFee`: `number`; `decayFilterBps`: `number`; `feeControlNumerator`: `number`; `maxFee`: `number`; `referenceTickFilterPeriod`: `number`; `resetPeriod`: `number`; `resetTickFilter`: `number`; `type`: `"dynamic"`; } | Fee structure for the token.                                                                                                           |
| `tokenConfig.image`                      | `string`                                                                                                                                                                                                                                                                                                 | Image for the token. This should be a normal or ipfs url.                                                                              |
| `tokenConfig.locker`                     | { `locker`: `` `0x${string}` `` \| `"Locker"`; `lockerData`: `` `0x${string}` ``; }                                                                                                                                                                                                                      | Token locker                                                                                                                           |
| `tokenConfig.locker.locker`              | `` `0x${string}` `` \| `"Locker"`                                                                                                                                                                                                                                                                        | Locker extension address.                                                                                                              |
| `tokenConfig.locker.lockerData`          | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | Locker extension specific data. Abi encoded hex of the parameters.                                                                     |
| `tokenConfig.metadata?`                  | { `auditUrls?`: `string`\[]; `description?`: `string`; `socialMediaUrls?`: { `platform`: `string`; `url`: `string`; }\[]; }                                                                                                                                                                              | Metadata for the token.                                                                                                                |
| `tokenConfig.metadata.auditUrls?`        | `string`\[]                                                                                                                                                                                                                                                                                              | Audits for other contracts or services offered by the project.                                                                         |
| `tokenConfig.metadata.description?`      | `string`                                                                                                                                                                                                                                                                                                 | Description of the token or token project.                                                                                             |
| `tokenConfig.metadata.socialMediaUrls?`  | { `platform`: `string`; `url`: `string`; }\[]                                                                                                                                                                                                                                                            | Socials for the token. These may be displayed on aggregators.                                                                          |
| `tokenConfig.name`                       | `string`                                                                                                                                                                                                                                                                                                 | Name of the token. Example: "My Token".                                                                                                |
| `tokenConfig.pool`                       | { `pairedToken`: `` `0x${string}` `` \| `"WETH"`; `positions`: { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]; `tickIfToken0IsClanker`: `number`; `tickSpacing`: `number`; }                                                                                              | Pool information                                                                                                                       |
| `tokenConfig.pool.pairedToken`           | `` `0x${string}` `` \| `"WETH"`                                                                                                                                                                                                                                                                          | Token to pair the clanker with.                                                                                                        |
| `tokenConfig.pool.positions`             | { `positionBps`: `number`; `tickLower`: `number`; `tickUpper`: `number`; }\[]                                                                                                                                                                                                                            | Positions for initial pool liquidity. Bps must sum to 100%.                                                                            |
| `tokenConfig.pool.tickIfToken0IsClanker` | `number`                                                                                                                                                                                                                                                                                                 | Starting tick of the pool.                                                                                                             |
| `tokenConfig.pool.tickSpacing`           | `number`                                                                                                                                                                                                                                                                                                 | Tick spacing.                                                                                                                          |
| `tokenConfig.poolExtension`              | { `address`: `` `0x${string}` ``; `initData`: `` `0x${string}` ``; }                                                                                                                                                                                                                                     | \[v4.1+ only] Custom developer extension                                                                                               |
| `tokenConfig.poolExtension.address`      | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | Address of the developer extension                                                                                                     |
| `tokenConfig.poolExtension.initData`     | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | Initialization data for the extension                                                                                                  |
| `tokenConfig.presale?`                   | { `bps`: `number`; }                                                                                                                                                                                                                                                                                     | Presale configuration for the token. Must be deployed via the presale contract.                                                        |
| `tokenConfig.presale.bps`                | `number`                                                                                                                                                                                                                                                                                                 | Bps for allocation to presale                                                                                                          |
| `tokenConfig.rewards?`                   | { `recipients`: { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]; }                                                                                                                                               | Rewards & recipients for rewards generated by the token.                                                                               |
| `tokenConfig.rewards.recipients`         | { `admin`: `` `0x${string}` ``; `bps`: `number`; `recipient`: `` `0x${string}` ``; `token`: `"Both"` \| `"Paired"` \| `"Clanker"`; }\[]                                                                                                                                                                  | Recipients of the token rewards. Must sum to 100%.                                                                                     |
| `tokenConfig.salt?`                      | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | Custom salt for CREATE2 deployment. If provided, this will be used instead of vanity address generation. Takes precedence over vanity. |
| `tokenConfig.sniperFees`                 | { `endingFee`: `number`; `secondsToDecay`: `number`; `startingFee`: `number`; }                                                                                                                                                                                                                          | \[v4.1+ only] Sniper fees                                                                                                              |
| `tokenConfig.sniperFees.endingFee`       | `number`                                                                                                                                                                                                                                                                                                 | Ending sniper fee (units: Unibps)                                                                                                      |
| `tokenConfig.sniperFees.secondsToDecay`  | `number`                                                                                                                                                                                                                                                                                                 | Sniper fee duration                                                                                                                    |
| `tokenConfig.sniperFees.startingFee`     | `number`                                                                                                                                                                                                                                                                                                 | Starting sniper fee (units: Unibps)                                                                                                    |
| `tokenConfig.symbol`                     | `string`                                                                                                                                                                                                                                                                                                 | Symbol for the token. Example: "MTK".                                                                                                  |
| `tokenConfig.tokenAdmin`                 | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | Admin for the token. They will be able to change fields like image, metadata, etc.                                                     |
| `tokenConfig.vanity`                     | `boolean`                                                                                                                                                                                                                                                                                                | Whether or not to enable the "0xb07" address suffix.                                                                                   |
| `tokenConfig.vault?`                     | { `lockupDuration`: `number`; `percentage`: `number`; `recipient?`: `` `0x${string}` ``; `vestingDuration`: `number`; }                                                                                                                                                                                  | Token vault. Tokens are locked for some duration with possible vesting.                                                                |
| `tokenConfig.vault.lockupDuration`       | `number`                                                                                                                                                                                                                                                                                                 | How long to lock the tokens for. In seconds. Minimum 7 days.                                                                           |
| `tokenConfig.vault.percentage`           | `number`                                                                                                                                                                                                                                                                                                 | Percent of total supply allocated to the vault.                                                                                        |
| `tokenConfig.vault.recipient?`           | `` `0x${string}` ``                                                                                                                                                                                                                                                                                      | Recipient for the vault extension. Defaults to tokenAdmin if not set.                                                                  |
| `tokenConfig.vault.vestingDuration`      | `number`                                                                                                                                                                                                                                                                                                 | After the lockup, how long the tokens should vest for. Vesting is linear over the duration. In seconds.                                |
| `clankerConfig`                          | [`ClankerDeployment`](/documentation/sdk-reference/index.md#clankerdeployment)<[`RelatedV4`](/documentation/sdk-reference/index.md#relatedv4)>                                                                                                                                                           | A clanker configuration                                                                                                                |

**Returns**

```ts
{
  hook: `0x${string}`;
  poolData: `0x${string}`;
}
```

A correctly formatted fee configuration

| Name       | Type                | Defined in                                                                                                                   |
| ---------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `hook`     | `` `0x${string}` `` | [src/config/clankerTokenV4.ts:498](https://github.com/clanker-devco/clanker-sdk/blob/main/src/config/clankerTokenV4.ts#L498) |
| `poolData` | `` `0x${string}` `` | [src/config/clankerTokenV4.ts:499](https://github.com/clanker-devco/clanker-sdk/blob/main/src/config/clankerTokenV4.ts#L499) |
