2021 Call for Code Awards: Live from New York, with SNL’s Colin Jost! Learn more

Facilitate collaboration between non-governmental organizations using blockchain


This code pattern demonstrates how to use Hyperledger Fabric network to facilitate collaboration among non-governmental organizations (NGOs) in managing the supply and demand of goods to be distributed to the needy. The disconnect between supply and demand can lead to over- or under-supply of goods and materials. During critical times, there is often no system of trust for getting correct information on supply and demand requirements for goods — a common problem faced by NGOs. This developer code pattern uses the Hyperledger Fabric network to bring about a transparent way for NGOs to collaborate with one another to efficiently distribute goods and materials during normal and critical situations.


An NGO is a non-profit organization that operates independently of any government and is a volunteer organization of citizens associated for social welfare and social development. NGOs are usually funded by donations, but some avoid formal funding altogether and are run primarily by volunteers. Every NGO has its own mission and objectives.

When a person or organization has a need, they may approach an NGO for help. However, it may be difficult for a single NGO to fulfill a particular requirement, or the end user may not know which NGO to contact for help. In situations like these, NGOs should avoid competition and compromise and instead cooperate to achieve the best possible results. But misunderstandings and collaboration without trust can prevent partnerships from reaching their potential.

The blockchain-based solution presented here enables NGOs with similar or diverse portfolios to come together and be part of a consortium. When a party approaches an NGO with a specific need (say, books for education) and the NGO cannot address the need or cannot do it alone, then that NGO can create a new request in the network. Any other NGOs that can contribute would update the request over the blockchain network. This network gives a holistic view of the requirement and its current status. This way, a need is addressed efficiently, and the problems of over-collection or under-collection for a need are reduced. The platform creates trust, accountability, and transparency of operations among the NGOs.

This composite pattern demonstrates a solution that draws on two other code patterns:



  1. Set up the blockchain network using Kubernetes configuration files on IBM Cloud.
  2. Deploy the client application using Fabric Java SDK. This works as middle layer and exposes the REST API.
  3. Deploy the web UI application built using Node.js.
  4. The user can perform following tasks using the web interface which internally interacts with the blockchain network with the help of middle layer.
    • Create a new need
    • Pledge for a need
    • View needs


Find the detailed instructions in the README. These steps show you how to:

  1. Get the code
  2. Deploy the Hyperledger Fabric Network using Kubernetes on IBM Cloud
  3. Build the client application based on Fabric Java SDK
  4. Build and deploy the web application
  5. Analyze the results