Seeding the THORChain Network
Solving how the THORChain network can be joined by new peers or queried by services
Introduction
Seeding a network to existing peers is a difficult problem for all networks. A new peer needs to know where to look in order to start a connection and syncing with a network. Seed nodes are not critical and can easily be replaced by other seed nodes, however the information returned from a seed node should never be trusted. Ideally there are many redundant seed nodes and no single seed node should be relied upon.
Bitcoin has hard-coded seed nodes in the client from community members. These nodes are queried on startup and return a list of current Bitcoin peers to allow the new peer to begin connecting to the network.

Cosmos also has hard coded seed nodes that perform a similar function.

THORChain Seed Node
THORChain team will never run a mainnet node in an official capacity, however it will run a Seed Node service that allows other peers and services to query.
This Seed Node will be open-source and other THORNode operators will be encouraged to run it. Over time Seed Nodes that are consistent, supported by the community and demonstrate long term alignment with the project will be listed in a public forum.
The Seed Node (https://testnet-seed.thorchain.info) simply returns a current list of known THORChain peers:["3.91.25.225", "3.227.13.6", "3.235.93.146", "3.94.144.91", "54.237.155.154", "3.226.235.152"]
The IP addresses returned by the Seed Node are active THORNodes that can then be queried by services.
THORNodes
THORNodes run a variety of services such as:
- Connected chain nodes (Bitcoin, Ethereum, Binance Chain)
- THORChain state machine
- Midgard API
- Telegram Bot Alert Service
These services are available on different ports and can be queried in accordance with the API published and any connection limitations set in place by Node Operators (such as IP white/black-listing, rate limits).
The most important service that would be queried is the THORChain address endpoint: /thorchain/pool_addresses
This returns the current pool address to accept incoming funds:
This is a critical bit of infrastructure for all connected wallets, exchanges and services — this is where funds are sent by users wishing to swap, stake or bond.
Importantly, assuming the node is honest, this address is for the main Asgard TSS vault. There is no private key associated with this address and all outgoing transactions are coordinated in accordance with the rules of the THORChain state machine and signed by a threshold signature scheme.
Although membership of the signing committee is known (http://<thornodeip:1317>/thorchain/vaults/asgard) it is very difficult to work out which nodes participated in each signing ceremony — giving each node plausible deniability in all transactions — an important quality of the network that minimises liability for nodes and allows them to consider running a THORNode even in countries with onerous regulations.
Preventing Phishing-attacks
As such, all connected services should follow the following process to prevent being phished by a malicious Node:
- Query a Seed Node (THORChain’s or community)
- Select 1/3rd + 1 of all returned THORNodes randomly
- Query the pool address endpoint from all selected THORNodes
- Ensure 100% compliance rate to the Asgard vault address (all nodes return the same address).
- If (4) fails, repeat Step (2–4).
THORChain team will build a reference implementation of this in the BEPSwap client, (and re-use it in Asgard Wallet), for the community to implement in their own projects.
Following THORChain Churn
Since THORChain churns continuously, (and does not re-use addresses), the vault address should never be cached and should be queried before every outgoing transaction.
Funds sent to an old vault address will be forever lost since THORNodes are anonymous and can not coordinate such a recovery transaction.
Documentation
With THORChain nearing Chaosnet, more documentation about infrastructure will be published to help the community understand how to interact and build on the network.
Community
To keep up to date, please monitor community channels, particularly Telegram and Twitter:
- Twitter: https://twitter.com/thorchain_org
- Telegram Community: https://t.me/thorchain_org
- Telegram Announcements: https://t.me/thorchain
- Reddit: https://reddit.com/r/thorchain
- Github: https://github.com/thorchain
- Medium: https://medium.com/thorchain