# Borrower Allowlisting

> Markdown export of the Gearbox Protocol documentation page for agents and retrieval systems.

Canonical page: https://docs.gearbox.finance/curators/borrower-allowlisting
Source file: content/curators/borrower-allowlisting.mdx
Section router: https://docs.gearbox.finance/curators/llms.txt
Section full export: https://docs.gearbox.finance/curators/llms-full.txt

Borrower allowlisting lets a curator restrict new Credit Account openings to approved addresses. Gearbox implements this through a **Degen NFT** contract configured on the Credit Facade.

The NFT is an implementation detail. At the product level, its balance represents the number of Credit Accounts an address is allowed to open.

## Why use an allowlist

Borrowing activity is often concentrated among a small number of high-volume users. A curator may therefore prefer to give selected partners access while preventing unknown addresses from opening new positions.

This reduces the market's exposure to unvetted borrowers while preserving a straightforward experience for approved users. It does not change collateral requirements, debt limits, liquidation rules, or any other Credit Account risk controls.

The market remains visible to everyone. A borrower without an available account-opening allowance sees that access is required when viewing the strategy details.

## How it works

1. The curator approves a borrower and mints one or more non-transferable allowances to the borrower's wallet.
2. The borrower opens a Credit Account for the same wallet.
3. The Credit Facade burns one allowance before opening the account.
4. The new Credit Account behaves like any other account in the market.

One allowance permits one account opening. A curator can mint multiple allowances to the same address when that borrower needs to open multiple accounts.


Allowlisting gates **new account openings only**. It does not restrict or revoke control over a Credit Account that has already been opened.


## Revoking access

Unused allowances can be burned to prevent an address from opening additional Credit Accounts. Revocation does not close, freeze, or otherwise change accounts the borrower already owns.

In the default implementation, the Market Configurator's emergency admin can burn unused allowances. A curator should therefore include allowance revocation in its access-management process rather than treating removal from an offchain partner list as sufficient.

## Default Degen NFT implementation

`DefaultDegenNFT` is Gearbox's standard implementation of the `IDegenNFT` interface. It provides a simple curator-managed allowance system without embedding a particular KYC or partner-verification policy.

| Property | Default behavior |
| --- | --- |
| Eligibility | Decided offchain by the curator; the contract only records issued allowances |
| Issuance | The designated `minter` calls `mint(to, amount)` |
| Consumption | A valid Credit Facade calls `burn(from, 1)` during `openCreditAccount` |
| Revocation | The Market Configurator's emergency admin can burn unused allowances |
| Transferability | Transfers and approvals revert; allowances cannot be sold or moved to another wallet |
| Metadata | The Market Configurator admin controls a shared base URI |

The Market Configurator admin selects the `minter`. In a typical partner-access setup, this is an address controlled by the curator or its access-management service.

Token IDs are derived from the recipient address and its existing balance. Applications should use `balanceOf(address)` as the number of available account openings rather than relying on individual token IDs.

## Credit Facade behavior

A nonzero `degenNFT` address enables allowlisted account opening on a Credit Facade. When `openCreditAccount` is called:

* The caller must be the account owner specified by `onBehalfOf`.
* The Credit Facade burns one allowance from that address.
* The Credit Manager opens the Credit Account.

Opening an account for another address is disabled while allowlisting is enabled. This prevents an approved wallet from using its allowance to create an account for an unapproved owner.

## Integration overview

To enable borrower allowlisting, a curator:

1. Deploys an `IDegenNFT`-compatible contract.
2. Registers it as a Degen NFT periphery contract in the Market Configurator.
3. Configures the Credit Facade with the registered contract address.
4. Sets and operates the minter responsible for borrower approvals.

The zero address disables Degen NFT gating. A nonzero contract must be registered before it can be used by a Credit Facade.

## Custom implementations

Curators are not required to use `DefaultDegenNFT`. Any compatible implementation can connect issuance to a different partner, identity, or compliance process.

The Credit Facade only depends on the `IDegenNFT` interface and calls `burn(address, amount)` when an account is opened. A custom implementation is responsible for its own eligibility, issuance, revocation, and accounting rules while preserving that integration behavior.
