Thor: The VeChainThor Client
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
shanghaihardfork. SetevmVersiontoshanghaiif you are using Solidity compiler version0.8.25or above.
Hardware Requirements
| 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
Sync time from genesis to the latest mainnet block depends on hardware, configuration, and bandwidth. As at August 2025.
Validator
| 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.
Public Full Node
| 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.
Installation
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.
Build and Run from Source
Prerequisites
Thor requires and a C compiler to build. Install them using your preferred package manager before continuing.
Commands
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 mainnet
Thor will begin syncing the mainnet and can be accessed at http://localhost:8669/.
Build and Run with Docker
Docker CLI
docker run -d \
-v <local-data-dir>/.org.vechain.thor:/home/thor/.org.vechain.thor \
-p 127.0.0.1:8669:8669 \
-p 11235:11235 \
-p 11235:11235/udp \
--name thor-node vechain/thor \
--network mainnet \
--api-addr 0.0.0.0:8669
Thor will begin syncing the mainnet and can be accessed at http://localhost:8669/.
Docker Compose
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 mainnet --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/.
Documentation
Contributing
Contributions are welcome and appreciated!
Please review our Contribution Guidelines before submitting a PR.
Security
If you discover a security vulnerability, please report it according to our Security Policy.
Acknowledgements
Special thanks to the following projects:
License
VeChainThor is licensed under the GNU Lesser General Public License v3.0, also available in the LICENSE file in this repository.