# One-Time Link Access

With custom development, you can limit access to a token gated link to once per wallet address.&#x20;

### Use Case Example

An NFT project gates a physical item redeem page on their website using an NFT in their collection and needs to prevent a wallet from continuously accessing the redeem page to redeem the physical item multiple times.&#x20;

### How It Works

#### API Keys

1. Create or log in to your MintGate account at <https://mintgate.app>.
2. You can access developer Widget keys [here](https://www.mintgate.app/token_api) or at <https://www.mintgate.app/token_api>

{% hint style="info" %}
The original token gated web content is a site that you must have control of. You must implement both the Has Access and Burn Link Access APIs to lock access to a link to once per wallet address.
{% endhint %}

#### Check If User Has Accessed The Link Before

Link to API documentation: <https://mgate.io/docs/#/default/HasAccess>

* You create a MintGate [token gated link](https://mintgate.gitbook.io/mintgate-docs/direct-integrations/custom-link-features/broken-reference) with a site page that you have control over.
* Once a user accesses the token gated link to your site page, it will pass a `mgsession` parameter which is the identifier for that access instance.
  * You must pass the `mgsession` parameter to the endpoint.
* The endpoint will return a json `{ locked: true | false }`&#x20;
  * `locked: true` - The wallet address has accessed the link at least once
  * `locked: false` - The wallet address is accessing the link for the first time

#### Limit Access to One Per Wallet

Link to API documentation: <https://mgate.io/docs/#/default/BurnLinkAccess>

* To prevent the wallet from access again, you must integrate this endpoint in lieu of the Has Access API.&#x20;
* You must pass the `mgsession` parameter that is passed to the page when the user visits and your API key.

{% hint style="info" %}
If you have any questions, message us on Discord at [discord.gg/HVsbWZfrFQ](https://t.co/4O0TR4KvQf?amp=1) or email us at <support@mintgate.io>.&#x20;
{% endhint %}
