⚠️ TESTNET — Verdis Chain is currently in testnet phase. Not mainnet. Not investor-ready.
Verdis Chain is a high-throughput, Layer-1 designed for energy efficiency blockchain built using Rust and the Substrate framework. It features native DPoS consensus, built-in AMM DEX, carbon credit tracking, parallel execution, and zero-knowledge compression.
Core Network Endpoints
Developers and node operators can interact with the network using standard HTTPS RPC or high-performance WebSocket subscriptions:
| Protocol |
Public Endpoint URL |
Port |
Description |
| HTTPS JSON-RPC |
https://verdischain.com/rpc |
443 / 9933 |
HTTP requests for querying state, extrinsics, and block data |
| WebSocket RPC |
wss://verdischain.com/ws |
443 / 9933 |
Real-time streaming subscriptions for blocks, events, and transactions |
| REST API |
https://api.verdischain.com/v1/ |
443 / 4400 |
High-level REST endpoints for balances, telemetry, and faucet |
| Direct Node RPC |
http://91.98.160.145:9933 |
9933 |
Direct Substrate JSON-RPC interface |
Network Parameters
Native currency ticker for fee payment, staking, and DEX trading pairs.
Custom SS58 address encoding format (Prefix 909) for Verdis accounts.
1 VRDX = 1,000,000,000 Plancks (base units).
Deterministic 3-second block production time via DPoS slots.
Quick Connection Test (cURL)
Query the latest block header directly from terminal:
# Fetch latest block header from Verdis RPC
curl -X POST https://verdischain.com/rpc \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"chain_getHeader","params":[],"id":1}'
Verdis Chain combines a Substrate runtime core with specialized high-performance pallets inspired by modern L1 state-of-the-art designs. The network uses Delegated Proof of Stake (DPoS) integrated with Proof of History (PoH) micro-timestamps and dynamic Eco-scoring.
Complete Runtime Pallets (16 Pallets)
Below is the detailed technical specification for all 16 native pallets implemented in the Verdis Chain runtime:
Delegated Proof of Stake election engine. Handles validator candidate bonding, delegator stake tracking, epoch rotation, slash enforcement, and block reward calculation.
Protocol-level Automated Market Maker using constant product ($x \cdot y = k$). Manages liquidity pools, swap execution, LP token issuance, and fee distribution.
Green scoring calculator & carbon offset registry. Tracks validator renewable energy usage, tree planting proofs, and mints verified carbon credits.
Controls the fixed 100B VRDX supply curve, 5B investor allocation tracking, dynamic fee burn rates, and inflation halving schedule.
Enforces linear and milestone-based token vesting schedules for team allocations, advisory reserves, and early contributors with cliff periods.
Decentralized storage proof module. Allows users to pin arbitrary payload hashes on-chain with cryptographic proof-of-retrievability.
Proof of History micro-timestamping engine. Generates continuous verifiable delay function (VDF) sequences to order transactions prior to block inclusion.
Mempool-less transaction forwarding mechanism. Pushes upcoming extrinsics directly to expected future block proposers for sub-second latencies.
Block propagation protocol dividing proposed blocks into erasure-coded data shred packets for tree-structured broadcast across validator nodes.
Zero-Knowledge state compression pallet. Offloads full state accounts to compressed Merkle trees with ZK-SNARK validity proofs.
Inter-Blockchain Communication protocol. Facilitates trustless cross-chain state proof verification and token transfer channels.
Address Lookup Tables (ALT). Enables transactions to compress up to 256 account addresses into 1-byte indices for ultra-compact payloads.
Parallel execution scheduler. Analyzes transaction read/write accounts to execute non-overlapping extrinsics across multi-core CPUs concurrently.
Substrate-native smart contracts via pallet_contracts. Deploy ink! contracts compiled to WebAssembly with gas-metered execution and storage rent.
Substrate System & Balances pallet. Manages account nonces, raw balance transfers, genesis allocations, block execution hooks, and event storage.
Verdis Chain provides a full suite of custom and standard Substrate JSON-RPC methods. All RPC endpoints accept standard JSON-RPC 2.0 payloads via HTTP POST or WebSocket messages.
Primary RPC Methods Reference
| RPC Method |
Parameters |
Return Type |
Description |
chain_getHeader |
[hash?] |
Header Object |
Retrieves block header (number, parentHash, stateRoot, extrinsicsRoot) |
system_peers |
[] |
Array<Peer> |
Returns active connected network peers, roles, and latency |
dpos_allValidators |
[] |
Array<Validator> |
Lists all active and candidate DPoS validators with stake totals |
dpos_validatorStake |
[address] |
StakeInfo |
Returns self-bond amount, delegator stake, and commission rate |
amm_dex_getAllPools |
[] |
Array<Pool> |
Retrieves all DEX liquidity pools, reserves, and 24h trading volume |
eco_getGreenScore |
[validator] |
GreenScoreObj |
Calculates validator Green Score (0-100), renewable %, and tree credits |
chain_getBlock |
[hash?] |
BlockDetails |
Returns full block object including extrinsics list and digest |
chain_getFinalizedHead |
[] |
BlockHashString |
Returns the latest finalized block hash |
system_health |
[] |
HealthObj |
Returns node status: isSyncing, peers, shouldHavePeers |
system_properties |
[] |
PropertiesObj |
Returns ss58Format (909), tokenDecimals (9), tokenSymbol (VRDX) |
author_submitExtrinsic |
[hexBytes] |
TxHashString |
Submits a signed SCALE-encoded transaction to the mempool |
state_getStorage |
[key, hash?] |
StorageDataHex |
Reads raw runtime storage key-value entry |
Example: Querying DPoS Validators (dpos_allValidators)
const response = await fetch('https://verdischain.com/rpc', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'dpos_allValidators',
params: [],
id: 1
})
});
const { result } = await response.json();
The native currency of Verdis Chain is VRDX. VRDX powers all on-chain operations, including transaction gas fees, DPoS validator staking, AMM pool liquidity pairing, and green governance voting.
Official Ticker Notice: The official symbol for the native token is strictly VRDX. Total hard cap is fixed at 100,000,000,000 VRDX (100 Billion) with zero inflationary minting beyond block rewards.
Token Parameters Summary
Native utility & governance token ticker.
100 Billion fixed max supply.
12 Billion VRDX (12%) across IDO Presale Phases.
9 decimal places with standard SS58 format prefix 909.
Supply Distribution Breakdown
| Category |
Allocation (VRDX) |
% Supply |
Vesting & Lockup Terms |
| Public Sale & Presale (IDO) |
12,000,000,000 VRDX |
12.0% |
15% unlocked TGE, linear monthly unlock over 12 months |
| Validator Staking & Rewards |
35,000,000,000 VRDX |
35.0% |
Emitted continuously over 10 years to DPoS validators |
| Eco & Carbon Credit Reserve |
20,000,000,000 VRDX |
20.0% |
Dedicated to carbon credit purchases & green validator grants |
| Ecosystem & Treasury |
18,000,000,000 VRDX |
18.0% |
DAO governed treasury for grants, liquidity, and expansion |
| Team & Core Contributors |
10,000,000,000 VRDX |
10.0% |
12-month linear cliff followed by 36-month linear vesting |
| Initial AMM DEX Liquidity |
5,000,000,000 VRDX |
5.0% |
100% locked in protocol AMM DEX pools at testnet launch |
Validators secure the Verdis Chain network by producing blocks and verifying state transitions under Delegated Proof of Stake (DPoS). Validators with higher Green Scores receive a boosted probability weight during block proposer selection.
Recommended Server Requirements
| Hardware Spec |
Minimum Requirement |
Recommended Production |
| CPU |
4 CPU Cores (2.5 GHz+) |
8+ Cores (3.5 GHz+ AMD EPYC / Intel Xeon) |
| RAM |
16 GB ECC RAM |
32 GB+ ECC DDR5 RAM |
| Disk Storage |
250 GB NVMe SSD |
1 TB+ NVMe SSD (PCIe Gen4) |
| Bandwidth |
100 Mbps Unlimited |
1 Gbps+ Symmetric Dedicated Connection |
| Energy Source |
Standard Grid |
100% Verified Renewable Energy (Solar / Wind / Hydro) |
Step-by-Step Validator Setup
# 1. Download & Build Verdis Chain Node
git clone https://github.com/Protremix/Verdischain.git
cd Verdischain
cargo build --release
# 2. Start Syncing Node as Validator
./target/release/verdis \
--validator \
--chain verdis-testnet \
--name "My-Green-Validator" \
--rpc-port 9933 \
--ws-port 9944
# 3. Generate Session Keys via RPC
curl -H "Content-Type: application/json" \
-d '{"id":1, "jsonrpc":"2.0", "method":"author_rotateKeys", "params":[]}' \
http://localhost:9933
Green Score Calculation Formula
The eco pallet dynamically computes a validator's Green Score ($GS$) between 0 and 100 based on three telemetry parameters:
Green Score (GS) = (0.50 × Uptime%) + (0.35 × RenewableEnergy%) + (0.15 × CarbonOffsetRatio)
# Where:
# Uptime%: Node online percentage per epoch (target: 99.9%+)
# RenewableEnergy%: Certified clean energy powering server (0-100%)
# CarbonOffsetRatio: On-chain retired carbon credits vs consumed kWh
Verdis Chain features a native, protocol-level Automated Market Maker (amm-dex) built directly into the runtime. It enables instant, low-gas token swaps without smart contract overhead.
AMM Mechanics & Fee Structure
Constant product liquidity formula ensuring continuous pool liquidity at all price curves.
0.25% distributed to LP provider token holders, 0.05% automatically routed to eco carbon burn.
Liquidity providers receive pool-specific vLP tokens representing share of pooled assets.
Executing Swaps via SDK
import { VerdisSDK } from './verdis-sdk.js';
const sdk = new VerdisSDK('wss://verdischain.com/ws');
await sdk.connect();
// Query available AMM liquidity pools
const pools = await sdk.getPools(10);
// Fetch pool #0 details (VRDX / USDT)
const poolZero = await sdk.getPool(0);
The official Verdis JavaScript SDK (sdk/verdis-sdk.js) is a lightweight, zero-dependency library using native WebSockets to interact with Verdis Chain nodes. It exposes 51 complete methods spanning all chain capabilities.
SDK Path: The SDK file is located at sdk/verdis-sdk.js on the server. Import VerdisSDK in Node.js or browser projects.
Complete List of 51 SDK Methods
1. Connection & Core RPC (5 Methods)
| # | Method Signature | Description |
| 1 | constructor(wsUrl, options) | Initialize SDK instance with WS URL and timeout options |
| 2 | connect() | Establish WebSocket connection with auto-reconnect |
| 3 | disconnect() | Close active WebSocket socket connection |
| 4 | isConnected() | Returns boolean connection status |
| 5 | rpc(method, params) | Low-level raw JSON-RPC call wrapper |
2. Chain & Block Queries (6 Methods)
| # | Method Signature | Description |
| 6 | getBlockHeight() | Fetch current finalized block height number |
| 7 | getBlock(hash?) | Get full block object for given hash or head |
| 8 | getBlockHash(blockNum) | Get block hash for specific block number |
| 9 | getFinalizedHead() | Fetch latest finalized block hash string |
| 10 | getChainName() | Returns human-readable chain name |
| 11 | getChainType() | Returns chain development type (Development/Live) |
3. System & Node Telemetry (5 Methods)
| # | Method Signature | Description |
| 12 | getNodeVersion() | Returns Node software semver version |
| 13 | getNodeName() | Returns Substrate node binary name |
| 14 | getSystemHealth() | Returns system health (isSyncing, peers) |
| 15 | getSystemProperties() | Returns SS58 format (909), symbol (VRDX), decimals (9) |
| 16 | getRuntimeVersion() | Returns specName, specVersion, implVersion |
4. Accounts & Balances (3 Methods)
| # | Method Signature | Description |
| 17 | getAccountInfo(address) | Fetch raw System.Account storage data |
| 18 | getBalance(address) | Returns free, reserved, and frozen VRDX balance |
| 19 | getNonce(address) | Fetch account transaction nonce count |
5. DPoS & Staking (5 Methods)
| # | Method Signature | Description |
| 20 | getValidators() | Fetch list of active consensus validator addresses |
| 21 | getValidatorCount() | Returns total count of registered validators |
| 22 | getActiveValidators() | Fetch active set for current election era |
| 23 | getTotalStaked() | Returns sum total of VRDX staked across DPoS |
| 24 | getCurrentEpoch() | Returns current era index and block progress |
6. AMM DEX & Liquidity (5 Methods)
| # | Method Signature | Description |
| 25 | getPoolCount() | Returns total number of created DEX liquidity pools |
| 26 | getPool(poolId) | Fetch pool token pair reserves and total LP supply |
| 27 | getPools(limit = 10) | List multiple pools up to specified limit count |
| 28 | getTotalVolume() | Returns 24-hour aggregate USD trading volume |
| 29 | getTotalSwaps() | Returns cumulative total swap count executed on-chain |
7. Eco Metrics & Carbon Offset (5 Methods)
| # | Method Signature | Description |
| 30 | getCarbonCredits() | Fetch active certified carbon credit list |
| 31 | getGreenValidators() | Returns top validators sorted by Green Score |
| 32 | getTotalCo2Offset() | Returns total metric tons CO2 offset on-chain |
| 33 | getTotalTreesPlanted() | Returns certified total trees planted count |
| 34 | getTotalCreditsRetired() | Returns total count of permanently retired credits |
8. Tokenomics & Vesting (4 Methods)
| # | Method Signature | Description |
| 35 | getTotalSupply() | Query VRDX total issued supply on-chain |
| 36 | getPresalePrice() | Fetch active presale IDO stage VRDX token price |
| 37 | getVestingSchedules() | Query vesting unlock milestones for account |
| 38 | getPinnedData() | Retrieve pinned storage commitments |
9. Extrinsics & Subscriptions (5 Methods)
| # | Method Signature | Description |
| 39 | submitExtrinsic(extrinsic) | Broadcast signed transaction byte payload to cluster |
| 40 | pendingExtrinsics() | Returns transactions currently waiting in mempool |
| 41 | subscribeNewHeads(callback) | Subscribe to real-time new block header events |
| 42 | subscribeFinalizedHeads(callback) | Subscribe to finalized block header events |
| 43 | unsubscribe(subId) | Unsubscribe from active WebSocket subscription ID |
10. Low-Level Storage & Codec Utilities (8 Methods)
| # | Method Signature | Description |
| 44 | queryStorage(module, key, blockHash) | Query runtime storage item by module name & key |
| 45 | queryStorageAt(keys, blockHash) | Batch query multiple storage keys at specific block |
| 46 | getKeys(prefix, blockHash) | Fetch list of storage keys matching prefix |
| 47 | getEvents(blockHash) | Decode raw system events emitted in block |
| 48 | getConstant(module, constant) | Read runtime metadata constant value |
| 49 | _storageKey(module, item, ...params) | Compute Twox128 + Blake2 storage key hash |
| 50 | _hashModule(name) | Internal helper to compute Twox128 module hash |
| 51 | _hashItem(name) | Internal helper to compute Twox128 item hash |
Complete SDK Initialization Code
// Import VerdisSDK from local SDK path
import { VerdisSDK } from './verdis-sdk.js';
async function main() {
// Initialize connection to Verdis Chain WebSocket
const sdk = new VerdisSDK('wss://verdischain.com/ws');
await sdk.connect();
// Fetch node properties and telemetry
const props = await sdk.getSystemProperties();
// Subscribe to live block production
const subId = await sdk.subscribeNewHeads((header) => {
});
}
main().catch(console.error);