OpenZeppelin and ERC-3643: how a security token is built
What OpenZeppelin libraries and ERC-3643 controls provide, and what a securities issuance also requires: rights, permissions, operations and review.

A tokenized securities platform needs contracts that represent the instrument and apply the conditions governing its operations. Some functions can use existing components, while others depend on the issuance’s legal and operational design. OpenZeppelin and ERC-3643 contribute to different parts of that work.
OpenZeppelin provides reusable smart contract components. ERC-3643 defines a token architecture with identity and transfer controls. Understanding each one’s scope helps determine what can be reused and what the team needs to configure or develop; adopting them does not certify the product or independently guarantee compliance.
What OpenZeppelin provides
OpenZeppelin Contracts supplies reusable token implementations and access controls. Reviewing a library does not automatically cover a project's modifications, configuration, proxies or integrations. Each audit report has a specific version and scope.
A basic ERC-20 describes a balance and transfer interface. A regulated issuance may need additional restrictions, holder identity, recovery and administration. The technical standard alone does not determine investor rights.
What ERC-3643 specifies
The ERC-3643 specification describes permissioned tokens with identity registries, claims from trusted third parties and transfer controls. The system checks configured conditions before allowing certain operations.
This does not mean publishing complete identity documents on a public network. Design which data stays off-chain, who issues claims, when they expire and how they are revoked. An incorrect claim can pass a technical check without reflecting reality.
Identity, rules and administration
- Identify who may issue, pause, recover tokens or modify rules.
- Test permitted and rejected transfers, revocations and expiry.
- Document the relationship between wallet, identified holder and legal register.
- Separate legal approval, contract review and system operation.
Evaluating alternatives
ERC-1400 proposes a family of interfaces with partitions and transfer controls. It should not be described as necessarily off-chain or cheaper without evaluating a concrete implementation. Standardisation alone does not demonstrate a product's adoption, quality or compliance.
Compare required functions, maintained implementations, audits of specific versions, administrative permissions and integration tests. Measure gas costs using equivalent operations and conditions.
What a transfer checks
The ERC-3643 specification separates receiver identity verification through isVerified from global rules checked through canTransfer. Ordinary transfers also check available balance, freezes and pause state. Other functions do not necessarily follow the same path: mint and forcedTransfer bypass the global compliance rules described for transfer, while still verifying the receiver; burn bypasses eligibility checks.
This distinction requires tests for each operation. For an engineering example, if the project configures a position limit, assess both ordinary purchases and administrative issuance that increases a balance. Testing transfer alone does not establish that all privileged actions respect the agreed design. Any additional controls required must be implemented and documented.
An interface pre-check does not reserve network state either. Balances or permissions may change between the query and execution. The frontend should explain rejection, refresh its information and avoid presenting a successful simulation as a completed operation.
An acceptance scenario for recovery and permissions
Suppose a holder loses access to a wallet. The process needs to validate the request, authorise the replacement address and execute the agreed recovery. Afterwards, check balances, linked identity, restrictions and operational evidence. Tests must also establish that an unauthorised request cannot produce the same result.
This is an integration test proposal, not a universal legal procedure. The team needs to identify who provides evidence and who has execution permission. A correct administrative function cannot compensate for incorrect identity verification outside the network.
OpenZeppelin supports organising permissions through access controls. Assessment should cover who can grant new permissions as well as who currently holds them. Separating operational roles achieves little if one account can reassign every role to itself without controls.
Deliverables should identify deployed versions and configuration, administrative responsibilities and the results of transfer, freeze and recovery tests. This connects each function to a requirement and makes changes introduced by an upgrade reviewable.
Applying this to an issuance
MiCA excludes crypto-assets that qualify as financial instruments. Choosing ERC-3643 does not authorise an issuance or replace analysis of securities, distribution or custody requirements. Architecture should implement the requirements derived from the legal design and document its limits.
Got a blockchain project in mind?
From idea to product, strategy and technology must move forward together.







