Bloomen Technology Stack and Integrated System

Bloomen’s Technology Stack consists of multiple components, in order to enable multiple use cases. There are three generic technology layers:

  1. Application Layer,
  2. Middleware Layer and
  3. Blockchain Layer.

The latter is connected with the Quorum Blockchain platform on the Spanish Alastria Blockchain Ecosystem.

These layers are supported by the Bloomen API and an Anonymous Personalisation Module. In addition, there are several Smart Contract Templates, a Mobile Wallet Client and an Admin-User-Interface. Other key tools are the cloud-based NoSQL Databaseto store off-chain metadata (MongoDB) and Cloud Storagefor binary content files (Amazon S3).


The Kendraio App delivers a human interactive environment for metadata management, metadata tagging and claiming rights.  Further technologies used include Web3, Solidity, NodeJS, Solr, and Heroku.

During the project, the above modules and components are integrated into one Bloomen Blockchain System(front-end and back-end). This allows for the hosting of Bloomen software services to realise the media pilot applications and provides necessary end-points for user interaction. In order to develop the architectural structure and technologies, Bloomen technology partners reviewed existing Blockchain technology solutions and collected requirements from each media use cases, such as user roles, data models, metadata, security, privacy and planned user activities.

Bloomen Application and Middleware Layers

  • The Bloomen Application Layer contains User Interfaces for the Bloomen Portal, a Consumer View, a Supplier View and the “Know Your Customer” (KYC) Service View. Content can be previewed in the front-end, but the link to the content item will be stored in the Bloomen or a Media Provider’s Database and not available until a “buy asset” action has been completed through a smart contract.
  • The Bloomen Middleware Layer features the following Bloomen components: Account Manager, KYC Service Verifier using MongoDB, Upload Handler, Data Orchestrator, Consumer Handler, Transaction Handler and a Smart Contract Manager (including Copyright Monitoring).

Bloomen Blockchain Framework

  • The Bloomen Blockchain Layer consists of three modules for Consensus, Transactions and Tokenisation. In Bloomen, the following is stored on the Blockchain: Users’ main events represented by transaction IDs (e.g. upload asset, buy asset) and the elements of content items (e.g. content ID, content price). The chosen underlying Blockchain Infrastructure for Bloomen is “Quorum on Alastria.
  • Alastria is a multisector public and permissioned Blockchain based in Spain, on which Bloomen runs a regular node (by partner Worldline). The rationale for choosing this infrastructure in Bloomen is as follows: 1. Based on Ethereum, 2. Mixed benefits from permissioned and semi-public blockchain models, 3. Supports diverse industrial applications, 4. Allows for Smart contracts and DApps, and 5. Uses IBFT as delegated consensus mechanism (scales highly).
  • Quorum is a Blockchain platform that runs smart contracts, enabling the building and running of Blockchain-based decentralised applications – with a permissioned implementation of Ethereum that supports transaction and smart contract privacy. All smart contracts are stored on every node of the blockchain and every node is calculating all the smart contracts in real time.

Bloomen uses the web3 Javascript API client for the connection of Bloomen applications to the smart contracts deployed on the Quorum network.

Bloomen Smart Contracts for the Media Industry

Smart Contracts hold a big promise for this sector: By using Blockchain, required work that is needed to create a new business relationship for media assignments of all kinds can be reduced and simplified. Ideally, we can set-up a variety of contract templates, making business interactions easier.

  • The project developed four Bloomen Smart Contract Templates to run on Quorum/Alastria: 1. Token, 2. Asset Manager, 3. Copyright and 4. Claim Ownership. The following are core functionalities of Bloomen Smart Contracts, where each function is completed with necessary elements, e.g. content ID for the “buy” function: Upload Asset, Buy Asset, Search Asset or Metadata, Browse Assets, View Asset, Write/Update Metadata of Asset, Link and Merge assets, Claim Asset Ownership and Conflict Resolution.
  • The Token Smart Contract is implemented in the Solidity programming language. It offers digital cryptocurrency in the form of a smart contract running on Blockchain and is fully compliant with ERC20.
  • The Asset Manager Smart Contract is also programmed in Solidity. It enables the creator to choose a new media item (article, photo, audio, video or other) and specify the URI of the stored media, content, price in Tokens, billing schema, related tags or keywords.
  • The Copyright Smart Contract supports different billing schemas and payments. For example, upon purchase of an assets (e.g. an image or song) and percentage payment to different entities according to rights (e.g. singers, band member or recording studio). A registered and verified NGO can follow another payment schema, e.g. use assets without payment or at a reduced price. This smart contract also allows for communication between smart contracts (Asset SC, TokenSC).
  • The Claim Ownership Smart Contract supports the dispute of the ownership of an asset. First, a user claims the ownership of an asset. Then starts a “dispute”, specifying the metadata to be changed (e.g. title, percentage or unique_id). A new transaction points to the transaction of the creation of these assets. A “Super-user” resolves the disputes.

