For the complete documentation index, see llms.txt. This page is also available as Markdown.

Changelog

The versions of the two codebases these docs describe, and what each one changed. The full history, entry by entry, is in the CHANGELOG.md of each repository.

Codebase
Version
Repository
Package

T-REX: token suite, compliance, cross-chain endpoint

5.0.0

@t-rex-network/t-rex

ONCHAINID: identity layer

3.0.0

@t-rex-network/onchainid

Both are licensed under GPL-3.0 and built with Foundry, on Solidity 0.8.30.

T-REX 5.0.0

Version 5 keeps the ERC-3643 interfaces and rebuilds the suite around them. What an existing integration has to check is in Coming from ERC-3643 v4.

Area
Change

Structure

Each suite contract is a standard ERC-3643 base extended by a T-REX contract. State is kept in ERC-7201 namespaces

Registry

One TREXRegistry carries the identity registry, the claim topics and the trusted issuers. Required topics can be set per identity type

Identity

An address resolves through a registration of the asset or through the global link of the IdentityFactory. An ONCHAINID can hold tokens itself, and can move the tokens of its wallets with identityTransfer

Compliance

Modules declare a type, RULE, SPENDER or TRACKER, and receive a TransferContext. The compliance keeps a ledger of positions per identity

Spenders

An asset can restrict who may execute transferFrom, with SPENDER modules

Access control

Roles in a TREXAccessManager, per domain, replace the owner and the list of agents

Deployment

Suites are deployed through CREATE3 at addresses derived from a salt. An isolated suite has its own beacons

Upgrades

Versions are published and the shared beacons move forward to them

Cross-chain

Routes and peers per chain, ERC-7786 messaging, validations issued on the reference chain and settled from satellites, bridged positions in the token's ledger

Tools

UtilityChecker for pre-flight reads. Errors as custom errors in ErrorsLib

Country

The registry stores no country: investorCountry returns 0

ONCHAINID 3.0.0

Version 3 is a new architecture, built with OpenZeppelin. It is a new deployment: it is not compatible with the storage or the interfaces of 2.x.

Area
Change

Account

The identity is an ERC-7579 modular smart account, with ERC-4337 user operations and ERC-7913 signers: externally owned accounts, ERC-1271 contracts, passkeys, RSA keys

Modules

Keys and claims live in the shared ERC734Validator. The execute and approve queue lives in the KeyApprovalModule

Keys

Two purposes are added: CLAIM_ADDER and PROPOSER. A key is identified by the hash of its signer bytes

Claims

A claim carries issuedAt and validUntil, is signed as ERC-712 typed data in the domain of the issuer's identity, and is revoked by digest. getClaimStatus gives the reason a claim is not valid

Claim Issuers

A Claim Issuer is an identity of type CLAIM_ISSUER. The ReputationRegistry gates adding claims without a key grant

Factory

IdentityFactory replaces IdFactory. Identities are typed, each type has a policy and a set of modules, and identities are beacon proxies at CREATE3 addresses

Wallets

Wallets are linked as ERC-7930 addresses, on any chain, with a signature or a cross-chain proposal. A link can be revoked, and a revocation is final

Recovery

RecoveryModule: weighted Guardians, a delay, and cancellation before execution

Attestations

EASClaimIssuer reads attestations of the Ethereum Attestation Service as claims

Removed

Gateway, Verifier, the standalone ClaimIssuer, ImplementationAuthority, IdentityProxy

The audit of this version is listed in Audits and verification.

Earlier versions

T-REX 4.x and ONCHAINID 2.x are described in the CHANGELOG.md of each repository. These docs do not cover them.

Last updated