Thor is the official Golang client for VeChainThor, the public blockchain powering the VeChain ecosystem. VeChainThor is designed for real-world adoption, enabling scalable, low-cost, and sustainable applications.
VeChainThor is currently up-to-date with the EVM's
shanghai
hardfork. SetevmVersion
toshanghai
if you are using Solidity compiler version0.8.25
or above.
Resource | Validator | Public Full Node |
---|---|---|
CPU | 4 Core | 8 Core |
RAM | 16 GB | 64 GB |
Bandwidth | 20 Mbit | 20 Mbit |
Disk | 500 GB NVMe SSD | 1 TB SSD |
Minimum of 45,000 IOPS required for an approximate 30 hour sync time.
Sync time from genesis to the latest mainnet block depends on hardware, configuration, and bandwidth. As at August 2025.
Build | Sync Time | AWS SKU |
---|---|---|
4 CPU, 32 GB, 10 Mbit, 937 NVMe SSD, 10K IOPS | 54 Hours, 08 Minutes | I4g.xlarge |
2 CPU, 16 GB, 10 Mbit, 468 NVMe SSD, 35K IOPS | 38 Hours, 41 Minutes | I8g.large |
4 CPU, 32 GB, 10 Mbit, 937 NVMe SSD, 45K IOPS | 30 Hours, 00 Minutes | I8g.xlarge |
Note: The build used the --skip-logs
command.
Build | Sync Time | AWS SKU |
---|---|---|
8 CPU, 64 GB, 12 Mbit, 1875 NVMe SSD, 15K IOPS | 59 Hours, 04 Minutes | I4g.2xlarge |
8 CPU, 64 GB, 12 Mbit, 1875 NVMe SSD, 42K IOPS | 32 Hours, 17 Minutes | I8g.2xlarge |
Note: The build used the -disable-pruner
command.
Use either the source or Docker instructions below to start a mainnet full node with the logs and pruner enabled. Becoming a validator requires additional steps, meeting the endorsement criteria and being voted in. See Becoming a Validator for more details.
For more configuration options, see Command Line Arguments, and for a full description of the nodes types, see Node Types.
Thor requires Go 1.19+ and a C compiler to build. Install them using your preferred package manager before continuing.
Clone the Thor repo:
git clone https://github.com/vechain/thor.git
Enter the Thor directory:
cd thor
Checkout the latest stable release:
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
Build Thor:
make
Run Thor:
bin/thor --network main
Thor will begin syncing the mainnet and can be accessed at http://localhost:8669/.
docker run -d\
-v {path-to-your-data-directory}/.org.vechain.thor:/home/thor/.org.vechain.thor\
--api-addr 0.0.0.0:8669 -p 127.0.0.1:8669:8669 -p 11235:11235 -p 11235:11235/udp\
--name thor-node vechain/thor --network main
Thor will begin syncing the mainnet and can be accessed at http://localhost:8669/.
Use the provided docker-compose.yml
to launch a node with the same configuration:
version: '3'
services:
thor-node:
image: vechain/thor
container_name: thor-node
command: --network main --api-addr 0.0.0.0:8669
volumes:
- thor-data:/home/thor
ports:
- "8669:8669"
- "11235:11235"
- "11235:11235/udp"
volumes:
thor-data:
Thor will begin syncing the mainnet and can be accessed at http://localhost:8669/.
Contributions are welcome and appreciated!
Please review our Contribution Guidelines before submitting a PR.
If you discover a security vulnerability, please report it according to our Security Policy.
Special thanks to the following projects:
VeChainThor is licensed under the GNU Lesser General Public License v3.0, also available in the LICENSE
file in this repository.