A high-performance, EVM-compatible blockchain built with Substrate
Website β’ Documentation β’ Discord β’ Telegram
Selendra is a next-generation Layer 1 blockchain that combines the best of Ethereum compatibility with Substrate's flexibility and performance. Built on Cardinal Cryptography's AlephBFT consensus, Selendra delivers sub-second finality, low transaction costs, and enterprise-grade reliability.
- β‘ Blazing Fast: Sub-second finality with Aura block production + AlephBFT consensus
- π EVM Compatible: Full Ethereum compatibility via Frontier - deploy Solidity contracts seamlessly
- π Unified Accounts: Native β EVM account mapping for superior user experience
- π° Low Fees: Optimized transaction costs with dynamic EVM base fee adjustment
- π― Enterprise Ready: Advanced staking, governance tools, and institutional features
- π οΈ Developer Friendly: Substrate pallets + EVM smart contracts in one platform
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Selendra Network β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Consensus Layer β
β ββ Aura (Block Production, 1s slots) β
β ββ AlephBFT (Byzantine Fault Tolerant Finality) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Execution Environments β
β ββ EVM (Ethereum Virtual Machine via Frontier) β
β ββ WASM (WebAssembly Contracts via pallet-contracts)β
β ββ Native Pallets (Substrate Runtime Logic) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Core Pallets (30 Total) β
β ββ Staking & Governance (DPoS, Treasury, Council) β
β ββ EVM Integration (Ethereum, Dynamic Fees) β
β ββ Unified Accounts (Native β EVM Mapping) β
β ββ Utilities (Multisig, Proxy, Identity, Vesting) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Property | Value |
|---|---|
| Chain ID | 1961 (Mainnet) |
| Block Time | ~1 second |
| Finality | Sub-second (AlephBFT) |
| EVM Gas Limit | ~15M gas/block |
| Runtime Version | v20004 (v3.0) |
| Native Token | SEL |
| Decimals | 18 |
| Consensus | Aura + AlephBFT |
selendra/
βββ bin/ # Executables
β βββ node/ # Selendra node implementation
β βββ runtime/ # Selendra runtime (WASM + native)
β βββ chain-bootstrapper/ # Network bootstrapping tool
β βββ client-runtime-api/ # Client-side runtime APIs
βββ pallets/ # Custom Substrate pallets
β βββ aleph/ # AlephBFT integration
β βββ elections/ # DPoS validator elections
β βββ committee-management/ # Validator committee management
β βββ operations/ # Administrative operations
β βββ dynamic-evm-base-fee/ # EVM fee adjustment
β βββ unified-accounts/ # Native β EVM account mapping
βββ crate/ # Supporting libraries
β βββ finality-aleph/ # AlephBFT finality gadget
β βββ aggregator/ # Signature aggregation
β βββ clique/ # Peer discovery
β βββ rate-limiter/ # Network rate limiting
βββ primitives/ # Core primitive types
βββ scripts/ # Deployment & utility scripts
βββ vendors/ # Vendored dependencies
βββ selendra-client/ # Rust client library (v3.16.0)
βββ frontier/ # Ethereum compatibility (submodule)
βββ bind_account/ # Account binding utilities
- Rust: 1.75.0 or later (see rust-toolchain.toml)
- OS: Linux (recommended), macOS, or WSL2 on Windows
- Memory: 8GB RAM minimum, 16GB recommended
- Disk: 50GB+ free space
-
Install Rust & Dependencies
# Install Rust (if not already installed) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Install build dependencies (Ubuntu/Debian) sudo apt update sudo apt install -y build-essential git clang curl libssl-dev llvm libudev-dev protobuf-compiler # Install build dependencies (macOS) brew install openssl cmake protobuf
-
Clone the Repository
git clone https://github.com/selendra/selendra.git cd selendra # Initialize submodules (Frontier, etc.) git submodule update --init --recursive
-
Build the Node
# Development build (faster compilation) cargo build --release # Production build (optimized for performance) cargo build --profile production
The compiled binary will be at
target/release/selendra-node(ortarget/production/selendra-node)
# Run a local development chain
./target/release/selendra-node \
--dev \
--tmp \
--rpc-cors=all \
--rpc-methods=unsafeAccess the node:
- RPC Endpoint:
http://localhost:9944 - Ethereum RPC:
http://localhost:9933(Web3/Metamask compatible)
# Sync with Selendra mainnet
./target/release/selendra-node \
--chain=mainnet \
--pruning=archive \
--rpc-cors=all \
--rpc-external \
--ws-external \
--rpc-methods=safe \
--name="MySelendraNode"# Run a validator (requires staking)
./target/release/selendra-node \
--chain=mainnet \
--validator \
--name="MyValidator" \
--rpc-methods=safe \
--prometheus-externalFor detailed validator setup, see Validator Guide
Add Selendra to Metamask:
- Network Name: Selendra Mainnet
- RPC URL:
https://rpc.selendra.org - Chain ID:
1961 - Currency Symbol:
SEL - Block Explorer:
https://scan.selendra.org
Connect via Polkadot.js Apps:
- Custom Endpoint:
wss://rpc.selendra.org
// Coming soon: @selendra/sdk
// For now, use @polkadot/api or web3.js
// Option 1: Polkadot.js API (for Substrate calls)
import { ApiPromise, WsProvider } from '@polkadot/api';
const provider = new WsProvider('wss://rpc.selendra.org');
const api = await ApiPromise.create({ provider });
// Query balance
const balance = await api.query.system.account('ACCOUNT_ADDRESS');
console.log('Balance:', balance.data.free.toHuman());
// Option 2: Web3.js (for EVM calls)
import Web3 from 'web3';
const web3 = new Web3('https://rpc.selendra.org');
const balance = await web3.eth.getBalance('0xEVM_ADDRESS');
console.log('Balance:', web3.utils.fromWei(balance, 'ether'), 'SEL');-
Using Hardhat
// hardhat.config.js module.exports = { networks: { selendra: { url: 'https://rpc.selendra.org', chainId: 1961, accounts: [process.env.PRIVATE_KEY] } }, solidity: "0.8.20" };
npx hardhat deploy --network selendra
-
Using Remix IDE
- Set Metamask to Selendra network
- Compile contract in Remix
- Deploy via "Injected Provider - Metamask"
# Install cargo-contract
cargo install cargo-contract
# Create new contract
cargo contract new my_contract
cd my_contract
# Build contract
cargo contract build
# Deploy via Polkadot.js Apps
# 1. Upload WASM & metadata.json
# 2. Instantiate contractModify or add pallets in pallets/:
# Create a new pallet
cargo new --lib pallets/my-pallet
# Add to workspace in Cargo.toml
# [workspace]
# members = [
# ...
# "pallets/my-pallet"
# ]
# Include in runtime (bin/runtime/src/lib.rs)
construct_runtime!(
pub struct Runtime {
...
MyPallet: pallet_my_pallet,
}
);# Run all tests
cargo test --workspace
# Run specific pallet tests
cargo test -p pallet-elections
# Run runtime tests
cargo test -p selendra-runtime
# Run with output
cargo test -- --nocaptureSelendra provides custom precompiles for accessing Substrate functionality from EVM:
| Address | Function | Description |
|---|---|---|
0x0000...0001 |
ECRecover | Ethereum signature recovery |
0x0000...0002 |
SHA256 | SHA-256 hashing |
0x0000...0003 |
RIPEMD160 | RIPEMD-160 hashing |
0x0000...0004 |
Identity | Data copy |
0x0000...0005 |
ModExp | Modular exponentiation |
0x0000...0400 |
SHA3FIPS256 | SHA3-256 (FIPS) |
0x0000...0401 |
ECRecoverPublicKey | Public key recovery |
Coming Soon:
0x0402- Oracle Price Feeds0x0403- Staking Interface0x0404- Governance Interface0x0405- Unified Accounts
System- Core blockchain functionalityAura- Block production (Authority Round)Aleph- AlephBFT finality consensusTimestamp- Block timestampsBalances- Native token managementTransactionPayment- Fee handlingScheduler- Delayed/scheduled calls
Staking- Proof-of-Stake validationElections- DPoS validator electionsCommitteeManagement- Validator committeeSession- Session managementHistory- Historical session dataTreasury- Community fund management (Council-approved)NominationPools- Liquid staking poolsCouncil- Community governance collective (13 members)TechnicalCommittee- Technical governance collective (7 members)Democracy- Public referendums and proposalsCouncilElections- Phragmen-based council electionsPreimage- Proposal preimage storage
Ethereum- Ethereum compatibility layerEVM- EVM execution environmentDynamicEvmBaseFee- Dynamic EVM fee adjustmentUnifiedAccounts- Native β EVM account mapping
Contracts- WASM smart contracts (ink!)
Utility- Batch calls, multi-operationsMultisig- Multi-signature accountsProxy- Proxy accounts & delegationIdentity- On-chain identityVesting- Token vesting schedules
Operations- Admin operationsSudo- Superuser access (transition period, to be removed post-governance maturity)SafeMode- Emergency chain haltTxPause- Transaction filtering
- 2019: Project started
- 2020: First testnet launched
- 2022: v1 mainnet launch
- 2025: v3 mainnet launch (current)
- β Full EVM compatibility via Frontier
- β AlephBFT consensus (sub-second finality)
- β Unified accounts (native β EVM)
- β DPoS staking with nomination pools
- β Dynamic EVM fee adjustment
- β Council governance (13-member council)
- β Democracy & referendum system
- β Treasury with Council approval
- β 35 runtime pallets
- β Mainnet live and operational
- π§ Fix critical security issues (randomness, storage bounds)
- π¦ TypeScript SDK development
- ποΈ Transition governance (reduce sudo, increase council powers)
- π³οΈ First council elections
- π οΈ Enhanced developer tooling
- π± DeFi infrastructure (DEX, oracles)
- π Comprehensive documentation
- π Cross-chain bridges
- π¦ Expanded DeFi ecosystem
- π― Developer adoption in Cambodia and Southeast Asia
- π’ Real-world use cases (remittance, supply chain)
See docs/chain-dev.md for detailed technical roadmap.
We welcome contributions! Here's how to get involved:
-
Fork & Clone
git clone https://github.com/YOUR_USERNAME/selendra.git cd selendra git remote add upstream https://github.com/selendra/selendra.git -
Create a Branch
git checkout -b feature/my-awesome-feature
-
Make Changes & Test
cargo test --workspace cargo fmt cargo clippy -
Submit Pull Request
- Push to your fork
- Open PR against
masterbranch - Include clear description & tests
- Link related issues
- π Bug Fixes: Report or fix bugs
- β¨ Features: Propose new functionality
- π Documentation: Improve guides & docs
- π§ͺ Testing: Add test coverage
- π Security: Report vulnerabilities (security@selendra.org)
- π Translations: Translate documentation
- Follow Rust API Guidelines
- Use
cargo fmtfor formatting - Pass
cargo clippywith no warnings - Write tests for new functionality
- Document public APIs with
///comments
DO NOT open public issues for security vulnerabilities.
- Email: security@selendra.org
- PGP Key: Download
- Bug Bounty: Up to $500K via Immunefi (coming soon)
- Status: In progress
- Firms: CertiK, Trail of Bits
- Scope: Runtime, custom pallets, EVM integration
- Reports: Published at selendra.org/security
β οΈ Randomness: Currently using insecure collective flip (fix in progress)β οΈ Sudo: Superuser key present during governance transition period (removal planned after 6 months)β οΈ Contract Calls: Wasm contracts have limited runtime call access- βΉοΈ Governance: Council system implemented, undergoing testing before sudo removal
See Security Advisory for details.
This project is licensed under the GNU General Public License v3.0 - see LICENSE file.
Copyright (C) 2019-2025 Selendra
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
- Website: selendra.org
- Documentation: docs.selendra.org
- Block Explorer: scan.selendra.org
- GitHub: github.com/selendra
- Discord: discord.gg/selendra
- Telegram: t.me/selendra
- Twitter: @selendra
- Forum: forum.selendra.org
- RPC Endpoint:
https://rpc.selendra.org - WebSocket:
wss://rpc.selendra.org - Testnet RPC:
https://rpc-testnet.selendra.org - Faucet: faucet.selendra.org (coming soon)
- Governance Guide: docs/GOVERNANCE_SETUP.md
- Governance Quick Start: docs/GOVERNANCE_QUICK_START.md
- Substrate Docs: docs.substrate.io
- Polkadot.js: polkadot.js.org
- Frontier: github.com/paritytech/frontier
- AlephBFT: github.com/Cardinal-Cryptography/AlephBFT
Selendra is built on the shoulders of giants:
- Cardinal Cryptography - AlephBFT consensus & Polkadot SDK fork
- Parity Technologies - Substrate framework & Frontier EVM
- Polkadot - Shared security model & ecosystem
- Ethereum Foundation - EVM specification & tooling
- Community Contributors - Bug reports, features, and support
Special thanks to all validators, developers, and community members making Selendra possible.
Built with β€οΈ by the Selendra Team