Code

A listing of CorDapps, community projects and core code. If you have an open-source CorDapp or project that you would like to feature here, get in touch at [email protected].

 

Community CorDapps

  • Cordite (developed by bluebank) (unreleased) – Cordite is an open sourced CorDapp that provides decentralised economics and governance services. It is founded by three key concepts, the DGL (distributed general ledger), the DAO (decentralised autonomous organisation) and Metering. Cordite is regulatory friendly, enterprise ready and finance grade. To find out more, please reach out on the #cordite channel on slack.corda.net
  • Project Ubin (development managed by Accenture) – Ubin Phase 2 is a collaborative design and rapid prototyping project, exploring the use of Distributed Ledger Technologies (DLT) for Real-Time Gross Settlement

 

Community Corda projects

  • Braid (developed by bluebank) – Braid is a high performance reactive RPC library for exposing your flows and services in a secure way, with very little code, and to consume them in multiple languages and runtimes such as Javascript on NodeJS
  • NodePad (developed by Fred Mastot and Viktorija Trubaciute) – NodePad is a toolkit for node monitoring and operations. Its bigger objective is to accelerate the adoption of distributed ledger technologies
  • Ktor RPC (developed by Lulu Ren) – A Ktor webserver that communicates with Corda nodes

 

Corda platform code

 

Sample CorDapps developed by the Corda team

These samples are all Apache 2.0 licensed, so feel free to use them as the basis for your own CorDapps!

Templates
General
  • Yo! – A simple CorDapp that allows you to send Yo’s! to other Corda nodes
  • IOU – Models IOUs (I Owe yoUs) between Corda nodes (also in Java)
    • Source code in both Java and Kotlin
  • Obligations – A more complex version of the IOU CorDapp (also in Java)
    • Handles the transfer and settlement of obligations
    • Retains participant anonymity using confidential identities (i.e. anonymous public keys)
  • Negotiation – shows how multi-party negotiation is handled on the Corda ledger, in the absence of an API for user interaction

 

Observers
  • Crowdfunding – Use the observers feature to allow non-participants to track a crowdfunding campaign

 

Attachments
  • FTP – Use attachments to drag-and-drop files between Corda nodes
  • Blacklist – Use an attachment to blacklist specific nodes from signing agreements

 

Confidential identities
  • Whistle Blower – Use confidential identities (i.e. anonymous public keys) to whistle-blow on other nodes anonymously

 

Oracles
  • Prime Numbers Oracle – Use an oracle to attest to the prime-ness of integers in transaction
  • Options – Use an oracle to calculate the premium on call and put options

 

Scheduled activities
  • Heartbeat – Use scheduled states to cause your node to emit a heartbeat every second

 

Accessing external data
  • Flow HTTP – Make an HTTP request in a flow to retrieve data from GitHub
  • Flow DB Access – Access the node’s database in flows to store and read cryptocurrency values

 

Upgrading CorDapps

 

Alternate node web-servers
  • Braid/Node.js Webserver – A node web-server using Braid and Node.js
  • Spring Webserver – A node web-server using Spring that:
    • Provides generic REST endpoints for interacting with a node via RPC
    • Can be extended to work with specific CorDapps
  • Yo! CorDapp Spring Webserver – Another node web-server using Spring that:
    • Provides REST endpoints for interacting with the Yo! CorDapp via RPC
    • Streams vault updates to the front-end using a web-socket

 

RPC clients
  • NodeInfo – A client for retrieving information from a running node
    • Useful for checking that a node is running and is accessible from another host via RPC
  • Ping-Pong – A client for pinging other nodes on the network to check connectivity