Blockchain for telecom roaming, fraud user identification, and overage management


Communications service providers (CSPs) often encounter issues related to subscribers on roaming CSP networks, and they do not always have clear visibility into their subscribers’ activities on those networks. Payment reconciliation for roaming customers takes time and requires the intermediation of third-party clearinghouses with the associated costs. Fraud detection and prevention continue to be relevant issues for most CSPs, costing more than $38 billion annually. Fraudulent subscribers can access a home CSP network while cloning the roaming subscriber’s identity. Blockchain brings these CSPs onto a single blockchain Hyperledger Fabric network, enabling the direct exchange of information with transactions that are immutable and executed based on a consensus model that uses smart contract rules. This improves the CSP’s visibility into the subscriber, enables quick payment reconciliation, and reduces fraudulent transactions.

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


This business network includes:

  • SubscriberSims, which represent a single Mobile Station International Subscriber Directory Number. In other words, each SubscriberSim represents a mobile number.
  • CSPs, which act as either the home operator or the roaming partner of the SubscriberSim.


There are four scenarios covered in this code pattern:

  • Roaming subscriber identification — A SubscriberSim moves to a new location that is not a part of its home network. It is found to be present in the roaming partner’s network using the discovery function, authenticated as a valid user using the authentication function, and its calling rates are updated using the updateRate function.

  • Roaming subscriber billing — Once the SubscriberSim has been authorized, it can make use of the roaming partner’s network to initiate a call. The callOut and callEnd functions can be used to initiate and end the call. The charges for network usage are instantaneously recorded between the home operator and the roaming partner based on their agreement as defined in the smart contract. The callPay function is executed to calculate the charges for the call.

  • 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 the SubscriberSim with isValid = Fraud in the ledger. This prevents the fraudulent SubscriberSim from initiating any calls.

  • Overage management — A roaming subscriber intiates a call and the callOut function is executed. The smart contract recognizes that the subscriber is potentially reaching the overage threshold. The operator notifies the subscriber about reaching the overage threshold and specifies the potential 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 one) are either initiated or denied based on whether the subscriber has accepted or denied the overage charges. If the roaming subscriber has accepted the charges, all future calls (including this one) will make use of the overageRate in order to calculate call charges instead of the roamingRate.

The business value for clients is as follows:

  • Automatic triggering of a contract between the home operator and the roaming partners, automatically enforcing contracts
  • Near-instantaneous resolution of charges, eliminating costly third-party processes like clearinghouses
  • Equipping the repository with verifiable transactions between operators to resolve disputes
  • Effective identity management across CSPs to mitigate roaming and subscription fraud
  • Real-time alerting of overage issues of data and calls between parties, resulting in increased customer satisfaction



  1. The blockchain operator clones the GitHub repo to obtain the blockchain for telecom 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 enables the creation of a Hyperledger Fabric network onto an IBM Kubernetes service, enabling the installation and instantiation of the blockchain for telecom roaming using the IBM Blockchain Platform smart contract on the network.
  5. The user can interact with the smart contract and run Node.js scripts (such as moveSim.js, callOut.js, and callEnd.js) which use the Hyperledger Fabric SDK to interact with the deployed network on IBM Blockchain Platform and issue transactions.


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

  1. Cloning the repo
  2. Packaging the smart contract
  3. Creating IBM Cloud services
  4. Building a network
  5. Deploying blockchain for telecom roaming using the IBM Blockchain Platform smart contract on the network
  6. Connecting the application to the network
  7. Running the application