The `tokengate` component presents the gate requirements to unlock a reaction, and the buyer's eligibility status based on their connected wallet. ## Code example
Requirements
|
| `unlockingTokens` | Array of eligible tokens in the user's connected wallet. | `false` | UnlockingToken[]
|
| `exclusiveCustomTitles` | Custom titles applied to gate for exclusive reactions. | `false` | CustomTitles
|
| `discountCustomTitles` | Custom titles applied to gate for discount access reactions. | `false` | CustomTitles
|
| `active` | Period of time in which the gate is active. | `false` | Active
|
| `reaction` | Reaction applied when the requirements are met. The default reaction type is `exclusive`. | `false` | Reaction
|
| `redemptionLimit` | Information related to the redemption limit of the reaction. | `false` | RedemptionLimit
|
## Types
### Requirements
| Name | Description | Required | Type |
| ------------ | ---------------------------------------------------------------- | -------- | ------------------------------------------------- |
| `conditions` | Array of conditions that need to exist to meet the requirements. | `true` | Condition[]
|
| `logic` | Logic that is applied to the conditions. | `true` | 'ANY' | 'ALL'
|
### Unlocking Token
| Name | Description | Required | Type |
| ----------------- | --------------------------------------------------------------- | -------- | -------- |
| `name` | Name of the unlocking token. | `true` | `string` |
| `imageUrl` | URL of the image of the unlocking token. | `true` | `string` |
| `collectionName` | Name of the collection that the unlocking token corresponds to. | `true` | `string` |
| `contractAddress` | Address of the contract of the unlocking token. | `true` | `string` |
### Custom Titles
| Name | Description | Required | Type |
| -------------------------------------- | -------------------------------------------------------------------------------- | -------- | -------- |
| `lockedTitle?` | Custom title for the locked state of the gate. | `false` | `string` |
| `lockedSubtitle?` | Custom subtitle for the locked state of the gate. | `false` | `string` |
| `unlockedTitle?` | Custom title for the unlocked state of the gate. | `false` | `string` |
| `unlockedSubtitle?` | Custom subtitle for the unlocked state of the gate. | `false` | `string` |
| `unlockedSubtitleWithRedemptionLimit?` | Custom subtitle for the unlocked state of the gate when redemption limits exist. | `false` | `string` |
### Active
| Name | Description | Required | Type |
| -------- | ------------------------------------------------ | -------- | ------------------------------------- |
| `start?` | Starting date when the gate is active. | `false` | `string` LinkType[]
|
| `description` | Description that will be displayed for the condition | `false` | `ReactNode` |
### Redemption limit
| Name | Description | Required | Type |
| ---------- | ---------------------------------------------------------------------------------- | -------- | -------- |
| `total` | Total amount of reactions that can be redeemed with the existing unlocking tokens. | `true` | `number` |
| `perToken` | Redemption limit per token. | `true` | `number` |
### Reaction
| Name | Description | Required | Type |
| ---------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| `type` | Reaction type, defaults to `exclusive_access`. | `true` | 'exclusive_access' | 'discount'
|
| `discount` | Additional information for the `discount` reaction. | `false` when `type` is `"exclusive_access"`{type: 'percentage' | 'fixedAmount', value: number}
|
### LinkType
| Name | Description | Required | Type |
| --------------| ----------------------------------------- | ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------|
| `label` | Custom title for a link | `false` | `string` |
| `marketplace` | Predefined marketplaces | `false` when `label` is `defined` "Blur" | "Coinbase NFT" | "LooksRare" | "MagicEden" | "OpenSea" | "Rarible" | "SuperRare"
|
| `icon` | The icon representing the link | `false` | `JSX.Element` |
| `imageUrl` | The address to the icon representing the link | `false` | `string` |
| `url` | Url for the link | `true` | `string` |