CapSign
  • Home
  • Compliance Framework
  • Interactive Demos
    • Overview
  • Create an Account
  • Identity Verification
  • Investor Qualification
  • Guides for Individuals
    • Invest in an Offering
  • Guides for Corporations
    • Create a Share Class
    • Authorize Shares
    • Issue Shares
    • Upload a Document
    • Create a Document Template
    • Create an Offering
    • Manage Your Offering
    • Add a Trusted Attestor
    • Approve an Investment
  • API Reference
    • Overview
    • Compliance
      • Exemptions
        • FederalExemption.sol
          • FederalExemption
        • RegAExemption.sol
          • RegAExemption
        • RegCFExemption.sol
          • RegCFExemption
        • RegDExemption.sol
          • RegDExemption
        • Rule144Exemption.sol
          • Rule144Exemption
        • Rule701Exemption.sol
          • Rule701Exemption
      • IComplianceModule.sol
        • IComplianceModule
      • Vesting.sol
        • Vesting
    • Currencies
      • WETH.sol
        • WETH
      • CMX.sol
        • CMX
      • USD.sol
        • USD
    • Governance
      • BoardManagement.sol
        • BoardManagement
      • ProxyVoting.sol
        • ProxyVoting
    • Identity
      • AttestationRegistry.sol
        • AttestationRegistry
      • ERC20PaymentResolver.sol
        • ERC20PaymentResolver
      • Roles
        • BaseRoles.sol
          • BaseRoles
        • PrivateOfferingRoles.sol
          • PrivateOfferingRoles
        • PublicOfferingRoles.sol
          • PublicOfferingRoles
      • Whitelist.sol
        • Whitelist
    • Issuance
      • Compensation
        • CompensationFactory.sol
          • CompensationFactory
        • EmployeeStockOptionCompensation.sol
          • EmployeeStockOptionCompensation
        • RestrictedStockAwardCompensation.sol
          • RestrictedStockAwardCompensation
        • StockAppreciationRightsCompensation.sol
          • StockAppreciationRightCompensation
        • WarrantCompensation.sol
          • WarrantCompensation
      • Offering
        • ExemptOffering.sol
          • ExemptOffering
        • InitialPublicOffering.sol
          • InitialPublicOffering
        • Offering.sol
          • Offering
        • OfferingFactory.sol
          • OfferingFactory
        • Rule506bOffering.sol
          • Rule506bOffering
        • Rule506cOffering.sol
          • Rule506cOffering
        • TenderOffer.sol
          • TenderOffer
    • Investor Relations
      • DividendDistributor.sol
        • DividendDistributor
      • SubscriptionManager.sol
        • SubscriptionManager
        • IERC20
    • Ledgers
      • Ledger.sol
        • Ledger
      • LedgerManager.sol
        • LedgerManager
      • SettlementManager.sol
        • SettlementManager
    • Marketplace
      • AuctionMarket.sol
        • AuctionMarket
      • BaseMarket.sol
        • BaseMarket
      • BulletinBoardMarket.sol
        • BulletinBoardMarket
      • Contents
        • BaseCollateral.sol
          • BaseCollateral
        • ERC20Collateral.sol
          • ERC20Collateral
        • NativeCollateral.sol
          • NativeCollateral
      • LiquidityPoolMarket.sol
        • LiquidityPoolMarket
      • Contents
        • BaseMargin.sol
          • BaseMargin
        • MarginAccount.sol
          • MarginAccount
      • MarginOrderBookMarket.sol
        • MarginOrderBookMarket
      • OTCMarket.sol
        • OTCMarket
      • OrderBookMarket.sol
        • OrderBookMarket
      • Contents
        • BrokerNetSettlement.sol
          • BrokerNetSettlement
        • CustodyBridge.sol
          • CustodyBridge
        • DirectSettlement.sol
          • DirectSettlement
        • ListingRegistry.sol
          • ListingRegistry
    • Tokenization
      • Actions
        • CorporateActionManager.sol
          • CorporateActionManager
          • ICapitalAsset
        • ICorporateActionManager.sol
          • ICorporateActionManager
      • Assets
        • Asset.sol
          • Asset
          • Asset
        • ClosedEndFundClass.sol
          • ClosedEndFundClass
        • ClosedEndFundManager.sol
          • ClosedEndFundManager
        • EmployeeStockOption.sol
          • EmployeeStockOption
        • Contents
          • IAsset.sol
            • IAsset
          • IClosedEndFundClass.sol
            • IClosedEndFundClass
          • IIssuedAsset.sol
            • IIssuedAsset
          • IOpenEndFundClass.sol
            • IOpenEndFundClass
          • IShareClass.sol
            • IShareClass
        • IssuedAsset.sol
          • IssuedAsset
        • OpenEndFundClass.sol
          • OpenEndFundClass
        • OpenEndFundManager.sol
          • OpenEndFundManager
        • ShareClass.sol
          • ShareClass
        • StockAppreciationRight.sol
          • StockAppreciationRight
        • Warrant.sol
          • Warrant
      • TokenFactory.sol
        • TokenFactory
    • Utilities
      • PriceFeed.sol
        • SimplePriceFeed
        • IPriceFeed
    • Valuations
      • ValuationRegistry.sol
        • ValuationRegistry
    • Wallet
      • HookedSmartWallet.sol
        • HookedSmartWallet
      • Wallet.sol
        • Wallet
