Canonical asset registry for tokenized securities on Robinhood Chain.
The Setra Registry is the authoritative on-chain registry for all tokenized equity (sEquity) tokens deployed on Robinhood Chain. Every tokenized security must be registered here before it can participate in the Setra settlement protocol.
- UUPS Upgradeable — Future-proof architecture with owner-controlled upgrades
- Authorized Issuers — Only whitelisted issuers can register new assets
- Registration Fees — Configurable fee for asset registration (anti-spam)
- ISIN/CUSIP Identifiers — Full support for international securities identification
- Pagination — Gas-efficient paginated queries for large registries
- Reverse Lookups — Token address → ISIN and ISIN → token address mappings
- Batch Queries — Check registration status of multiple ISINs in a single call
┌──────────────────┐
│ RegistryProxy │ ← ERC1967 Proxy (immutable address)
│ (ERC1967) │
└────────┬─────────┘
│ delegatecall
▼
┌──────────────────┐
│ RegistryV2 │ ← Current implementation
│ (UUPS) │
├──────────────────┤
│ RegistryStorage │ ← Shared storage layout
├──────────────────┤
│ IRegistry │ ← Interface
└──────────────────┘
# Install dependencies
forge install
# Build
forge build
# Run tests
forge test -vvv
# Deploy (set env vars first)
forge script script/DeployRegistry.s.sol --rpc-url $RPC_URL --broadcast
# Upgrade to V2
forge script script/UpgradeToV2.s.sol --rpc-url $RPC_URL --broadcastDEPLOYER_PRIVATE_KEY= # Deployer private key
ROBINHOOD_RPC_URL= # Robinhood Chain RPC endpoint
REGISTRY_PROXY= # Proxy address (for upgrades)
ETHERSCAN_API_KEY= # For contract verification| Contract | Address | Network |
|---|---|---|
| RegistryProxy | TBD |
Robinhood Chain |
| RegistryV2 (impl) | TBD |
Robinhood Chain |
| RegistryStorage | — | (inherited) |
- Paginated asset queries (
getAssetsPaginated,getActiveAssetsPaginated) - Batch registration checks (
batchIsRegistered) - Duplicate token address prevention
- Custom errors throughout (no string reverts)
- Reinitializer pattern for safe upgrades
- Only the contract owner can authorize/deauthorize issuers
- Only the contract owner can upgrade the implementation
- Only the contract owner can deactivate/reactivate assets
- ISIN validation enforces 12-character format
- Registration requires payment of the configured fee
BUSL-1.1