Centrifuge is an open, decentralized network to connect the global financial supply chain. It allows any business, no matter how big or small, to transact on a global scale while maintaining ownership of their data, including their validated company details, their reputation, business relationships, and subsequent transactions. Centrifuge consists of a peer-to-peer network for decentralized data exchange, combined with a set of smart contracts on Ethereum for document notarization, maintenance of corporate identity, and the ability for Dapps to interact with documents in the form of non-­fungible tokens (NFTs).

We set out on our mission to change the rules of global trade beginning of 2018. Since then, we refined our thoughts on how businesses interact in an open and decentralized ecosystem in our whitepaper and worked with partners on different use-cases. But most importantly, we have been working very hard at the first version of the technical underpinnings of Centrifuge. Today, we are releasing the source code for our Centrifuge Node implementation (written in Go) and our smart contracts that power this P2P network in a release codenamed Russian Hill.

Ship Early and Ship Often

The version we are releasing today is the first implementation of Centrifuge OS which has been under development for the past 8 months. This version is an early development release previewing some of the things we are working on. It has been tested by partners, service providers as well as large corporates. We are very thankful to our partner community for their support and the feedback we’ve received so far.

If you can’t wait, just head over to https://developer.centrifuge.io to get started using Centrifuge and have a look at our code to join our development efforts.

The First Alpha Release

We are open sourcing the code of the Centrifuge Node as well as our contracts that run on Ethereum. This release focuses on an MVP for our off-chain document consensus between peers and minting NFTs based on these off-chain assets. Development of our node and these contracts will from now on happen in our public repositories on Github.

The smart contracts released today consist of three components:

Centrifuge identities: self-sovereign identities for businesses, so that any active participant in the network is able to create their identity to manage the keys used on the P2P network

Anchor repository: used for document notarization by committing the state root of each P2P transaction

NFT Registry: the registry contract used to create payment obligation NTFs based on off-chain documents.

The go-centrifuge P2P node released today implements the following features:

Along with the open source release, we are are launching the first alpha test net called Russian Hill. Please note that this is an alpha release and shouldn’t be considered anything close to production ready. The code has not undergone an external formal review and is going to change substantially over the coming months. Don’t use it for any confidential or business-critical information. We will be making backward incompatible changes over the coming months and might stop supporting the current smart contracts at any point in time.

Using Centrifuge

With this release, you will be able to install a Centrifuge Node and connect it to the Rinkeby test net. You can use the Centrifuge node to interact with the alpha release of our contracts to register your Centrifuge identity. Once your node and identity are set up, a simple REST API is available on the node to interact with other members in the network to transact. This simple REST API abstracts away the P2P communication and interactions with Ethereum.

Documents exchanged on the P2P layer are cryptographically hashed during each exchange. The resulting fingerprints are signed with the keys registered of Centrifuge Nodes and then stored as “anchors” on Ethereum for notarization and later possibility of document state validation. You can use an endpoint on the node to mint an NFT from a private off-chain document. All of this is described in our developer documentation at developer.centrifuge.io

Build with Centrifuge

Leading up to this release, the business network crossinx was operating a set of nodes for their users exchanging documents through the Centrifuge P2P network. Participating companies, among them one of the largest chemical companies in the world, are able to verify their entire document trail via the Ethereum blockchain and the Centrifuge network.

Together with the insurance provider Hokodo, we also built an integration of the decentralized Centrifuge network with on-demand trade credit insurance to insure invoices against the possibility of non-payment by a customer.

Another core feature of this milestone is the NFT registry contract implemented as described in our paper on Privacy Enabled NFTs. Such an asset can be used to access capital on decentralized finance products such as Dharma. In collaboration with Dharma, we recently completed a first integration of Dharma and Centrifuge on the Kovan test net.

Looking Into the Future

This is one of many steps towards our upcoming beta launch. We will be making continuous updates to our codebase and invite the community to use Centrifuge OS, our code, test it out and contribute to the project. The focus will be on extending the feature set of our P2P exchange, increasing certain security features and improving the usability both for users and developers.

To quote Reid Hoffman,

“If you are not embarrassed by the first version of your product, you’ve launched too late.”

We are looking forward to your feedback, thoughts, and comments. Please join us on Slack for further discussions and feedback. This is the first release of many more to come and we look forward to working with you to make the next releases even better, more relevant, and finally launch a strong basis for an inclusive, decentralized financial supply chain of the future.