Using blockchain to prevent telecom fraud


By: Sandhya Nayak, Amandeep Singh, Janki Vora, Luca Marchi, Mathews Thomas, Mike Alexander, Sharath Prasad and Utpal Mangla.

Updated: October 8, 2019 | September 18, 2018.


Communication service providers (CSPs) often encounter problems related to subscribers on mobile CSP networks and do not always have a clear view of their subscribers’ activities on these networks. Reconciling payments for mobile customers takes time and requires the intermediation of third-party clearing houses with the associated costs. Fraud detection and prevention remains a major issue for most CSPs, costing more than $ 38 billion annually. Fraudulent subscribers can access a home CSP network while cloning the mobile subscriber’s identity. Blockchain takes these CSPs to a single blockchain Hyperledger Fabric network, allowing for direct exchange of information with immutable transactions and executed based on a consensus model that uses smart contract rules. This improves the visibility of the CSP at the subscriber, allows for quick payment reconciliation and reduces fraudulent transactions.

This developer pattern shows how to set up a mobile telecommunications application with smart contracts that govern the transactions carried out by SubscriberSims, which can move through the coverage areas of various CSPs; these CSPs can act as SubscriberSims home operators or roaming partners to track the activities of mobile users on the network.


This commercial network includes:
SubscriberSims, which represents a single International Mobile Station Subscriber Directory Number. In other words, each SubscriberSim represents a cell phone number;
CSPs, who act as SubscriberSim’s home operator or roaming partner.
There are four scenarios covered in this code standard:
Mobile subscriber identification – A SubscriberSim moves to a new location that is not part of your home network. It is present on the roaming partner’s network using the discovery function, authenticated as a valid user, using the authentication function and its call rates are updated using the updateRate function.
Mobile subscriber billing – Once authorized, SubscriberSim can use the mobile partner’s network to initiate a call. The callOut and callEnd functions can be used to initiate and terminate the call. Charges for network use are recorded instantly between the home operator and the roaming partner based on your contract, as defined in the smart contract. The callPay function is performed to calculate the call charges.

Fraud identification – A fraudulent SubscriberSim (with the same MSISDN as an existing SubscriberSim) is added. The authentication function identifies the user as fraudulent and marks SubscriberSim with isValid = Fraud in the registry. This prevents the fraudulent subscriber from initiating any calls.
Surplus management – a mobile subscriber initiates a call and the callOut function is performed. The smart contract recognizes that the subscriber is potentially reaching the surplus limit. The operator notifies the subscriber about the reach of the excess limit and specifies the possible tariff changes. The subscriber is asked to accept or deny the new charges, the subscriber’s response is recorded in the ledger and future calls (including this) are initiated or denied based on whether the subscriber accepted or denied the excess charges. If the roaming subscriber accepts the charges, all future calls (including this one) will use overageRate to calculate call charges instead of roamingRate.
The commercial value for customers is as follows:
Automatic triggering of a contract between the home operator and roaming partners, automatically applying contracts

Almost instant charge resolution, eliminating costly third party processes, such as clearing houses

Equip the repository with verifiable transactions between operators to resolve disputes

Effective identity management on CSPs to reduce roaming and subscription fraud

Real-time alert of excess data and calls between parties, resulting in greater customer satisfaction


1. The blockchain operator clones the GitHub repository to obtain the blockchain for telecommunications roaming using the IBM Blockchain Platform smart contract.

2. The blockchain operator uses the IBM Blockchain Platform Extension for VS Code to package the smart contract.

3. The blockchain operator sets up and launches the IBM Blockchain Platform service.

4. The IBM Blockchain Platform allows the creation of a Hyperledger Fabric network in an IBM Kubernetes service, allowing the installation and instantiation of the blockchain for telecommunications roaming, using the IBM Blockchain Platform smart contract on the network.

5. The user can interact with the smart contract and execute Node.js scripts. (such as moveSim.js, callOut.js and callEnd.js) that use the Hyperledger Fabric SDK to interact with the network implemented on the IBM Blockchain Platform and issue transactions

Ready to start? Check out the README for step-by-step details on:

1. Cloning the repository

2. Packaging the smart contract

3. Creating IBM Cloud services

4. Building a network

5. Implementing blockchain for telecommunications roaming using the IBM Blockchain Platform smart contract on the network

6. Connecting the application to the network

7. Running the application

Want to read more specialized programming content? Discover the IBM Blue Profile and have access to exclusive materials, new knowledge journeys and personalized tests. Check it out right now, get the badges and upgrade your career!


Please enter your comment!
Please enter your name here