SettleMint
ArchitectureSecurityCompliance Modules

Identity lists

IdentityAllowList, IdentityBlockList, and AddressBlockList compliance modules for investor-level and wallet-level access control.

Identity list modules let an asset restrict who may receive tokens by checking either the recipient's OnchainID identity or the wallet addresses in the transfer. Use them when an asset needs explicit investor eligibility, persistent investor blocking, or immediate wallet-level blocking alongside other compliance modules.

Choose the right list

RequirementUseWhat DALP checks
Only pre-approved investors may receive the tokenIdentityAllowListThe recipient wallet has a registered OnchainID identity, and that identity is in the allow list
A specific investor must not receive the token through any registered walletIdentityBlockListThe recipient wallet's registered OnchainID identity is not in the block list
A specific wallet must not send or receive the tokenAddressBlockListNeither the sender wallet nor the recipient wallet is in the address block list
Rendering diagram...

Module behaviour

ModuleGranularityPrimary useEmpty list behaviourIdentity required
IdentityAllowListOnchainID identity contractPrivate placements, institutional-only offerings, restricted investor groupsBlocks recipients because no identity can match the allow listYes
IdentityBlockListOnchainID identity contractInvestor-level exclusionsBlocks no identitiesNo. Unknown recipients pass
AddressBlockListWallet addressSanctions screening, fraud response, compromised walletsBlocks no addressesNo

Identity-level versus address-level blocking

AspectIdentityAllowList and IdentityBlockListAddressBlockList
ScopeFollows the OnchainID identity across registered walletsApplies only to the listed wallet address
Wallet rotationStill covered when the new wallet resolves to the same identityNot covered until the new wallet is listed
Recipient identity lookupRequired for IdentityAllowList. Used by IdentityBlockList when the recipient has a registered identityNot used
Transfer directionChecks the recipient identityChecks both sender and recipient wallet addresses
Best fitInvestor eligibility and investor-level restrictionsFast wallet-level controls and address intelligence feeds

Use identity-level lists when the restriction belongs to the investor. Use address-level lists when the restriction belongs to a wallet, such as a compromised address, a sanctioned wallet, or a fraud signal from wallet analytics.

Capabilities

CapabilityIdentityAllowListIdentityBlockListAddressBlockList
Configure the listToken administration updates the configured OnchainID identity addressesToken administration updates the configured OnchainID identity addressesToken administration updates the configured wallet addresses
Evaluate a transferAllows only recipients whose registered identity is listedBlocks recipients whose registered identity is listedBlocks transfers where the sender or recipient wallet is listed
On successful matchThe transfer can continue to the next compliance moduleThe transfer is rejectedThe transfer is rejected
On missing identityRejects the transferPasses the transferDoes not check identity

Common operating patterns

Private placement allow list

Use IdentityAllowList when only pre-approved investors may receive the token. Add each eligible investor's OnchainID contract before enabling the module on an asset. Recipients without registered identities fail the check.

Investor-level block list

Use IdentityBlockList when a restriction should follow an investor across registered wallets. Legal disputes, failed re-verification, and compliance alerts are typical triggers. A listed investor cannot receive more tokens through wallets tied to the same OnchainID.

Wallet-level block list

Use AddressBlockList when the wallet is the risk signal. Typical triggers include sanctioned addresses, fraud addresses, compromised wallets, and mixer addresses flagged by analytics providers. A different wallet is not blocked unless that wallet is also listed.

Invariants and failure modes

  • IdentityAllowList rejects recipients with no registered identity.
  • IdentityAllowList rejects recipients whose registered identity is not in the allow list.
  • IdentityBlockList does not reject an unidentified recipient by itself. Add identity verification when recipients must hold accepted identity claims.
  • AddressBlockList checks both transfer participants. A listed sender or listed recipient rejects the transfer.
  • IdentityAllowList and IdentityBlockList do not freeze existing balances by themselves. They check whether a recipient can receive more tokens.
  • AddressBlockList can stop a listed holder from sending tokens because it checks sender and recipient addresses.
  • The modules do not emit module-specific events. Monitor rejected transactions and compliance-check errors for list violations.

Combine with other controls

Identity lists are usually one part of an asset policy. Combine them with:

On this page