# Signers Registry Contract

Signers Registry contract is used by other smart contracts to verify if the signature was created by the whitelisted signer. This smart contract has to be deployed on each supported chain.&#x20;

SignersRegistry implements this interface:

```solidity
interface ISignersRegistry {
    function isPublicWhitelisted(address signer) view external returns (bool);
    function isPrivateWhitelisted(address signerAdmin, address signer) view external returns (bool);
}
```

The signer could be `public` or `private`.&#x20;

* Anyone can use the `public` signer for supported chains.
* The `Private` signer could be used for specific dApps, chains, etc. Such signers are restricted and closed for the community. Contact us if you want to implement a private signer.&#x20;

See the [example](/for-developers/cross-chain-messaging-protocol/quick-start/receive-event.md) to understand how to use Signers Registry smart contract.

See deployed smart contract on [explorer](https://polygonscan.com/address/0x3E0387bDcCe1b2A416700FC075f8c33c3A5f7E07#readProxyContract).


---

# Agent Instructions: 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:

```
GET https://docs.bitoftrade.com/for-developers/cross-chain-messaging-protocol/how-it-works/signers-registry-contract.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
