Compliance Lists
Compliance lists are watchlists of certain association sets of addresses, established according to specific criteria.
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:
OFAC
bloXroute
List of addresses sanctioned by OFAC
Sanction Watchlist
Global Ledger
List of addresses belonging to sanctioned entities
Sanction Exposure Watchlist
Global Ledger
List of addresses who have been exposed to funds involved with sanctioned entities
Cybercrime Watchlist
Global Ledger
List of addresses involved in known cybercrime
Suspicious Watchlist
Global Ledger
List of addresses suspected of leading to crime or sanctions
*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.
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 (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.
Last updated