2. Definition of terms

Application Programming Interface

In computer programming, an application programming interface is a set of subroutine definitions, and tools for building software. In general terms, it is a set of clearly defined methods of communication between various components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer.

More info: https://en.wikipedia.org/wiki/Application_programming_interface

Bill of Lading

The document of title. A bill of lading (sometimes abbreviated as B/L or BoL) is a document issued by a carrier (or their agent) to acknowledge receipt of cargo for shipment.

More info: https://en.wikipedia.org/wiki/Bill_of_lading


A blockchain, originally block chain, is a growing list of records, called blocks, which are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data.

More info: https://en.wikipedia.org/wiki/Blockchain

Blockchain Document Transaction system
The core platform on which the SmartBL application is built upon. It's the system of transferring the Document of title documents over blockchain and IPFS.
Document of title
Any document where the document represents certain value. Typical examples of documents of title are Bills of Lading and Certificates Of Origin.
Distributed Ledger
Distributed Ledger Technology
Shared ledger

A distributed ledger (also called a shared ledger, or Distributed Ledger Technology, DLT) is a consensus of replicated, shared, and synchronized digital data geographically spread across multiple sites, countries, or institutions. There is no central administrator or centralized data storage.

More info: https://en.wikipedia.org/wiki/Distributed_ledger


Ethereum is an open-source, public, blockchain-based distributed computing platform and operating system featuring smart contract (scripting) functionality. It supports a modified version of Nakamoto consensus via transaction-based state transitions.

More info: https://en.wikipedia.org/wiki/Ethereum


Hyper Text Transfer Protocol. The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can easily access, for example by a mouse click or by tapping the screen. HTTP was developed to facilitate hypertext and the World Wide Web.

More info: https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

Interplanetary Filesystem

InterPlanetary File System is a protocol and network designed to create a content-addressable, peer-to-peer method of storing and sharing hypermedia in a distributed file system. IPFS was initially designed by Juan Benet, and is now an open-source project developed with help from the community.

More info: https://ipfs.io/

Javascript Object Notation

In computing, JavaScript Object Notation (JSON) is an open-standard file format that uses human-readable text to transmit data objects consisting of attribute–value pairs and array data types (or any other serializable value). It is a very common data format used for asynchronous browser–server communication, including as a replacement for XML in some AJAX-style systems.

More info: https://en.wikipedia.org/wiki/JSON


OAuth is an open standard for access delegation, commonly used as a way for Internet users to grant websites or applications access to their information on other websites but without giving them the passwords.

More info: https://en.wikipedia.org/wiki/OAuth

Public Key Infrastructure

A public key infrastructure (PKI) is a set of roles, policies, and procedures needed to create, manage, distribute, use, store & revoke digital certificates and manage public-key encryption.

More info: https://en.wikipedia.org/wiki/Public_key_infrastructure

Representational state transfer

Representational State Transfer (REST) is a software architectural style that defines a set of constraints to be used for creating web services. Web services that conform to the REST architectural style, termed RESTful web services, provide interoperability between computer systems on the Internet. RESTful web services allow the requesting systems to access and manipulate textual representations of web resources by using a uniform and predefined set of stateless operations. Other kinds of web services, such as SOAP web services, expose their own arbitrary sets of operations.

More info: https://en.wikipedia.org/wiki/Representational_state_transfer


SHA-3 is a subset of the broader cryptographic primitive family Keccak designed by Guido Bertoni, Joan Daemen, Michaël Peeters, and Gilles Van Assche, building upon RadioGatún. Keccak's authors have proposed additional uses for the function, not (yet) standardized by NIST, including a stream cipher, an authenticated encryption system, a "tree" hashing scheme for faster hashing on certain architectures, and AEAD ciphers Keyak and Ketje.

More info: https://en.wikipedia.org/wiki/SHA-3

Smart contract

A smart contract is a computer protocol intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract. Smart contracts allow the performance of credible transactions without third parties. These transactions are trackable and irreversible.

More info: https://en.wikipedia.org/wiki/Smart_contract


Transmission Control Protocol / Internet Protocol – the basis of the Internet

More info: https://en.wikipedia.org/wiki/Transmission_Control_Protocol


8-bit encoding of Unicode characters

More info: https://en.wikipedia.org/wiki/UTF-8


The web3.js library is a collection of modules which contain specific functionality for the Ethereum ecosystem:

  • The web3-eth is for the Ethereum blockchain and smart contracts
  • The web3-shh is for the whisper protocol to communicate p2p and broadcast
  • The web3-bzz is for the swarm protocol, the decentralized file storage
  • The web3-utils contains useful helper functions for Dapp developers.

More info: https://github.com/ethereum/web3.js/