web3wagmi
← All standards

ERC-3643 T-REX - Token for Regulated EXchanges

FinalERCcreated 2021-07-09requires ERC-20, ERC-173

An institutional grade security token contract that provides interfaces for the management and compliant transfer of security tokens.

Authors: Joachim Lebrun (@Joachim-Lebrun), Tony Malghem (@TonyMalghem), Kevin Thizy (@Nakasar), Luc Falempin (@lfalempin), Adam Boudjemaa (@Aboudjem)

ERC-165 interface ids

Computed here as the XOR of the selectors each interface defines.

IERC36430xb97d944c

Functions this standard introduces (28)

0x4a6cc677batchBurn(address[],uint256[])
0x42a47abcbatchForcedTransfer(address[],address[],uint256[])
0xfc7e5fa8batchFreezePartialTokens(address[],uint256[])
0x68573107batchMint(address[],uint256[])
0x1a7af379batchSetAddressFrozen(address[],bool[])
0x88d695b2batchTransfer(address[],uint256[])
0x4710362dbatchUnfreezePartialTokens(address[],uint256[])
0x9dc29facburn(address,uint256)
0x6290865dcompliance()view
0x9fc1d0e7forcedTransfer(address,address,uint256)
0x125c4a33freezePartialTokens(address,uint256)
0x158b1a57getFrozenTokens(address)view
0x134e18f4identityRegistry()view
0xe5839836isFrozen(address)view
0x40c10f19mint(address,uint256)
0xaba63705onchainID()view
0x8456cb59pause()
0x5c975abbpaused()view
0x9285948arecoveryAddress(address,address,address)
0xc69c09cfsetAddressFrozen(address,bool)
0xf8981789setCompliance(address)
0xcbf3f861setIdentityRegistry(address)
0xc47f0027setName(string)
0x3d1ddc5bsetOnchainID(address)
0xb84c8246setSymbol(string)
0x1fe56f7dunfreezePartialTokens(address,uint256)
0x3f4ba83aunpause()
0x54fd4d50version()view

Inherited (9)

0xdd62ed3eallowance(address,address)ERC-20
0x095ea7b3approve(address,uint256)ERC-20
0x70a08231balanceOf(address)ERC-20
0x313ce567decimals()ERC-20
0x06fdde03name()ERC-20
0x95d89b41symbol()ERC-20
0x18160dddtotalSupply()ERC-20
0xa9059cbbtransfer(address,uint256)ERC-20
0x23b872ddtransferFrom(address,address,uint256)ERC-20

Optional extensions (6)

Interfaces the spec defines alongside the core one, which an implementation may or may not carry.

IAgentRole0x0cba0fa8

0x84e79842addAgent(address)
0x97a6278eremoveAgent(address)
0x1ffbb064isAgent(address)

IIdentityRegistry

0xf11abfd8identityStorage()
0xb4f3fcb7issuersRegistry()
0x3b3e12f4topicsRegistry()
0x26d941aesetIdentityRegistryStorage(address)
0x670af6a9setClaimTopicsRegistry(address)
0xe744d789setTrustedIssuersRegistry(address)
0xa8d29d1ddeleteIdentity(address)
0x3b239a7fupdateCountry(address,uint16)
0x5dbe47e8contains(address)
0xb9209e33isVerified(address)
0xf0eb5e54identity(address)
0x7e42683binvestorCountry(address)

IIdentityRegistryStorage

0x7988d3a5storedIdentity(address)
0x727e13bcstoredInvestorCountry(address)
0xcf191bcdremoveIdentityFromStorage(address)
0x9f3418d5modifyStoredInvestorCountry(address,uint16)
0x690a49f9bindIdentityRegistry(address)
0x97a012f7unbindIdentityRegistry(address)
0xbf9eb959linkedIdentityRegistries()

ICompliance0x3144991c

