Latest Posts


Jun 23

Strategic partnership announcement: Innoplexus holding company Partex NV is pleased to announce a one-of-its-kind collaboration with Anavex Life science corp. for Artificial Intelligence (AI) enabled drug development and healthcare sales marketing

Exciting News! Anavex Life Sciences and Partex NV Announce Strategic Partnership to Enhance Patient Experience. Anavex Life Sciences Corp. and Partex NV N.V. Group are pleased to...
Read More


Feb 23

AI supports targeted therapy recommendations fortumor diseases – BMBF funds joint research projectat University Medical Center Mainz with 2.53 millionEuros

The treatment and support of patients with advanced tumor diseases is a complex task involving numerous disciplines. For the interdisciplinary...
Read More

Innoplexus wins Horizon Interactive Gold Award for Curia App

Read More

dApp development on EOS Blockchain using EOSJS and scatter

As I have been diving deep into the development of EOS dApp, I have come across so many good articles. Here, I am aggregating all the knowledge I got after doing some research. In this article, I will be explaining how to use EOSJS and scatter together. I am assuming you have a basic understanding about smart contracts and how to deploy them on EOS blockchain as I’ll be skipping that part in this article.

What are we building?

We are building a simple todo dApp. We will write a smart contract for the CRUD (create, read, update, and delete) operations and will interact with deployed contract using EOSJS and scatter. CRUD operations include creating, completing, removing and getting todos. We will use Jungle Testnet for deploying our smart contract.

Pre requisite knowledge

  • EOS
  • Scatter

Scatter setup

Scatter is used to sign transactions for blockchain and provide personal information to applications without ever exposing your keys. For setting up your scatter wallet, follow this video. In scatter settings, you have to add the jungle testnet in networks with the following details:

Name: Jungle Testnet
Domain or IP: // It might be changed, so check for the latest one
Port: 38888

After adding the network configuration, now import your private key into the wallet by going into key pair section then click on new. Fill in the key information according to the form as shown in the pic below.


Now you should add an identity using your key pair. Go to identities section and add or edit existing identity if it is of no use. In the identity section, select the network and then key pair, it will ask you to add your account associated with that key on the chain net. You should add the account with active permission.

Your scatter is all set up and ready to be used in our dApp.


Smart contract

For deploying the todo smart contract, follow this article and deploy it on Jungle Testnet. Make sure you are able to interact with Testnet from the command line as mentioned in the article.

Interacting with the Testnet

I am using ReactJS for the frontend part. The complete logic and flow is in a single file named index.jsx inside the src folder. Following is the configuration object:

// Config for scatter and eosjs
const EOS_CONFIG = {
contractName: “xyz”, // Contract name
contractSender: “xyz”, // User executing the contract (should be paired with private key)
network: {
protocol: “http”,
blockchain: “eos”,
host: “”,
port: 38888,
chainId: “038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca” // get this using
eosOptions: {}

Interacting with scatter:

import EOS from ‘eosjs’;
document.addEventListener(`scatterLoaded`, this.onScatterLoad);
onScatterLoad = () => {
const scatter = window.scatter;
window.scatter = null;
// Here, we are connecting scatter with eosjs so that the transactions can be signed using keys present in scatter
this.eosClient = scatter.eos(,
// scatter object to collect the information present in wallet like accounts or public key
this.scatter = scatter;
// to load the data present in our table

Now, in this object we have two references EOSClient and scatter which we will be using to interact with EOS blockchain and wallet respectively.

I am adding the code for one functionality to get the stored data (all the todos) using EOSClient, the rest of the functionalities you can check in the src/index.jsx

loadTodos() {
code: EOS_CONFIG.contractName,
scope: EOS_CONFIG.contractName,
table: “todos”,
json: true
}).then(data => {
this.setState({ todos: data.rows });
}).catch(e => {

To get the account, use getIdentity() of scatter object:

const { accounts } = await scatter.getIdentity({
accounts: []

That’s it.


One of the biggest advantages of this is you don’t have to maintain a wallet on your machine, scatter manages everything for you. There are other methods also to host the wallet but scatter gives the responsibility to end user and nothing private needs to be handled by the developer.

Resources and references

  1. To do contract deployment (
  2. Scatter setup (
  3. Todo contract without scatter integration (
  4. EOS Stack Exchange (
  5. EOS developers (

Technology blog banner

Featured Blogs