Bloomen Interoperability Framework and API

The Bloomen REST API integrates the first two layers and the Anonymous Personalisation Module for security and identity management. It provides RESTful services and makes available to the Application Layer all Middleware Layer functionalities. Each Use Case pilot will have its own Bloomen API, based on associated Blockchain business workflows.

Bloomen Anonymisation Personalisation Module

The Bloomen Anonymous Personalisation Module deals with security and identity management (data privacy in Blockchains). Principle objectives are:

  1. introducing a Blockchain based service enhancing the end-users’ Quality of Experience,
  2. increasing privacy by anonymising legitimate users in a consortium network and
  3. Offer personalised services to previously anonymised users.

It is the goal of this anonymisation feature for Bloomen’s use cases to maintain anonymity among customer choices: user identification has already been achieved outside the Blockchain network, while no one inside the Blockchain network is aware of the user’s real identity.

Bloomen will use anonymous personalization to have services delivered to customers while hiding their true identity from their service provider or other users, and to have any-service provider use and exploit personalised user data when authorized by the user themselves. By using Quorum, Bloomen can use private smart contracts for private transactions in order to hidethe user’s sensitive information from the other peers in the network.

Bloomen Mobile Wallet

The Bloomen Mobile Wallet client for iOS and Android allows end-users to access or observe tokens and services related to their chosen use case applications. They identify their required Dapp and create or import an identity. Next, they acquire tokens in order to buy, transfer and use services (e.g. streaming TV). Developers of a Dapp supported by Bloomen can choose their own customized look-and-feel and logo, which will be presented to their mobile wallet users. The Mobile Wallet Client connects to the Alastria Blockchain via Bloomen’s regular node run by Worldline. Technologically, this component deals with Blockchain transactions and payment systems, specifically Identity,Payments and Schemes.

The Bloomen Mobile Wallet Application covers the following core functions for users:

  • Account and identity registration
  • Redemption of Bloomen Prepay-Card
  • Receipt of Bloomen Tokens
  • Purchase content item or service from media provider with Tokens
  • Use content/service on eligible device

Key technology topics related to Identity are:

  1. Call versus Send Operations,
  2. Send versus Send-Signed Transactions and
  3. Hierarchical Deterministic Wallet System.

Payment is organised via prepaid cards (service tokenisation). In order for a provider to offer services, it is necessary to perform a tokenisation task that allows users to access these services. The tokenisation process is achieved by granting a specific value to a token (or crypto currency) and offering customers the option to acquire these. Tokenisation can be done by backing up a token with a real currency, for example 100 BloomenCoins for 1 Euro. The acquisition of tokens in Bloomen has been based on an existing approach, which is accepted by the industry (prepaid cards). For example, a user acquires a card with fiat money (€ 10) and then incorporates the tokens associated with the card (1000 BloomenCoins) to their identity within the Blockchain. The main operations used in the tokenisation process used are Mint(token creation), Transfer (token transfer between identities) and Burn(token elimination).

Schemes are an abstraction of a payment model. They define the number of tokens needed to acquire an asset or service. The distribution of payment between different “producers” related to one media asset is made in the “clearing house” phase at the time of purchase (No intermediators needed).

There are certain limitations associated with scheme-based payment because a fixed price for a payment scheme has to be defined and assets have to be bought according to this single price. However, it is possible to have as many schemes as needed in order to store the full range of prices and configurations of a desired token distribution. For example, an end-user can buy the last episode of movie series with scheme 546 for 150 BloomenCoins (this scheme distributes this amount between the content owner and the content distributor 50/50).

The Kendraio App

The Kendraio App,from Bloomen partner Kendraio, is a tool for metadata management, metadata tagging and claiming rights. It provides an interface for methods and techniques, for non-technical creative users, to tag their creative content (e.g. text, music, photos or videos) in easy and effective ways. Hashed unique identifiers for each content item enable the pushing of relevant IPR data and rules to the Blockchain.

The Kendraio App covers the following core functions:

  • Dashboard Display of Assets: Files, Recordings, Releases, Works
  • Enabling or disabling of Adapters (third party API clients)
  • Management and tagging of metadata related to rights, credits, scenes, etc.
  • Management for claiming rights

Screenshot: Kendraio App enabling photo annotation (here: Names of politicians)