Skip to content


Repository files navigation

Token-Curated Registry

Codeship Status for skmgoldin/tcr

A hash-keyed token-curated registry (TCR). Owner's Manual available.

Mainnet factory: 0x74bd1d07a158e8a9eecfbd2267766f5919e2b21c

Rinkeby factory: 0x2bddfc0c506a00ea3a6ccea5fbbda8843377dcb1

EPM: tcr


The only environmental dependency you need is Node. Presently we can guarantee this all works with Node 8.

npm install
npm run compile


The repo has a comprehensive test suite. You can run it with npm run test. To run the tests with the RPC logs, use npm run test gas.

Composition of the repo

The repo is composed as a Truffle project, and is largely idiomatic to Truffle's conventions. The tests are in the test directory, the contracts are in the contracts directory and the migrations (deployment scripts) are in the migrations directory. Furthermore there is a conf directory containing json files where deployments can be parameterized.

Deploying your own TCR

Since v1.1.0, only the factory contracts are deployed during truffle migrate. To deploy a RegistryFactory to any network you can use the NPM scripts in the package.json. To deploy to a local Ganache instance, set an environment variable MNEMONIC to the mnemonic exposed by Ganache. To spawn proxy contracts using a deployed RegistryFactory, execute the snippet in /scripts by running:

npm run deploy-proxies:[network]


The repo consumes several EPM packages. dll and attrstore are libraries used in PLCRVoting's doubly-linked list abstraction. tokens provides an ERC20-comaptible token implementation. plcr-revival features batched executions for some transactions. All packages are installed automatically when running npm install.