> For the complete documentation index, see [llms.txt](https://city-protocol.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://city-protocol.gitbook.io/docs/software-development-kit/aml/setup-provider.md).

# Setup Provider

City uses a provider-based AML model. The `CityAmlClient` is provider-agnostic and delegates all screening calls to a pluggable provider instance. `EllipticAmlProvider` is the current default provider, but the interface is designed so that additional providers can be swapped in without changing application-level code.

```
import { CityAmlClient, EllipticAmlProvider } from "@cityprotocol/core";

const provider = new EllipticAmlProvider({
  apiKey: process.env.ELLIPTIC_API_KEY!,
});

const amlClient = new CityAmlClient({ provider });
```
