Skip to main content

ERC-3643 eligibility and allowlist tracking

What it is

ERC-3643 eligibility tracking is keeping a live record of which investors may hold a security token built on ERC-3643, also called T-REX, a token standard that checks an identity registry before every transfer.

Transfer agents and tokenization platforms answer for the register of holders, so they need every registration, removal and freeze on record, and a flag when shares move to or from a wallet they’re watching.

Goldsky decodes the registry’s identity and freeze events and screens transfers against your watch list, writing both to your database; investor checks and registry changes stay with your team.

You can track ERC-3643 eligibility two ways: stream registry events and screened transfers into your own database with Turbo Pipelines, or index the registry in a hosted subgraph.

Who it’s for

Tokenization platforms and transfer agents that keep the register for tokenized funds, shares and bonds.

How ERC-3643 eligibility tracking works

The diagram follows one investor from onboarding through a transfer of shares to your transfer agent’s review of any flag, and shows who does each step. Your setup may differ.

Your business, step 1: Investor onboardsThey want to hold a security token
Your business, step 2: KYC/KYB providerVerify the investorIdentity and eligibility checks pass
Your business, step 3: Register the identityYour agent adds it to the registry
Blockchains, step 4: Registry updatedThe wallet can now receive shares
Blockchains, step 5: Shares change handsThe token checks the registry first
Goldsky, step 6: TurboTrack eligibilityEvery identity change, decoded
Goldsky, step 7: TurboScreen each transferAgainst your live watch list
Your business, step 9: Review any flagYour transfer agent follows up
Goldsky, step 8: TurboStream to your databaseRegistry and flags, kept current
  • Goldsky
  • Your provider

Ways to track ERC-3643 eligibility

Only the pipeline screens transfers against a watch list you change while it runs; a subgraph gives you a hosted register to query, one chain per subgraph, shaped by mapping code you write.

Best for
A register in your own database, with transfers screened
Products
Turbo
What you run
The destination: your database, queue or bucket, or a Postgres database Goldsky hosts
What you write
Pipeline YAML and SQL; TypeScript transforms when needed
Where your data lives
In your own database or systems
How results reach you
Pushed to you
Best for
A hosted register of eligible wallets on one EVM chain
Products
Subgraphs
What you run
Nothing; Goldsky runs indexing, storage and the API
What you write
A schema and mapping handlers, or a no-code or low-code config for simple contracts
Where your data lives
Hosted by Goldsky
How results reach you
You query; changes are pushed

Option 1: Track ERC-3643 eligibility by streaming to your database

A pipeline decodes your security token’s identity and freeze events into your database and screens each transfer against a watch list you keep, so your transfer agent sees every change and every flag.

When to stream ERC-3643 events to your database

You keep the register of holders in your own systems and want identity changes, freezes and flagged transfers beside it as they happen.

What you’ll need

  • Goldsky Turbo
  • An identity verification provider for investor checks
  • An agent role on the token’s identity registry
  • Your token’s contract address and ABI
  • A Postgres database for the watch list
  • A database for the registry history and the flags
  1. Onboard the investor

    A security token can only be held by approved investors, so each one starts by applying.

    Your onboarding team collects the investor’s details and the wallet they’ll hold shares in. Without that link, an approved investor can’t be tied to their wallet later.

  2. Verify the investor

    Securities rules limit who may hold the token, for example by country or investor type, so each investor is checked first.

    Your identity verification provider checks the investor’s identity and eligibility against the token’s rules. A wallet registered before the checks pass lets an ineligible investor receive shares.

  3. Register the identity onchain

    ERC-3643 tokens check an identity registry before every transfer, so a wallet can receive shares only once it’s registered.

    An agent of the token, often the transfer agent, adds the investor’s identity and wallet to the registry. The same role removes or updates the entry when the investor’s status changes.

  4. Confirm the registry change

    Once the change is in a block, the token treats the wallet as eligible and records an event saying so.

    Until enough blocks sit on top of it, a reorg (the chain replacing its newest blocks) can still undo the change.

  5. Let the shares change hands

    Investors transfer their shares, and the token checks the registry and its transfer rules before each one goes through.

    A transfer to an unregistered wallet fails onchain. A transfer between registered wallets still goes through even when one of them is on your internal watch list, which is why you screen it.

  6. Record every eligibility change

    Handled by Goldsky Turbo

    The register has to show who was eligible to hold the token at any point, and examiners ask for those events.

    Each registration, removal, freeze and recovery is decoded with its wallet and block. A missing removal makes a former investor look eligible in your records.

    With Goldsky, a Turbo Pipelines transform decodes ERC-3643 events such as IdentityRegistered, IdentityRemoved, AddressFrozen and RecoverySuccess from your token’s logs.

    See an ERC-3643 event pipeline (opens in a new tab)
  7. Screen each transfer against your watch list

    Handled by Goldsky Turbo

    Your team may want to know when shares move to or from a wallet it’s watching, even when the token allows the transfer.

    The watch list has to change while screening runs, so a wallet added this morning is checked on its next transfer. A list that only updates on redeploy leaves a gap.

    Turbo Pipelines checks both sides of each transfer against a dynamic table with dynamic_table_check, and picks up rows you add to that Postgres table without a redeploy.

    Learn about dynamic tables (opens in a new tab)
  8. Keep the registry and flags current

    Handled by Goldsky Turbo

    Your transfer agent works from one place that shows each wallet’s latest status and every flag.

    Events and flags land in tables keyed on a stable ID, so a retry or a correction replaces a row instead of duplicating it.

    A database sink with a primary_key writes each row as an upsert, so reorg corrections and repeat deliveries update the rows already there.

    How retries and reorgs reach tables (opens in a new tab)
  9. Review each flag

    A flag is a question, not a decision, so someone has to look at it.

    Your transfer agent checks the flagged transfer or change, decides whether it needs action such as a freeze, and records the outcome. A flag nobody reviews shows you were told and didn’t act.

