WebChain Documentation
Version 2.1 | Last updated: August 16, 2025
WebChain is a high-performance, decentralized blockchain platform powering the E-TALK IKỌBỌ MARKETPLACE, enabling seamless e-commerce integration for global transactions. Built with WebRTC for direct peer-to-peer (P2P) validator communication and EVM Wallets compatibility, WebChain delivers gas-free, instant transactions at scale, supporting up to 1,000,000 transactions per second (TPS). Its P2P architecture eliminates gas fees, making it ideal for high-volume, cost-efficient applications.
Instant Transactions
Near-instant transaction confirmation with zero gas fees, powered by our validator-based consensus mechanism.
Secure & Decentralized
True peer-to-peer architecture with WebRTC connections between nodes, eliminating central points of failure.
MetaMask Integration
Full compatibility with MetaMask and other Ethereum wallets through our JSON-RPC endpoint.
Use Cases
- Cross-Border Payments: Facilitates fast, secure, and cost-free international transactions, enabling merchants and customers to transact globally without intermediaries.
- E-Talk BNPL (Buy Now, Pay Later): Powers flexible payment plans on the E-TALK IKỌBỌ MARKETPLACE, leveraging WebChain’s gas-free, instant transactions for seamless deferred payments.
- V1 Card Payments: Supports traditional card-based payments integrated with blockchain transparency, ensuring secure and efficient processing for online purchases.
Performance Comparison
WebChain’s industry-leading 1,000,000 TPS outperforms major blockchains, making it a top choice for high-volume e-commerce applications.
Transaction Throughput
Core Features
Blockchain Architecture
- WebRTC P2P Network: Custom blockchain built with WebRTC enabling direct validator communication
- Hybrid Consensus: PoC+ (Proof-of-Concept+) combining PoS and PoC elements
- On-chain Operations: Supports mining, staking, order broadcasting, and P2P validators/peers
- EVM Compatibility: Fully compatible with MetaMask, Ethereum wallets, and DApps
- Validator Mining: Validators can mine ETK every 60 minutes after staking 370 ETK and maintaining 0.0000001 ETK balance
- Instant Confirmations: Transactions deposited into off-chain wallet from the user mining on-chain wallet in milliseconds
- WooCommerce Integration: Broadcasts all WooCommerce completed orders to the blockchain
Technical Integration
- JSON-RPC Endpoint: Full Ethereum-compatible endpoint for MetaMask integration at
https://rpc.webchain.e-talk.xyz/ - Custom REST API: Includes /rpc, /supply, /verify-validator, /process-order, /mining-events, and /validator endpoints
- Peer System: Complete validator registration and peer management system
- Transaction Viewer: Real-time transaction display with verification status indicators
- E-Talk Plugin: Allows vendors to broadcast trade history to WebChain
Recent Enhancements
- On-chain Mining: Validator mining functionality now fully operational
- Multi-chain Support: ETK Scan verifies transactions on Ethereum, BSC, Polygon, and WebChain
- Auto-broadcasting: WooCommerce sites using sync plugins automatically broadcast completed orders
Technical Specifications
Blockchain Parameters
| Parameter | Value | Description |
|---|---|---|
| Chain ID | 1000001 (0xF4241) | Unique identifier for MetaMask |
| Consensus | PoC+ | Proof-of-Concept+ (PoS/PoC hybrid) |
| Block Time | Instant | Transactions processed immediately |
| Transactions per Block | 5 | Maximum transactions per block |
| Validator Requirements | 370 ETK Staked + 0.0000001 ETK Balance | Minimum to participate in validation |
| Mining Interval | 60 minutes | Frequency validator can mine ETK |
Transaction Structure
{
"from": "0x...",
"to": "0x...",
"amount": 1.23,
"nonce": 5,
"note": "Payment",
"timestamp": 1234567890,
"hash": "0x..."
}
JSON-RPC Endpoint
Active and ready at: https://rpc.webchain.e-talk.xyz
Send POST requests with JSON-RPC payloads to interact with the WebChain mainnet (version 1.0.0, powered by PoC+).
Supported Methods
| Method | Supported | Notes |
|---|---|---|
| eth_chainId | ✓ | Returns chain ID |
| net_version | ✓ | Returns network version |
| eth_getBalance | ✓ | Returns account balance |
| eth_sendTransaction | ✓ | Processes signed transactions |
| eth_sendRawTransaction | ✓ | Processes signed transactions |
| eth_getTransactionReceipt | ✓ | Returns transaction details |
| eth_blockNumber | ✓ | Returns latest block number |
| eth_getBlockByNumber | ✓ | Returns block information |
| eth_getTransactionCount | ✓ | Returns account nonce |
ETK-Specific Methods
| Method | Supported | Notes |
|---|---|---|
| etk_sendRawTransaction | ✓ | Send raw ETK transaction (OTP supported, validator-only) |
| etk_getBalance | ✓ | Get on-chain ETK balance (decimal string) |
| etk_getTransactionCount | ✓ | Returns nonce for a wallet (number of transactions sent) |
| etk_getBlockByNumber | ✓ | Returns block info including transactions |
| etk_getBlockByHash | ✓ | Returns block info by block hash |
| etk_getTransactionByHash | ✓ | Return transaction details by hash |
| etk_blockNumber | ✓ | Returns the latest block index |
| etk_syncing | ✓ | Returns syncing status of WebChain node |
| etk_chainId | ✓ | Returns chain ID of WebChain network |
| etk_gasPrice | ✓ | Returns gas price (always 0 ETK) |
| etk_getValidators | ✓ | Returns list of validators with on/off-chain balances |
| etk_getSupply | ✓ | Returns total supply of ETK |
Send Raw Transaction (Validator Only)
Sample Node.js Script
const { ethers } = require("ethers");
const fetch = require("node-fetch");
const RPC_URL = "https://rpc.webchain.e-talk.xyz";
const privateKey = "0x...";
const toAddress = "0x...";
const amountToSend = "20";
async function sendRawTx() {
const provider = new ethers.providers.JsonRpcProvider(RPC_URL);
const wallet = new ethers.Wallet(privateKey, provider);
const nonce = await provider.getTransactionCount(wallet.address);
const tx = {
nonce,
to: toAddress,
value: ethers.utils.parseEther(amountToSend),
gasLimit: ethers.utils.hexlify(21000),
gasPrice: ethers.utils.hexlify(0),
chainId: 1000001
};
const signedTx = await wallet.signTransaction(tx);
const payload = {
jsonrpc: "2.0",
id: 1,
method: "eth_sendRawTransaction",
params: [signedTx]
};
const response = await fetch(RPC_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload)
});
const json = await response.json();
console.log("Transaction Hash:", json.result);
}
sendRawTx();
Transaction Storage & Blockchain Ledger
WebChain uses a LevelDB-backed blockchain ledger for production-grade storage, with a JSON ledger for P2P sync and offline access.
- LevelDB Storage: Fast, binary storage for blocks and transactions
- JSON Ledger: Human-readable fallback for P2P sync and exploration
- Immutability: Cryptographic hashing ensures tamper-evident chain
- Validator Nodes: Full nodes with local LevelDB, synced via WebRTC
Validator Participation
Stake 0.0000001 ETK to become a validator, enabling transaction submission and consensus participation.
Block Structure
{
"index": 43,
"timestamp": 1698863000,
"transactions": [...],
"previous_hash": "a4f...",
"hash": "c8e...",
"merkle_root": "e9c...",
"nonce": 102,
"validator": "0xABCD..."
}
Transaction Index Table: wp_webchain_transactions
| Column | Type | Description |
|---|---|---|
| id | BIGINT | Primary key |
| block_index | INT | Block number (-1 for pending) |
| tx_hash | VARCHAR(64) | Transaction hash |
| from | VARCHAR(42) | Sender address |
| to | VARCHAR(42) | Recipient address |
| amount | DECIMAL(20,8) | Transaction amount |
| nonce | INT | Transaction nonce |
| note | TEXT | Optional note |
| timestamp | BIGINT | Unix timestamp |
| status | ENUM | ‘pending’ or ‘confirmed’ |
WebChain Decentralized Exchange (DEX) API
WebChain DEX provides endpoints for real-time market data, trading, liquidity management, and analytics, enabling seamless integration with platforms and tools.
1. Get ETK Price [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/price/etk
Description: Returns the current price of ETK.
2. Get All Pools [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/pools
Description: Returns a list of all liquidity pools.
3. Get Pool Information [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/pool/{token_a}/{token_b}
Description: Returns detailed info for a specific liquidity pool. Replace {token_a} and {token_b} with token symbols.
4. Add Liquidity [Requires Login]
Method: POST
URL: https://rpc.webchain.e-talk.xyz/dex/add-liquidity
Body Parameters:
{
"token_a": "string",
"token_b": "string",
"amount_a": "number",
"amount_b": "number"
}
Description: Adds liquidity to a specified pool.
5. Remove Liquidity [Requires Login]
Method: POST
URL: https://rpc.webchain.e-talk.xyz/dex/remove-liquidity
Body Parameters:
{
"pool_id": "string",
"liquidity": "number"
}
Description: Removes a portion of liquidity from a pool.
6. Swap Tokens [Requires Login]
Method: POST
URL: https://rpc.webchain.e-talk.xyz/dex/swap
Body Parameters:
{
"input_token": "string",
"output_token": "string",
"input_amount": "number",
"min_output": "number (optional)"
}
Description: Swaps tokens in the DEX pool.
7. Get My Liquidity Positions [Requires Login]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/my-liquidity
Description: Returns the logged-in user's liquidity positions.
8. Get Trade History [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/history
Query Parameters (optional):
wallet: string
limit: number (default: 50)
Description: Returns trade history. Can filter by wallet.
9. Get Swap Quote [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/quote
Query Parameters:
{
"input_token": "string",
"output_token": "string",
"input_amount": "number"
}
Description: Returns estimated output amount for a swap.
10. Get All Balances for Wallet [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/wallet/{wallet}/all-balances
Description: Returns balances for the specified wallet address.
11. Get All Tokens with ETK [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/tokens/all-with-etk
Description: Returns a list of all tokens paired with ETK.
12. Debug My Liquidity [Requires Login]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/debug-liquidity
Description: Returns detailed info of user's liquidity for debugging.
13. Get supply info [public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/supply
Description: Returns ETK supply info.
14. Get Volume for Pair [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/volume-pair/{token_a}/{token_b}
Description: Returns 24h volume for a token pair.
15. Get Token Volume [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/volume/{token}
Query Parameters (optional):
days: number (default 7, max 30)
Description: Returns volume for a token over a period of days.
16. Market Summary [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/market/summary
Description: Provides market summary for all trading pairs.
17. Pair Data [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/market/pair/{pair_id}
Description: Returns market data for a specific trading pair.
18. Historical Data [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/market/history/{pair_id}?interval=1
Description: Returns historical data for charts. Interval in hours/days.
19. Get All Trading Pairs [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/pairs
Description: Returns all available trading pairs.
20. CMC Metadata [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/cmc/metadata
Description: Returns CoinMarketCap metadata for ETK.
21. CMC Listings [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/cmc/listings
Description: Returns CoinMarketCap token listings.
22. CoinGecko Market [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/coingecko/market
Description: Returns market data from CoinGecko for ETK and pairs.
23. WUSD Reserve [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/wusd-reserve
Description: Returns current WUSD reserve in DEX pools.
24. DEX Fee Earnings [Public]
Method: GET
URL: https://rpc.webchain.e-talk.xyz/dex/fee-earnings
Description: Returns total fees earned from DEX liquidity pools.
25. Fear & Greed Index [Public]
Method: GET URL: https://rpc.webchain.e-talk.xyz/fear-greed Description: Returns a sentiment index (0–100) reflecting market emotions based on DEX data.
The index measures market sentiment from Extreme Fear (0) to Extreme Greed (100), calculated using multiple real-time metrics:
- Price Volatility: Stability of token prices across pairs.
- Trading Volume: Current vs. average daily volume.
- Liquidity: Total available liquidity in pools.
- Orderbook Movement: Average price changes signaling demand shifts.
- Pair Activity: Number of active trading pairs.
This helps gauge market mood and trading behavior on WebChain DEX in real-time.
Exchange Integration Guide
🌐 WebChain Is a Layer-1 Blockchain
WebChain is a full Layer-1 blockchain (PoC+) with its native coin ETK. It supports standard Ethereum-style JSON-RPC methods, enabling exchanges to integrate using familiar tools. For faster and safer operations, WebChain also provides a REST-based RPC Gateway that adds extra security features such as OTP verification and validator approval.
🔧 Standard JSON-RPC Integration (Recommended for Exchanges)
Connect to our RPC endpoint exactly like Ethereum:
POST https://rpc.webchain.e-talk.xyz
{
"jsonrpc": "2.0",
"method": "eth_getBalance",
"params": ["0xYourHotWallet", "latest"],
"id": 1
}
Supported JSON-RPC Methods
eth_chainId– Returns chain ID [Recommended]net_version– Returns network version [Recommended]eth_getBalance– Returns account balance [Recommended]eth_sendTransaction– Processes signed transactions [Legacy/Optional]eth_sendRawTransaction– Processes raw signed transactions [Recommended]eth_getTransactionReceipt– Returns transaction details [Recommended]eth_blockNumber– Returns latest block number [Recommended]eth_getBlockByNumber– Returns block information [Legacy/Optional]eth_getTransactionCount– Returns account nonce [Recommended]
ETK-Specific JSON-RPC Methods
etk_sendRawTransaction– Broadcast ETK transaction with OTP support [Recommended]etk_getBalance– Get ETK balance (on-chain) [Recommended]etk_getTransactionCount– Get nonce for a wallet [Recommended]etk_getBlockByNumber– Fetch block info by number [Recommended]etk_getBlockByHash– Fetch block info by hash [Recommended]etk_getTransactionByHash– Get transaction details by hash [Recommended]etk_blockNumber– Latest block number [Recommended]etk_syncing– Node syncing status [Recommended]etk_chainId– WebChain chain ID [Recommended]etk_gasPrice– Returns 0 ETK [Recommended]etk_getValidators– List of validators with balances [Recommended]etk_getSupply– Total ETK supply [Recommended]
Example Use Cases
- Deposit Processing: Track incoming transactions using
etk_getTransactionByHashoreth_getLogs - Withdrawal Processing: Broadcast validator-approved signed withdrawals using
etk_sendRawTransaction - Bulk Withdrawals: Submit multiple validator-approved transactions in one call via
etk_sendRawTransaction - OTP Verification: When sending via
etk_sendRawTransaction, OTP verification ensures security for off-chain to on-chain transfers
🔐 WebChain RPC Gateway (Enhanced Integration)
Exchanges may use the REST-based RPC Gateway for simpler integration. This adds OTP/email verification, validator approval, and automatic wallet safety checks.
1. Get User Balance [Recommended]
GET /balance?user_id=99999&check_validator=true
Accept: application/json
2. Off-chain to On-chain Transfer (OTP) [Recommended]
POST /transfer
Content-Type: application/json
{
"user_id": 1,
"amount": 50.0,
"validator_address": "0x"
}
3. On-chain Withdrawal (OTP) [Recommended]
POST /withdraw
Content-Type: application/json
{
"user_id": 1,
"amount": 1.0,
"to": "0xExternalWalletAddressHere",
"is_offchain": false,
"validator_address": "0x"
}
4. On-chain Withdrawal to Off-chain (OTP) [Recommended]
POST /withdraw
Content-Type: application/json
{
"user_id": 1,
"amount": 6.0,
"to": "",
"is_offchain": true,
"validator_address": "0x"
}
5. Confirm Transaction with OTP [Recommended]
POST /confirm_tx
Content-Type: application/json
{
"user_id": 1,
"otp": "dgXq8a"
}
📋 Prerequisites
- Validator address (cold wallet recommended)
- Static IP addresses for servers
- RPC endpoint:
https://rpc.webchain.e-talk.xyz
📝 Onboarding
Submit validator address, company info, IP addresses, and transaction volume to WebChain admin for approval.
🔒 Security Requirements
| Requirement | Description |
|---|---|
| IP Whitelisting | All API calls must come from approved IPs |
| Rate Limiting | Default: 1000 req/min for exchanges |
| HSM Usage | Mandatory for validator key storage |
| Cold Wallet | Validator address should be cold storage |
⚠️ Troubleshooting
| Error Code | Description | Solution |
|---|---|---|
| -32001 | Unauthorized validator | Check validator approval status |
| -32005 | Rate limit exceeded | Request higher rate or slow requests |
| -32602 | Invalid params | Verify transaction structure |
| -32003 | Chain tip mismatch | Sync to latest block |
WebChain Validator Layer (WVM-20 Tokens)
Core Features
Token Creation
Create custom WVM-20 tokens with configurable parameters including symbol, name, decimals, initial supply, and mintability, directly at the protocol level.
Validator Governance
Token creation and network operations require validator approval via PoS consensus, ensuring security and decentralization.
Wallet Integration
Seamless integration with EVM-compatible wallets (e.g., MetaMask) and off-chain wallets (e.g., E-Talk) for token management, transfers, and bridging.
Token Transfers
Transfer WVM-20 tokens and ETK between wallets with blockchain-backed, gas-free and instant confirmation.
Minting Capability
Mint additional WVM-20 tokens (creator-only) and ETK via PoS staking, with instant on-chain and off-chain wallet deposits.
Balance Tracking
Real-time balance tracking for WVM-20 tokens and ETK (on-chain and off-chain) across wallet addresses.
Database Structure (Protocol Level)
The Validator Layer maintains internal structures to manage tokens and validator activity:
webchain_tokens - Stores token information and status
webchain_token_approvals - Tracks validator votes on tokens
webchain_token_balances - Maintains token balances per wallet
webchain_token_transfers - Records all token transfer transactions
webchain_governance_proposals - Governance proposal management
webchain_governance_votes - Tracks votes on governance proposals
REST API Endpoints
The Validator Layer exposes a comprehensive REST API for token operations:
| Endpoint | Method | Description |
|---|---|---|
/tokens | POST | Create a new token |
/tokens | GET | List all tokens |
/tokens/{id}/approve | POST | Vote on token approval (validators only) |
/wallet | POST | Set wallet address |
/wallet | GET | Get wallet address |
/tokens/{id}/transfer | POST | Transfer tokens |
/tokens/{id}/mint | POST | Mint tokens (creator only) |
/wallet/{wallet}/balances | GET | Get token balances for a wallet |
/tokens/{id}/metamask | GET | Get token info for MetaMask import |
/network | GET | Get WebChain network information |
Token Creation Lifecycle
- User sets their wallet address
- User submits token creation request with parameters
- Token enters “pending” status awaiting validator approval
- Validators vote to approve or reject the token
- When sufficient approvals are reached, the token is finalized
- Finalized tokens are broadcast to the blockchain and become active
- Initial token supply is minted to the creator’s wallet
Developer Hooks
Developers can extend functionality via hooks:
// Filter to modify token data
add_filter('webchain_token_data', function($token_data, $token_id) {
return $token_data;
}, 10, 2);
// Action when token is approved
add_action('webchain_token_approved', function($token_id, $token_row) {
// Custom logic
}, 10, 2);
// Action when token is rejected
add_action('webchain_token_rejected', function($token_id, $token_row) {
// Custom logic
}, 10, 2);
Reference Implementation: WordPress Plugin
To make WVM-20 tokens accessible to non-technical users, WebChain provides a reference WordPress plugin. This plugin offers a full UI and shortcode interface for interacting with the Validator Layer.
Shortcode Interface
<!-- Example usage -->
[webchain_token_platform]
- Network configuration for EVM wallets
- Wallet address management
- Token creation form
- Token approval status chart
- Token transfer functionality
- Token minting capability
- Validator approval interface (for validators)
- Token balance display
Installation (WordPress Plugin)
- Install the WebChain Validator Plugin in WordPress
- On activation, required database tables are created automatically
- Add the shortcode
[webchain_token_platform]on any page to display the interface - Users must set their wallet address before creating tokens
- Validators can approve or reject token creation requests
MetaMask Integration
Add WebChain to MetaMask with:
| Parameter | Value |
|---|---|
| Network Name | WebChain |
| RPC URL | https://rpc.webchain.e-talk.xyz |
| Chain ID | 1000001 |
| Currency Name | ikọbọ |
| Currency Symbol | ETK |
| Block Explorer | https://e-talk.xyz/webchain/?tx= |
| Icon URL | https://e-talk.xyz/wp-content/uploads/2025/01/e-talk-logo32-x-32-px.webp |
WooCommerce Integration
Process WooCommerce orders on WebChain via:
| Endpoint | Method | Description |
|---|---|---|
/verify-validator | POST | Verifies a user’s validator status |
/process-order | POST | Processes WooCommerce orders on the blockchain |
Order Data Structure
{
"order_id": 123,
"amount": 10.50,
"currency": "USD",
"customer": {
"id": 456,
"email": "user@example.com"
},
"items": [{
"product_id": 789,
"name": "Product Name",
"quantity": 1,
"price": 10.50
}],
"user_email": "validator@example.com",
"wallet": "0x..."
}
Non-CMS Platform Integration
If your platform does not use WordPress, you can broadcast orders to WebChain using the HTTP request below. This works on any language or stack that can make HTTP requests.
### 1. Test WebChain Order Broadcast
POST https://rpc.webchain.e-talk.xyz/process-order
Content-Type: application/json
{
"user_email": "validator@e-talk.xyz",
"wallet": "0x1234567890abcdef1234567890abcdef12345678",
"order_data": {
"order_id": 9999,
"amount": 10.50,
"currency": "USD",
"customer": {
"id": 1204,
"email": "test@e-talk.xyz"
},
"items": [
{
"product_id": 111,
"name": "Test Product",
"quantity": 1,
"price": 10.50
}
]
}
}