Powered by GitBook
On this page
  • State Variables
  • _INVESTOR_QUALIFICATION_UID
  • _CUSTOMER_IDENTIFICATION_UID
  • _LOCATION_UID
  • investorQualificationAttestations
  • customerIdentificationAttestations
  • locationAttestations
  • validAttestors
  • escrowPayments
  • _eas
  • _schemaRegistry
  • Functions
  • constructor
  • attestInvestorQualification
  • attestCustomerIdentification
  • attestLocation
  • getInvestorQualificationAttestation
  • getCustomerIdentificationAttestation
  • getLocationAttestation
  • revokeInvestorQualification
  • revokeCustomerIdentification
  • revokeLocation
  • setValidAttestor
  • setEAS
  • isInvestorQualificationValid
  • isCustomerIdentificationValid
  • isLocationValid
  • requestCustomerIdentificationAttestation
  • updateCustomerIdentification
  • Events
  • InvestorQualificationAttested
  • CustomerIdentificationAttested
  • LocationAttested
  • CustomerIdentificationPaymentReceived
  • InvestorQualificationRevoked
  • CustomerIdentificationRevoked
  • LocationRevoked
  • ValidAttestorSet
  • EASUpdated

Was this helpful?

  1. API Reference
  2. Identity
  3. AttestationRegistry.sol

AttestationRegistry

PreviousAttestationRegistry.solNextERC20PaymentResolver.sol

Last updated 3 months ago

Was this helpful?

Inherits:

General Attestation Registry. Supports various attestations identified by their EAS schema UIDs. Issuers can specify valid attestors for their offerings.

State Variables

_INVESTOR_QUALIFICATION_UID

bytes32 constant _INVESTOR_QUALIFICATION_UID = 0xe55954f3900bab2bf776bb61c5fb0b0a688bb07ab06cb9fd39bc06004bb04e35;

_CUSTOMER_IDENTIFICATION_UID

bytes32 constant _CUSTOMER_IDENTIFICATION_UID = 0x7fe98a0715f26f1504adabc7e903a1fa3db981be23e3c39c0f9c07b5fdf4738a;

_LOCATION_UID

bytes32 constant _LOCATION_UID = 0xd5c6afa8d49eb7a165147d25554aa683bf6b2180f14aa0b9d5a36360bcbc5979;

investorQualificationAttestations

mapping(address => bytes32) public investorQualificationAttestations;

customerIdentificationAttestations

mapping(address => bytes32) public customerIdentificationAttestations;

locationAttestations

mapping(address => bytes32) public locationAttestations;

validAttestors

mapping(address => mapping(address => bool)) public validAttestors;

escrowPayments

mapping(address => uint256) public escrowPayments;

_eas

IEAS _eas = IEAS(0x4200000000000000000000000000000000000021);

_schemaRegistry

ISchemaRegistry _schemaRegistry = ISchemaRegistry(0x4200000000000000000000000000000000000020);

Functions

constructor

constructor();

attestInvestorQualification

Attest investor qualification: fields - isQualifiedClient, isAccreditedInvestor, isQualifiedPurchaser, isQualifiedInstitutionalBuyer.

function attestInvestorQualification(address investor, bytes calldata data) public returns (bytes32);

Parameters

Name
Type
Description

investor

address

The address of the investor.

data

bytes

The attestation data.

attestCustomerIdentification

Attest customer identification: fields - isIdentified, isIndividual.

function attestCustomerIdentification(address customer, bytes calldata data) public returns (bytes32);

Parameters

Name
Type
Description

customer

address

The address of the customer.

data

bytes

The attestation data.

attestLocation

Attest location: fields - country, state, city.

function attestLocation(address investor, bytes calldata data) public returns (bytes32);

Parameters

Name
Type
Description

investor

address

The address of the investor.

data

bytes

The attestation data.

getInvestorQualificationAttestation

Get an investor's attestation for investor qualification.