What to know about streaming ERC-3643 events into your database

  • Goldsky runs the pipeline; your transfer agent owns the registry, the watch list and every follow-up.
  • The watch list check asks only whether an address is on the list; anything that needs a join, such as tying two wallets to one owner, happens in your database.
  • You can add to and remove from the watch list while the pipeline runs.
  • Rows keyed on a primary key take reorg corrections as updates and deletes.

Option 2: Track ERC-3643 eligibility with a hosted subgraph

A subgraph indexes your security token’s identity and freeze events into a record per investor wallet, serves the register through a GraphQL API and sends a webhook on each change.

When to use a subgraph for ERC-3643 tracking

Your token runs on one EVM chain per deployment, and you want a hosted register of eligible wallets to query, without screening transfers against a separate watch list.

What you’ll need

  • Goldsky Subgraphs
  • An identity verification provider for investor checks
  • An agent role on the token’s identity registry
  • Your token’s contract address and ABI
  • An endpoint for change webhooks
  1. Onboard the investor

    A security token can only be held by approved investors, so each one starts by applying.

    Your onboarding team collects the investor’s details and the wallet they’ll hold shares in. Without that link, an approved investor can’t be tied to their wallet later.

  2. Verify the investor

    Securities rules limit who may hold the token, for example by country or investor type, so each investor is checked first.

    Your identity verification provider checks the investor’s identity and eligibility against the token’s rules. A wallet registered before the checks pass lets an ineligible investor receive shares.

  3. Register the identity onchain

    ERC-3643 tokens check an identity registry before every transfer, so a wallet can receive shares only once it’s registered.

    An agent of the token, often the transfer agent, adds the investor’s identity and wallet to the registry. The same role removes or updates the entry when the investor’s status changes.

  4. Confirm the registry change

    Once the change is in a block, the token treats the wallet as eligible and records an event saying so.

    Until enough blocks sit on top of it, a reorg (the chain replacing its newest blocks) can still undo the change.

  5. Let the shares change hands

    Investors transfer their shares, and the token checks the registry and its transfer rules before each one goes through.

    A transfer to an unregistered wallet fails onchain. A transfer between registered wallets still goes through even when one of them is on your internal watch list, which is why you screen it.

  6. Index every eligibility change

    Handled by Goldsky Subgraphs

    Each registration, removal, freeze and recovery changes what one investor may do, so each has to update that investor’s record.

    Every event is decoded and applied to the wallet it names. A missing removal makes a former investor look eligible.

    A Goldsky subgraph’s mapping handles each registry and freeze event and updates the record for that wallet, so it holds the investor’s current status.

    See a holder registry on subgraphs (opens in a new tab)
  7. Look up the register

    Handled by Goldsky Subgraphs

    Your transfer agent and apps need any wallet’s status, now or at a past date.

    The register has to answer by wallet and by date. One that only shows today’s status can’t tell an examiner who was eligible last quarter.

    The subgraph serves each wallet’s record through GraphQL, and because it keeps every version of a record, a query can return the register as it stood at an earlier block.

    Learn about hosted subgraphs (opens in a new tab)
  8. Tell your transfer agent about each change

    Handled by Goldsky Subgraphs

    Changes such as a freeze or a removal may need follow-up, so they have to reach the team that acts on them.

    Each change goes to the endpoint your transfer agent’s tools watch. A rollback after a reorg arrives as another change, which the receiver applies instead of treating as new.

    Subgraph webhooks post each changed record to your endpoint, with the block range that tells a rollback apart from a real change.

    How subgraph webhooks report changes (opens in a new tab)
  9. Review each flag

    A flag is a question, not a decision, so someone has to look at it.

    Your transfer agent checks the flagged transfer or change, decides whether it needs action such as a freeze, and records the outcome. A flag nobody reviews shows you were told and didn’t act.

What to know about tracking ERC-3643 eligibility with a subgraph

  • One subgraph covers one chain, so a token on several chains needs one for each.
  • You write the mapping that turns events into investor records, so the register’s fields are yours to define.
  • Screening transfers against a list you change at runtime isn’t part of this way, and stays with your own systems.
  • Webhooks include rollbacks after a reorg, and your receiver has to apply them.

What you control

Your team
  • Onboard the investor
  • Register the identity onchain
  • Review each flag
Your providers
  • KYC/KYB provider

Security and deployment

  • SOC 2 Type IIIndependently audited security controls.
  • Dedicated infrastructureSingle-tenant options for production workloads.
  • Data residencyCloud, on-premises or co-located.

Track ERC-3643 eligibility with Goldsky

We’ll map it to your systems and show you what Goldsky runs, so your team builds the product, not the pipelines underneath it.

© Endless Sky Inc. All rights reserved.

PrivacyTermsSecurity

System status