0x3ff5aa02bindToken(address)
0x40db3b50unbindToken(address)
0x993e8b95isTokenBound(address)
0x6a3edf28getTokenBound()
0xe46638e6canTransfer(address,address,uint256)
0x8baf29b4transferred(address,address,uint256)
0x5f8dead3created(address,uint256)
0x8d2ea772destroyed(address,uint256)

ITrustedIssuersRegistry

0xd9dd24c5getTrustedIssuers()
0xef2ed1a4isTrustedIssuer(address)
0x52c111d1getTrustedIssuersForClaimTopic(uint256)
0x34a89987hasClaimTopic(address,uint256)

IClaimTopicsRegistry0x10928b13

0xc7b22551addClaimTopic(uint256)
0x08297846removeClaimTopic(uint256)
0xdf09d604getClaimTopics()

Events (22)

Topic0 is the keccak256 hash of the signature, which is what a log filter matches on.

0xf68e73cec97f2d70aa641fb26e87a4383686e2efacb648f2165aeb02ac562ec5AgentAdded(address)
0xed9c8ad8d5a0a66898ea49d2956929c93ae2e8bd50281b2ed897c5d1a6737e0bAgentRemoved(address)
0x6a1105ac8148a3c319adbc369f9072573e8a11d3a3d195e067e7c40767ec54d1UpdatedTokenInformation(string,string,uint8,string,address)
0xd2be862d755bca7e0d39772b2cab3a5578da9c285f69199f4c063c2294a7f36cIdentityRegistryAdded(address)
0x7f3a888862559648ec01d97deb7b5012bff86dc91e654a1de397170db40e35b6ComplianceAdded(address)
0xf0c9129a94f30f1caaceb63e44b9811d0a3edf1d6c23757f346093af5553fed0RecoverySuccess(address,address,address)
0x7fa523c84ab8d7fc5b72f08b9e46dbbf10c39e119a075b3e317002d14bc9f436AddressFrozen(address,bool,address)
0xa065e63c631c86f1b9f66a4a2f63f2093bf1c2168d23290259dbd969e0222a45TokensFrozen(address,uint256)
0x9bed35cb62ad0dba04f9d5bfee4b5bc91443e77da8a65c4c84834c51bb08b0d6TokensUnfrozen(address,uint256)
0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258Paused(address)
0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aaUnpaused(address)
0x7170bf15b246e880b2369cd7c67d057760d8a35149e8c64dde91efa22bcc76d0ClaimTopicsRegistrySet(address)
0x2fa8b95c1db7afe99e3398f3792f008135cedc1fa26b0bb2ecd2352cd166d53cIdentityStorageSet(address)
0x1b98cb79e6f73020175fe87333f1b91ad6a881519c0afe30340c2599b2b4bde0TrustedIssuersRegistrySet(address)
0x04ed3b726495c2dca1ff1215d9ca54e1a4030abb5e82b0f6ce55702416cee853CountryUpdated(address,uint16)
0x20965fcdc6eed7ae398065b40ece4e732ba667992ca819fc54e80e9f2047c4cfCountryModified(address,uint16)
0x500c250171aa20e861b680f93502547b9d436eda7d4c537fc360db6e0c6eedfbIdentityRegistryBound(address)
0x51f353eb5801583fdf2706e43c045b62fdf6b1566820b349390616363ecf72c9IdentityRegistryUnbound(address)
0x2de35142b19ed5a07796cf30791959c592018f70b1d2d7c460eef8ffe713692bTokenBound(address)
0x28a4ca7134a3b3f9aff286e79ad3daadb4a06d1b43d037a3a98bdc074edd9b7aTokenUnbound(address)
0x01c928b7f7ade2949e92366aa9454dbef3a416b731cf6ec786ba9595bbd814d6ClaimTopicAdded(uint256)
0x0b1381093c776453c1bbe54fd68be1b235c65db61d099cb50d194b2991e0eec5ClaimTopicRemoved(uint256)

Depends on (2)

Proposals this one names in its requires field.

What the specification covers

Compare with

Parsed from the canonical specification · discussion