function getInvestorQualificationAttestation(address investor) public view returns (Attestation memory);

Parameters

Name
Type
Description

investor

address

The address of the investor.

Returns

Name
Type
Description

<none>

Attestation

attestation The attestation data.

getCustomerIdentificationAttestation

Get an investor's attestation for customer identification.

function getCustomerIdentificationAttestation(address investor) public view returns (Attestation memory);

Parameters

Name
Type
Description

investor

address

The address of the investor.

Returns

Name
Type
Description

<none>

Attestation

attestation The attestation data.

getLocationAttestation

Get an investor's attestation for location.

function getLocationAttestation(address investor) public view returns (Attestation memory);

Parameters

Name
Type
Description

investor

address

The address of the investor.

Returns

Name
Type
Description

<none>

Attestation

attestation The attestation data.

revokeInvestorQualification

Revoke an investor's attestation for investor qualification.

function revokeInvestorQualification(address investor) public;

Parameters

Name
Type
Description

investor

address

The address of the investor.

revokeCustomerIdentification

Revoke an investor's attestation for customer identification.

function revokeCustomerIdentification(address investor) public;

Parameters

Name
Type
Description

investor

address

The address of the investor.

revokeLocation

Revoke an investor's attestation for location.

function revokeLocation(address investor) public;

Parameters

Name
Type
Description

investor

address

The address of the investor.

setValidAttestor

Allow issuers to set valid attestors for their offerings.

function setValidAttestor(address attestor, bool isValid) public;

Parameters

Name
Type
Description

attestor

address

The address of the attestor.

isValid

bool

A boolean indicating if the attestor is valid.

setEAS

(Test Only) Set the EAS backend.

function setEAS(address eas) external onlyRole(DEFAULT_ADMIN_ROLE);

Parameters

Name
Type
Description

eas

address

The address of the new IEAS contract.

isInvestorQualificationValid

Check if an attestation is valid for an issuer's offering for investor qualification.

function isInvestorQualificationValid(address investor, address issuer) public view returns (bool);

Parameters

Name
Type
Description

investor

address

The address of the investor.

issuer

address

The address of the issuer.

Returns

Name
Type
Description

<none>

bool

isValid A boolean indicating if the attestation is valid.

isCustomerIdentificationValid

Check if an attestation is valid for an issuer's offering for customer identification.

function isCustomerIdentificationValid(address investor, address issuer) public view returns (bool);

Parameters

Name
Type
Description

investor

address

The address of the investor.

issuer

address

The address of the issuer.

Returns

Name
Type
Description

<none>

bool

isValid A boolean indicating if the attestation is valid.

isLocationValid

Check if an attestation is valid for an issuer's offering for location.

function isLocationValid(address investor, address issuer) public view returns (bool);

Parameters

Name
Type
Description

investor

address

The address of the investor.

issuer

address

The address of the issuer.

Returns

Name
Type
Description

<none>

bool

isValid A boolean indicating if the attestation is valid.

requestCustomerIdentificationAttestation

Request a customer identification attestation by depositing 0.0001 ETH in escrow. The payment will be held until an attestor processes the attestation.

function requestCustomerIdentificationAttestation() external payable returns (bool);

updateCustomerIdentification

Update an attestation for customer identification by revoking the existing one (if any) and issuing a new one.

function updateCustomerIdentification(address customer, bytes calldata data) external returns (bytes32);

Parameters

Name
Type
Description

customer

address

The address of the customer.

data

bytes

The new attestation data.

Returns

Name
Type
Description

<none>

bytes32

newAttestationUID The UID of the new attestation.

Events

InvestorQualificationAttested

event InvestorQualificationAttested(address indexed investor, bytes32 indexed attestationUID);

CustomerIdentificationAttested

event CustomerIdentificationAttested(address indexed investor, bytes32 indexed attestationUID);

LocationAttested

event LocationAttested(address indexed investor, bytes32 indexed attestationUID);

CustomerIdentificationPaymentReceived

event CustomerIdentificationPaymentReceived(address indexed customer, uint256 amount);

InvestorQualificationRevoked

event InvestorQualificationRevoked(address indexed investor, bytes32 indexed attestationUID);

CustomerIdentificationRevoked

event CustomerIdentificationRevoked(address indexed investor, bytes32 indexed attestationUID);

LocationRevoked

event LocationRevoked(address indexed investor, bytes32 indexed attestationUID);

ValidAttestorSet

event ValidAttestorSet(address indexed issuer, address indexed attestor, bool isValid);

EASUpdated

event EASUpdated(address indexed oldEAS, address indexed newEAS);
Git Source
BaseRoles