Skip to content

API Reference ​

DotOne Smart Chain exposes a standard set of APIs for developers, researchers, and integrators. All public endpoints follow Ethereum-compatible JSON-RPC conventions, making integration straightforward for any EVM-compatible tooling.


RPC Endpoints ​

Mainnet ​

TypeEndpoint
HTTPS RPChttps://rpc.dotone.network
WebSocketwss://ws.dotone.network
Chain ID505

Testnet ​

Coming soon — Testnet is currently in development. Endpoints and Chain ID will be published here once it's available.


JSON-RPC API ​

DotOne is fully compatible with the Ethereum JSON-RPC specification. All standard eth_, net_, and web3_ namespaces are supported.

Example — Get Latest Block Number ​

Request:

bash
curl -X POST https://rpc.dotone.network \
  -H "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "method": "eth_blockNumber",
    "params": [],
    "id": 1
  }'

Response:

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x1a2b3c"
}

Example — Get Transaction by Hash ​

Request:

bash
curl -X POST https://rpc.dotone.network \
  -H "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "method": "eth_getTransactionByHash",
    "params": ["0x{transaction_hash}"],
    "id": 1
  }'

Example — Get Wallet Balance ​

Request:

bash
curl -X POST https://rpc.dotone.network \
  -H "Content-Type: application/json" \
  --data '{
    "jsonrpc": "2.0",
    "method": "eth_getBalance",
    "params": ["0x{wallet_address}", "latest"],
    "id": 1
  }'

Response:

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x56BC75E2D63100000"
}

Balance is returned in Wei. Divide by 10^18 to convert to DOTO.


WebSocket API ​

WebSocket connections allow real-time subscriptions to on-chain events without polling.

Connect ​

js
const ws = new WebSocket("wss://ws.dotone.network");

Subscribe to New Block Headers ​

js
ws.send(JSON.stringify({
  "jsonrpc": "2.0",
  "method": "eth_subscribe",
  "params": ["newHeads"],
  "id": 1
}));

Subscribe to Pending Transactions ​

js
ws.send(JSON.stringify({
  "jsonrpc": "2.0",
  "method": "eth_subscribe",
  "params": ["newPendingTransactions"],
  "id": 2
}));

Subscribe to Contract Logs ​

js
ws.send(JSON.stringify({
  "jsonrpc": "2.0",
  "method": "eth_subscribe",
  "params": [
    "logs",
    {
      "address": "0x{contract_address}",
      "topics": []
    }
  ],
  "id": 3
}));

Explorer API ​

The DotOne Explorer exposes a REST API for querying indexed blockchain data — useful for analytics, dashboards, and monitoring tools.

Base URL: https://dotscan.one/api/

Common Endpoints ​

Get Transaction Details

GET /api?module=transaction&action=gettxinfo&txhash={tx_hash}

Get Address Transaction History

GET /api?module=account&action=txlist&address={wallet_address}&page=1&offset=20

Get Token Transfers for Address

GET /api?module=account&action=tokentx&address={wallet_address}

Get Block Details

GET /api?module=block&action=getblockreward&blockno={block_number}

Get Contract ABI

GET /api?module=contract&action=getabi&address={contract_address}

Supported Libraries ​

DotOne is compatible with all standard EVM development libraries:

LibraryLanguageUsage
ethers.jsJavaScript / TypeScriptWallet, contract, provider interactions
web3.jsJavaScriptFull Ethereum API coverage
viemTypeScriptModern, type-safe EVM client
web3.pyPythonBackend integrations and scripts
ethers-rsRustHigh-performance applications

Connect with ethers.js ​

js
import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://rpc.dotone.network");

const blockNumber = await provider.getBlockNumber();
console.log("Latest block:", blockNumber);

Connect with web3.py ​

python
from web3 import Web3

w3 = Web3(Web3.HTTPProvider("https://rpc.dotone.network"))

print("Connected:", w3.is_connected())
print("Latest block:", w3.eth.block_number)

Rate Limits ​

Public RPC endpoints are available for development and light usage. For production applications requiring consistent throughput:

  • Use a dedicated node or private RPC endpoint
  • Implement request batching where possible
  • Use WebSocket subscriptions instead of polling for real-time data
  • Cache responses for static or slowly-changing data (e.g. block confirmations)

For high-volume integrations, contact the DotOne team regarding dedicated infrastructure access.


Further Reference ​