Permissioned Pools

Summary

The purpose of the Permissioned Pools Plugin is to restrict pool access to approved users only. Applicable for the pools that contain compliance-restricted tokens (e.g. RWA or security tokens) where the token issuer needs to control who can trade or provide liquidity for the token through the pool.

The pool configured with this plugin checks the real end user against a per-token allowlist checker before allowing swaps and adding liquidity. Removing liquidity, flash loans, and pool initialization are not gated by this plugin.

The validation rules that are applied for the specific token stay the same across all permissioned pools. Checker implementation is pluggable and can be implemented to match custom KYC / Access Control rules.

The plugin comes with the default checker implementation based on the OnchainID protocol, bringing on the compatibility with ERC3643 permissioned token standard.

The plugin expects the peripheral contracts interacting with the permissioned pool to implement msgSender method (see the plugin docs for details).

Features

  • UI-less The plugin is configured via direct contract calls by the DEX owner or the PermissionedPoolManager role.
  • Extendable The plugin can be configured with the custom permission rules implementations.
  • Custom Periphery The plugin expects the peripheral contracts to match the requirements.
  • Low gas overhead ~50K gas per swap and mint operation with default implementation.