Overview
Architecture of DALP's modular compliance engine, 7 system-seeded regulatory templates, and 9 compliance modules covering geographic, identity, supply, collateral, and time-lock controls.
Purpose: Explain the compliance module architecture and provide the primary on-ramp for architects choosing a regulatory framework.
- Doc type: Explanation
- What you'll find here:
- Compliance architecture (token → compliance → modules)
- 7 system-seeded regulatory templates — start here
- Module catalog index with links to details
- Related:
Reading guide: This page is the compliance module catalog (Reference). For the identity system architecture, trust model, and enforcement lifecycle, start at Identity & Compliance.
Architecture
Compliance modules form the enforcement layer of the SMART Protocol. Every token transfer calls the compliance engine, which evaluates all configured modules in sequence. A single module veto blocks the transfer.
Token transfer request
│
▼
Compliance Engine (per-token orchestrator)
│
├── Module 1: Country Allow List ──► PASS / FAIL
├── Module 2: Identity Verification ──► PASS / FAIL
├── Module 3: Token Supply Limit ──► PASS / FAIL
└── Module N: ... ──► PASS / FAIL
│
▼
Transfer proceeds only if ALL modules passConfiguration model
| Layer | Scope | Examples |
|---|---|---|
| Global | Shared infrastructure | Module deployment, trusted issuer registry, topic schemes |
| Per-token | Business rules | Which modules to activate, country codes, investor limits, expressions |
A single deployed module instance serves all tokens. Each token configures its own parameters encoded as ABI-encoded bytes. Modules validate parameters via validateParameters before accepting configuration.

Regulatory templates (start here)
DALP ships 7 system-seeded compliance templates. These are read-only and available to all organizations. Admins apply a template as a starting point, then customize for their specific needs.
How to use templates: Select the jurisdiction that matches your offering, apply the template to your DALPAsset token, then review and adjust the module parameters for your specific case.
| Template | Jurisdiction | Modules | Key constraints |
|---|---|---|---|
| MiCA EU Standard | EU (27 countries) | Identity verification + Country allow list + Token supply limit | 8M EUR cap, 365-day rolling window |
| Reg D 506(b) — Private Placement | United States | Identity verification + Country allow list + Investor count | Max 2,000 investors, US only |
| Reg D 506(c) — Accredited Only | United States | Identity verification + Country allow list + Transfer approval | All purchasers must be accredited, 24h approval expiry |
| MAS Singapore — Capital Markets | Singapore | Identity verification + Country allow list + Investor count + TimeLock | Max 50 investors, 180-day holding period |
| UK FCA — Securities | United Kingdom | Identity verification + Country allow list + Investor count | Max 150 investors, UK only |
| Japan FSA — Crypto Assets | Japan | Identity verification + Country allow list + Transfer approval | Japan only, 7-day approval expiry |
| Reg CF — Crowdfunding | United States | Identity verification + Country allow list + Token supply limit | $5M cap, 365-day rolling window |
Templates are system-wide and read-only. Organizations can create custom templates for non-standard jurisdictions or novel instrument structures.

Module index
| Module | Category | Details |
|---|---|---|
| CountryAllowList, CountryBlockList | Geographic restrictions | Country restrictions |
| IdentityAllowList, IdentityBlockList, AddressBlockList | Identity-based access | Identity lists |
| SMARTIdentityVerification | Claim verification with RPN expressions | Identity verification |
| TokenSupplyLimit, InvestorCount | Supply and investor limits | Supply & investor limits |
| TransferApproval | Transfer approval | Transfer approval |
| CappedComplianceModule, CollateralComplianceModule | Supply cap and collateral enforcement | Supply cap & collateral |
| TimeLock | Holding period enforcement | TimeLock |
Where modules apply
| Module | Transfer | Mint | Burn | Pre-check (canTransfer) | Post-hook (transferred) |
|---|---|---|---|---|---|
| Country restrictions | ✓ | ✓ | — | Validates country codes | — |
| Identity verification | ✓ | ✓ | — | Evaluates RPN claim expression | — |
| Identity lists | ✓ | ✓ | — | Checks allow/block lists | — |
| Supply limits | ✓ | ✓ | — | Checks accumulation against cap | Updates rolling window (mint) |
| Investor count | ✓ | ✓ | — | Checks holder count limit | Increments/decrements count |
| Transfer approval | ✓ | — | — | Checks pre-authorization exists | Consumes approval |
| TimeLock | ✓ | — | — | Checks holding period (FIFO) | Records acquisition timestamp |
| Supply cap | ✓ | ✓ | — | Checks circulating supply cap | — |
| Collateral | ✓ | ✓ | — | Verifies ERC-735 collateral proof | — |
Identity & Compliance
Architecture of the DALP identity and compliance system built on ERC-3643 and OnchainID (ERC-734/735). Covers on-chain identity binding, claim-based permissions, compliance engine orchestration, and the two-layer policy model.
Country Restrictions
CountryAllowList and CountryBlockList modules for geographic transfer restrictions. Covers sanctions/OFAC use cases, EU MiCA jurisdiction selection, and ISO 3166-1 country codes.