> ## Documentation Index
> Fetch the complete documentation index at: https://docs.etherscan.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Security and Compliance

> Build security and compliance workflows with address labels, reputation data, funding traces, and contract information.

Security and compliance workflows combine a few signals: who an address is, where its funds came from, who it transacts with, and what contracts it touches. This guide shows the endpoints behind each signal. Labels and reputation data are inputs for your own screening rules, not screening decisions on their own.

New to the API? Start with [Make your first call](/make-your-first-call).

<Tip>
  Every endpoint in this guide works on all 60+ supported chains, just switch the `chainid`. For example, set `chainid=42161` to screen the same address on Arbitrum. See [Supported chains](/supported-chains) for the full list.
</Tip>

## Address identity

Enrich an address with names, labels, and reputation before applying your rules.

<Steps>
  <Step title="Get address metadata">
    Retrieve Etherscan labels, names, and reputation data for an address using [Etherscan Metadata](/metadata/introduction).

    ```bash theme={null}
    curl --request GET \
      --url 'https://api.etherscan.io/v2/api?chainid=1&module=nametag&action=getaddresstag&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&apikey=YourApiKey'
    ```

    Use labels such as `Exchange`, `Bridge`, `phish-hack`, and `ofac-sanctioned` as inputs for your own screening rules.

    <Note>
      `getaddresstag` is available as a PRO endpoint on the Pro Plus plan. See [PRO endpoints](/endpoint-overview).
    </Note>

    <Tip>
      Labels and reputation data provide context for your own screening rules. Combine them with your product's policies and risk thresholds.
    </Tip>
  </Step>

  <Step title="Export label categories">
    For watchlist workflows, retrieve addresses by label category (e.g. `ofac-sanctioned`) instead of checking addresses individually.

    ```bash theme={null}
    curl --request GET \
      --url 'https://api.etherscan.io/v2/api?chainid=1&module=nametag&action=exportaddresstags&label=ofac-sanctioned&apikey=YourApiKey'
    ```

    Use [`getlabelmasterlist`](/api-reference/endpoint/getlabelmasterlist-v2) to discover available label categories.

    <Tip>
      Export label categories periodically to keep local screening data up to date.
    </Tip>
  </Step>
</Steps>

## Transaction monitoring

Combine address metadata with transaction data to monitor interactions with known entities.

<Steps>
  <Step title="Retrieve transaction activity">
    Track normal transactions, internal transactions, and token transfers associated with an address.

    * [`txlist`](/api-reference/endpoint/txlist) for normal transactions
    * [`txlistinternal`](/api-reference/endpoint/txlistinternal) for contract-triggered value transfers
    * [`tokentx`](/api-reference/endpoint/tokentx) for ERC-20 token transfers

    <Tip>
      User activity can span multiple networks. Apply the same screening workflow across every supported chain you monitor.
    </Tip>
  </Step>

  <Step title="Apply your screening logic">
    Match transaction counterparties against your labels and internal rules to surface activity that requires review.
  </Step>
</Steps>

## Fund tracing

Understand where an address received its initial funds.

<Steps>
  <Step title="Find the funding source">
    Returns the address and transaction that first funded an EOA, an extra context signal when investigating an address. This is a PRO endpoint, available to the [Standard plan](/rate-limits) and above.

    ```bash theme={null}
    curl --request GET \
      --url 'https://api.etherscan.io/v2/api?chainid=1&module=account&action=fundedby&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&apikey=YourApiKey'
    ```
  </Step>
</Steps>

## Contract context

Understand a smart contract before your application interacts with it.

<Steps>
  <Step title="Check the contract source code">
    Verified source code and contract details for an address. Use verification status and source availability as context when evaluating a contract.

    ```bash theme={null}
    curl --request GET \
      --url 'https://api.etherscan.io/v2/api?chainid=1&module=contract&action=getsourcecode&address=0xdAC17F958D2ee523a2206206994597C13D831ec7&apikey=YourApiKey'
    ```
  </Step>

  <Step title="Retrieve the contract ABI">
    The ABI for a verified contract, used to decode its interactions and understand the methods it exposes.

    ```bash theme={null}
    curl --request GET \
      --url 'https://api.etherscan.io/v2/api?chainid=1&module=contract&action=getabi&address=0xdAC17F958D2ee523a2206206994597C13D831ec7&apikey=YourApiKey'
    ```
  </Step>
</Steps>

## Putting it together

Combine these endpoints to build common security and compliance workflows:

* **Address screening:** `getaddresstag` labels against your rules
* **Watchlist management:** `exportaddresstags` refreshed on a schedule
* **Transaction monitoring:** `txlist` + `txlistinternal` + `tokentx` + labels
* **Address investigation:** `fundedby` + transaction history
* **Contract review:** `getsourcecode` + `getabi`

For multi-chain applications, repeat these workflows across each `chainid` where your users or contracts operate.
