Architecture assessment
What to build, what to buy, and what stays in your account.
A tokenization stack has a few parts worth writing yourself and a great many that have
been written before. This page is about drawing that line for your case: which layers
your customers can actually tell apart, which ones you would be re-deriving at your own
cost, where key authority and control boundaries have to sit, and how much of Tokenistry
a given scope really requires. It is a decision page — for how the modules behave once
the decision is made, see technology.
The line between product and infrastructure
The useful question is not which components exist but which of them a customer could ever
choose you for. Everything above that line is worth your engineers. Everything below it is
identical across every issuer who has built it, which is precisely what makes it a poor
use of a team that could be shipping the part nobody else has.
architecture // where each layer belongs
| Layer |
Who should own it |
Reasoning |
| Investor experience, subscription, documents, payments |
You |
This is the product. It carries your commercial model and it is the only layer a customer experiences directly. Nothing here is reusable, and nothing here should be bought. |
| Issuer and back-office workflows |
You, mostly |
Specific to how you run an issuance and how your operations team is structured. Buying it means adopting someone else's operating model by accident. |
| Eligibility decisions — KYC, AML, classification, jurisdiction |
You or your regulated vendors |
Whether an investor may hold is a regulated judgment with an accountable owner. Software should consume that decision, never make it. Infrastructure's job starts once the answer exists. |
| Ownership arithmetic — lots, FIFO consumption, lineage |
Buy |
Deterministic, identical across issuers, and the failure mode is silent: a position that is wrong but plausible. This is the layer where reusable, heavily exercised logic is worth the most and shows the least. |
| Transaction orchestration — queue, signing, nonces, confirmation |
Buy |
No customer will ever pick you for it, and it takes the longest to make dependable. The happy path is two weeks; the failure paths are the program. |
| Chain ingestion, normalization, reorg handling |
Buy |
Same shape as above, with the added cost that it is never finished — providers change, chains fork, and the code has to keep pace whether or not you are shipping features. |
| Token contracts and on-chain transfer restriction |
Buy the implementation, hold the authority |
Standards exist and bespoke contracts are risk without differentiation. What must not be delegated is the admin and upgrade authority over deployed tokens. |
| Chain, RPC and signing adapters |
Neither — it should be invisible |
Not a product and not worth a team. Adapters exist so the layers above them are chain-agnostic, which is what makes a second network an adapter rather than a rewrite. |
| Keys, database, cloud account, RPC credentials |
You, without exception |
These are the assets your control framework already covers. A vendor holding any of them converts a software decision into a counterparty exposure. |
What building it actually commits you to
Build-versus-buy goes wrong when the estimate is made against the demo. Issuing a token
and moving it between two wallets is two weeks' work and it convinces everyone in the
room. The commitment being made is to everything after that: an operation that must settle
exactly once however many times it is retried, nonces that stay correct while several
workers submit concurrently, indexed state that retracts cleanly when a block is
reorganized, and ownership that reconciles against the chain rather than drifting quietly
away from it.
None of that is exotic, and that is rather the point — it is well-understood work that
simply has to be done carefully, which makes it expensive in exactly the way that is hard
to justify in a roadmap. It is also permanent: chains fork, providers degrade, standards
move, and the team that owns this layer is never released from it. The
failure behavior on the technology page is a
reasonable specification to hold any build to, including your own.
A test worth applying before committing. Take the layer you are
planning to build and ask what happens on the day your RPC provider starts rate-limiting
mid-issuance, or a worker is rescheduled between signing a transaction and seeing its
receipt. If the answer is a design discussion rather than a behavior somebody can
describe, the estimate is for the demo rather than the system.
Custody and key boundaries
The question is not whether you trust a vendor. It is which process is able to produce a
signature, and what that signature is able to authorize. Those two answers determine your
blast radius, and they are worth settling before anything is deployed, because they are
expensive to change afterwards.
Two key roles, deliberately separated
- Token authority — mint, burn, freeze, forced transfer, roles. Compromise here moves investor assets.
- Gas payers — fund and submit transactions. Compromise here costs money and nothing else.
These must not sit in the same process. In Tokenistry Core the Tokenization Engine
holds the authority key and the Transaction Engine holds gas-payer keys, and neither
is able to read the other's. Whatever you build or buy, insist on that split: a
relayer that can also freeze an investor is an incident waiting for a cause.
Where the signature is produced
In both engines signing sits behind an interface, so which backend holds a key is a
deployment decision rather than a rewrite. That is the property to insist on: a stack
that hard-codes a local key has decided your custody model for you.
- Gas payers — an AWS KMS signer is implemented and selected by configuration. It is a build-time option that released images are not currently compiled with, so using it means a build that enables it.
- Token authority — the same interface, with no external backend behind it yet. What ships is an encrypted keystore, unlocked with a passphrase from your secret manager.
- Tokenistry as a company holds no customer keys and has no path into a production deployment.
- Contract admin and upgrade authority are yours, so no vendor release can alter a deployed token.
Note the asymmetry, because it is the wrong way round: the key that can only spend gas
is the one that can already be externalized, while the key that can freeze or move an
investor's position is the one still held in process. If your control framework
requires that key to be non-exportable, treat it as scoped work with a known shape —
the seam exists — and price it in the assessment rather than assuming a flag.
Compliance and transaction architecture
Two decisions here tend to be made implicitly and then become structural. Both are worth
making on purpose.
Where enforcement lives
A permission check in the application in front of the token is only as good as the
guarantee that every transfer goes through that application — a guarantee that erodes
the moment a back-office tool, a migration script or a later integration needs direct
access. A restriction enforced inside the token applies to every transfer regardless of
who initiated it.
The cost is real and should be priced rather than waved through: on-chain enforcement
means a registry to keep synchronized and a governed upgrade path for the contract
logic. That is a smaller problem than an unenforceable rule, but it is not nothing.
Where the decision is made
Eligibility is a judgment your KYC, AML and classification systems own, with a named
accountable party behind it. Infrastructure's job is to turn that judgment into
on-chain permission and keep the two synchronized — never to encode jurisdiction logic
in a token where changing it is a deployment.
The invariant that matters: permission should be derived from current eligibility
relationships rather than accumulated from historical grant and revoke commands. If an
investor qualifies through two routes, losing one must not silently revoke access still
granted by the other.
Synchronous calls are the retrofit you cannot afford
Chain latency is unbounded and confirmation is revocable until finality. Any user-facing
flow written as a synchronous call into a chain will work in testing and fail in
production, and converting it later is a rewrite of everything built on top.
Decide early that business operations are durable records with lifecycle state, and that
the chain is something they reconcile against rather than something they wait on. That
single choice determines whether reliability is a property of the design or a permanent
source of incidents.
Deployment and control boundaries
Multi-tenant infrastructure is a reasonable default in most of software and a poor one
here, because the things it would hold — signing keys, investor data, the ownership ledger
— are exactly the things your regulator, your auditor and your board already have a
framework for. Single-tenant deployment into your own cloud account is not a hardening
measure; it is what keeps the vendor out of your regulatory surface entirely.
Stays in your account, always
- signing keys and the secret manager holding their passphrases
- investor data and the ownership ledger database
- RPC credentials and any custody workspace
- backups, retention, IAM and network policy
The question to ask any vendor
If this vendor is unreachable tomorrow — outage, dispute, acquisition, insolvency —
what stops? If the honest answer includes settlement, investor access or your ability
to read your own ownership records, the boundary is in the wrong place, and no
contractual term repairs it.
For Tokenistry the answer is that nothing stops: there is no vendor control plane in
the data path, no inbound access into a production deployment, and license validation
is an offline signature check rather than a call home. That claim is worth demanding
from anyone, and worth testing rather than accepting.
Which modules a given scope actually needs
Buying all five is usually the wrong answer, and the most useful outcome of an assessment
is often a shorter list than the one it started with. Scope drives selection.
architecture // module selection by scope
| If your scope is |
You need |
Notes |
| Issue and administer tokens, operator-driven, low volume |
Tokenization Engine |
Stands alone, and includes the contract suite, the compliance registry and the transfer controls. For many first deployments this is the whole purchase. |
| Investor-facing flows, volume, retries, confirmation tracking |
+ Transaction Engine |
Worth separating once submission stops being something an operator can watch. Below that threshold it is complexity you are not yet using. |
| Positions, history or chain state surfaced inside your product |
+ Indexing Engine |
Normalized chain state that other modules read, so each one is not polling the chain and deriving its own view of it. |
| Effective ownership, lots, lineage, redemptions, reconciliation |
+ Investment Ledger |
Depends on indexed chain state and is deployed together with the Indexing Engine. This is the module carrying the most reusable domain logic. |
| Who may hold, across many tokens and investor relationships |
Eligibility & Whitelisting |
Contract-level lists and per-transfer enforcement ship inside the Tokenization Engine today. The pool model — many-to-many eligibility with derived permission and synchronization workers — is roadmap rather than shipping, and is scoped as co-funded build. |
What this layer does not cover
Stated plainly, because discovering it during implementation is expensive and discovering
it during an audit is worse.
Not in the infrastructure
- KYC, AML and investor classification — decided by your systems or vendors
- payments, fiat movement and settlement of cash legs
- investor onboarding, documents and CRM
- legal structuring and regulatory advice of any kind
- acting as your custodian or holding assets on your behalf
Not shipping today
- non-EVM networks — EVM chains only, further networks are adapter work driven by an engagement
- external signing for the token authority key — the interface exists, the backend does not; KMS signing for gas payers is implemented but not compiled into released images
- the eligibility pool model, as described above
- an external smart-contract audit — the contracts are tested extensively but not third-party audited
Anything in the right-hand column is scoped and priced work rather than a switch, and it
belongs in the assessment where it can be costed against your timeline. A vendor who
answers every capability question with yes is describing a roadmap, not a deployment.
What an architecture review produces
A written deliverable rather than a proposal, and deliberately separable from any license —
it is worth doing on its own if the conclusion is that you build, or that you need less
than you came in expecting.
- a boundary map of your intended stack, layer by layer
- a build, buy or defer recommendation for each layer, with reasoning
- key topology: which process signs what, and the blast radius of each
- deployment and control model against your existing cloud and IAM
- module selection, including what you do not need
- gaps that are scoped work rather than configuration, named as such
- where dedicated engineering capacity still adds value
- the parts of the decision that are reversible, and the parts that are not