> For the complete documentation index, see [llms.txt](https://docs.bloxroute.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bloxroute.com/eth/block-builders-and-validators/compliance-lists.md).

# Compliance Lists

Compliance lists are generally used as blacklists, allowing builders to avoid building blocks that include transactions involving an address in this list, and allowing block proposers to voluntarily prevent any blocks they propose from including transactions involving any address in the chosen compliance list.

There are currently 5 available compliance lists:

<table><thead><tr><th width="235">List name</th><th width="156">Maintianer</th><th width="322">Description</th><th width="114">Parameter value</th><th width="144" data-type="number">Address count*</th></tr></thead><tbody><tr><td>OFAC</td><td>bloXroute</td><td>List of addresses sanctioned by OFAC</td><td><pre class="language-json"><code class="lang-json">ofac
</code></pre></td><td>157</td></tr><tr><td>Sanction Watchlist</td><td>Global Ledger</td><td>List of addresses belonging to sanctioned entities</td><td><pre class="language-json"><code class="lang-json">global-ledger-sanction-watchlist
</code></pre></td><td>955</td></tr><tr><td>Sanction Exposure Watchlist</td><td>Global Ledger</td><td>List of addresses who have been exposed to funds involved with sanctioned entities</td><td><pre class="language-json"><code class="lang-json">global-ledger-sanction-exposure-watchlist
</code></pre></td><td>115754</td></tr><tr><td>Cybercrime Watchlist</td><td>Global Ledger</td><td>List of addresses involved in known cybercrime</td><td><pre class="language-json"><code class="lang-json">global-ledger-cybercrime-watchlist
</code></pre></td><td>20536</td></tr><tr><td>Suspicious Watchlist</td><td>Global Ledger</td><td>List of addresses suspected of leading to crime or sanctions</td><td><pre class="language-json"><code class="lang-json">global-ledger-suspicious-watchlist
</code></pre></td><td>744</td></tr></tbody></table>

*\*as of May 29th 2024*

### Validators

For validators that wish to use a compliance list to make sure any blocks they propose avoid transactions from addresses on a selected compliance list:

Add a compliance query parameter to the URL you pass in using the `-relays` flag. For example:

`https://0xb0b07cd0abef743db4260b0ed50619cf6ad4d82064cb4fbec9d3ec530f7c5e6793d9f286c4e082c0244ffb9f2658fe88@bloxroute.regulated.blxrbdn.com?compliance_list=ofac`

**Multiple Lists**

Validators can choose more than one compliance list. To utilize multiple compliance lists, either pass in a comma-separated list of valid compliance list names, or pass in separate `compliance_list` values. For example:

`https://0xb0b07cd0abef743db4260b0ed50619cf6ad4d82064cb4fbec9d3ec530f7c5e6793d9f286c4e082c0244ffb9f2658fe88@bloxroute.regulated.blxrbdn.com?compliance_list=global-ledger-cybercrime-watchlist,global-ledger-sanction-watchlist`

or

`https://0xb0b07cd0abef743db4260b0ed50619cf6ad4d82064cb4fbec9d3ec530f7c5e6793d9f286c4e082c0244ffb9f2658fe88@bloxroute.regulated.blxrbdn.com?compliance_list=global-ledger-cybercrime-watchlist&compliance_list=global-ledger-sanction-watchlist`

### Builders

#### Checking which list to use

To check which list to use, the validator registration contains information on which compliance list (if any) the validator will follow.

```go
type GetValidatorRelayResponse []struct {
    Slot  uint64 `json:"slot,string"`
    Entry struct {
        Message struct {
            FeeRecipient string `json:"fee_recipient"`
            GasLimit     uint64 `json:"gas_limit,string"`
            Timestamp    uint64 `json:"timestamp,string"`
            Pubkey       string `json:"pubkey"`
        } `json:"message"`
        Signature string `json:"signature"`
    } `json:"entry"`
    ComplianceList      string `json:"compliance_list"`
    EnforcedProfitRatio uint64 `json:"enforced_profit_ratio"`
}
```

This will be served as a JSON object.

#### Getting the list

For builders that want to submit blocks for validators that are using compliance lists, their builder must get the compliance lists from the relay. The request can be made with a `GET` request to the endpoint:

`/blxr/compliance_lists`

and the query parameter:

`list=<INSERT_LIST_HERE>`

For example:

`https://bloxroute.regulated.blxrbdn.com/blxr/compliance_lists?list=global-ledger-sanction-watchlist`

The builder can query multiple lists at once. To do this, provide a comma-seperated list of the desired compliance lists. For example:

`https://bloxroute.regulated.blxrbdn.com/blxr/compliance_lists?list=global-ledger-sanction-watchlist,global-ledger-cybercrime-watchlist`

\
The builder must include their [authorization header](https://docs.bloxroute.com/apis/authorization-headers) (from bloXroute account portal) in the http request header, like `-H "Authorization: <YOUR-AUTHORIZATION-HEADER>"` , when making this query.

**Note:** the result will be served in SSZ (for the sake of speed). To unmarshal the SSZ, the public repo <https://github.com/bloXroute-Labs/builder-compliance-lists> (only the branch *compliance-lists-example*). includes the `ComplianceRegistry` struct, which has the method: `UnmarshalSSZ(buf []byte)` that can be used to unmarshal the response into a usable `ComplianceRegistry` struct.<br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bloxroute.com/eth/block-builders-and-validators/compliance-lists.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
