Please read $ZIL disclaimer before proceeding.
While it's possible to use the public endpoint provided by Zilliqa to interact with the blockchain, we recommend that all exchanges who wish to support trading on the main net set up seed nodes. This document walks you through the basic steps needed to get up and running.
As seed nodes do not draw data directly from lookup or shard nodes, it is necessary for exchanges to be whitelisted by Zilliqa in order to receive data broadcasts about the blockchain and its state. This requires a static, public IP address with minimally two open ports (inbound and outbound) at which it can be reached.
Note on whitelisting process
Starting Zilliqa version 6.3.0, exchanges may also choose to operate seed nodes through public key whitelisting. Please contact us for more information on setting up a seed node with this scheme.
Minimum Hardware Requirements
- x64 Linux operating system (e.g Ubuntu 18.04.5)
- Recent dual core processor @ 2.2 GHZ. Examples: Intel Xeon (Skylake)
- 8GB DRR3 RAM or higher
- Public static IP address
- 500GB Solid State Drive
- 100MB/s upload and download bandwidth
Preparing the Machine
Before you start, please choose and note down a port you wish to reserve for your seed node to communicate on. This step is critical, as failing to provide the correct port will result in failure.
We highly recommend using Docker to set up a seed node, as we provide a tested, production-ready image for your use. If you have not yet setup docker, please follow the instructions on the official documentation.
Once you have set up Docker, you may proceed to download the configuration tarball for the mainnet:
Once you have successfully uncompressed the tarball, you should generate a new keypair, like so:
This approach has been tested on Ubuntu 18.04 and involves compiling C++. We strongly recommend you consider using the Docker image provided above.
If you cannot or do not wish to use Docker, you may also build the Zilliqa binary from source and run it as such.
The build should exit with no errors. Once it is complete, download the configuration tarball, and generate a keypair:
Configuring the Node
The node requires some configuration before it can successfully join the
network. Most configuration is contained in
constants.xml, which should be
in the directory we extracted
configuration.tar.gz to. Minimally, the
following changes are required:
- Change the value of
33133(default), or a port of your choice (if any). Be sure to note this down for a subsequent step, if you do not select
- Change the value of
trueif your seed node will support websockets (refer to the Zilliqa Websocket Server documentation).
Joining the Network
Before proceeding with this step, make sure you have completed the necessary KYC (for individual).
Once the preliminary steps have been completed, joining the network is relatively straightforward.
You will be asked a series of questions. When asked to enter your IP address and listening port, please enter the values you provided us when you submitted the KYC form. This is crucial, as your node will not work with anything else.
If you have successfully completed the above steps, you should have
a functioning seed node that exposes an RPC API on
localhost:4201. You may
further check the logs at
The following articles in this series will demonstrate a simple set of functions that can be used as a starting point for exhcange developers to implement their own custom business logic around the Zilliqa blockchain. You may find the full source code of the example app in the same repository.