> For the complete documentation index, see [llms.txt](https://docs.metastreet.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.metastreet.xyz/technical-overview/protocol-design/collateral-filters.md).

# Collateral Filters

Pools exist in a variety of configurations, primarily differing in the type of collateral filter used. The collateral filter is responsible for validating NFT collateral when originating a loan.

Currently, four basic collateral filters exist: the [`CollectionCollateralFilter`](https://github.com/metastreet-labs/metastreet-contracts-v2/blob/master/contracts/filters/CollectionCollateralFilter.sol) for accepting an entire collection (all token IDs), the [`RangedCollectionCollateralFilter`](https://github.com/metastreet-labs/metastreet-contracts-v2/blob/master/contracts/filters/RangedCollectionCollateralFilter.sol) for accepting a range of token IDs within a collection, and the [`SetCollectionCollateralFilter`](https://github.com/metastreet-labs/metastreet-contracts-v2/blob/master/contracts/filters/SetCollectionCollateralFilter.sol) for accepting a small set of token IDs within a collection, and the [`MerkleCollectionCollateralFilter`](https://github.com/metastreet-labs/metastreet-contracts-v2/blob/master/contracts/filters/MerkleCollectionCollateralFilter.sol) for accepting a larger set of token IDs within a collection via a merkle proof. When a new Pool is created, it can configure one of these four variants of collateral filter to specify the NFT collateral allowed for lending.

Collateral may also be first wrapped by a supported [Collateral Wrapper](/technical-overview/protocol-design/collateral-wrappers.md) (e.g. for bundles). The collateral filter is applied to the enumerated elements of the wrapped collateral when originating a loan.

Collateral filters are implemented with the internal [`CollateralFilter`](https://github.com/metastreet-labs/metastreet-contracts-v2/blob/master/contracts/filters/CollateralFilter.sol) abstract contract API.
