Skip to content

tiago18c/abl-token

Repository files navigation

AllowBlockList Token

An example of a allow / block list token using token extensions.

Features

Allows the creation of an allow block list with a list authority. The allow/block list is then consumed by a transfer-hook.

The list is managed by a single authority and can be used by several token mints. This enables a separation of concerns between token management and allow/block list management, ideal for scenarios where an issuer wants a 3rd party managed allow/block list or wants to share the same list across a group of assets.

Initializes new tokens with several configuration options:

  • Permanent delegate
  • Allow list
  • Block list
  • Metadata
  • Authorities

The issuer can configure the allow and block list with 3 distinct configurations:

  • Force Allow: requires everyone receiving tokens to be explicitly allowed in
  • Block: allows everyone to receive tokens unless explicitly blocked
  • Threshold Allow: allows everyone to receive tokens unless explicitly blocked up until a given transfer amount threshold. Transfers larger than the threshold require explicitly allow

These configurations are saved in the token mint metadata.

This repo includes a UI to manage the allow/block list based on the legacy-next-tailwind-basic template. It also allows creating new token mints on the spot with transfer-hook enabled along with token transfers given that most wallets fail to fetch transfer-hook dependencies on devnet and locally.

Setup

Install dependencies: yarn install

Compile the program (make sure to replace your program ID): anchor build

Compile the UI: yarn run build

Serve the UI: yarn run dev

Local testing

There are a couple scripts to manage the local validator and deployment.

To start the local validator and deploy the program (uses the anchor CLI and default anchor keypair): ./scripts/start.sh

To stop the local validator: ./scripts/stop.sh

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published