Daily NetworkDaily Network Documentation

Complete guide to using and building on Daily Network

๐Ÿš€ Getting Started

Welcome to Daily Network โ€” an DVM-compatible blockchain with fast block times and low fees.

Quick Links

Mainnet RPC Testnet RPC Mainnet Explorer Testnet Explorer Testnet Faucet

๐ŸŒ Network Information

Mainnet

ParameterValue
Network NameDaily Network Mainnet
Chain ID824 (0x338)
Currency SymbolDLY
Block Time~3 seconds
Total Supply888 Trillion DLY
RPC URLhttps://rpc.mainnet.dailycrypto.net
Block Explorerhttps://explorer.dailycrypto.net

Testnet

ParameterValue
Network NameDaily Network Testnet
Chain ID825 (0x339)
Currency SymbolDLY
RPC URLhttps://rpc.testnet.dailycrypto.net
Block Explorerhttps://testnet-explorer.dailycrypto.net
Faucethttps://faucet.dailycrypto.net

Smart Contracts

ContractAddress
SFC (Staking)0xfc00face00000000000000000000000000000000
WDLY0xbab09d1930842edFAB1712edaA93E9e9Cbce9D02
DEX Factory0xc089A97918c426141484c7a0D0Ec8a88f64e1d71
DEX Router0x9A096A9EF7e77f76d9df40fCAac14E2500eCb2aa
DDLY (DEX token)0xc13B37915EC516502b31559012798Af09d80fd72

๐Ÿ‘ฅ For Users

Adding Daily Network to MetaMask

Method 1: One-Click Add (Recommended)

  1. Visit rpc.mainnet.dailycrypto.net
  2. Click the "Add to MetaMask" button
  3. Approve the network addition in MetaMask

Method 2: Via ChainList

  1. Go to chainlist.org
  2. Search "Daily Network"
  3. Click "Connect Wallet"

Method 3: Manual Configuration

  1. Open MetaMask โ†’ Network dropdown โ†’ "Add Network manually"
  2. Enter: RPC URL, Chain ID 824, Symbol DLY, Explorer URL
  3. Click "Save"

Staking

Visit the Staking Dashboard to view validators and participate in network staking.

Safe Wallet (Multisig)

Daily Network supports multi-signature wallets via Safe โ€” no app installation required, just a browser and MetaMask.

What is a Multisig Wallet?

A multisig wallet requires multiple signers to approve a transaction before it executes. For example, a 2-of-3 wallet needs 2 out of 3 owners to sign. Ideal for teams, DAOs, and treasury management.

Step-by-Step: Create a Safe Multisig

  1. Add Daily Network to MetaMask first using one of these methods:
    • Visit chainlist.org, search "Daily Network", and click "Add to MetaMask"
    • Or manually add: Network Name: "Daily Network", RPC URL: https://rpc.mainnet.dailycrypto.net, Chain ID: 824, Symbol: DLY
  2. Open wallet.dailycrypto.net in your browser
  3. Click Connect Wallet and connect MetaMask (ensure you're on Daily Network)
  4. Click Create new Safe
  5. Add owner addresses and set the threshold (e.g. 2 of 3 signatures required)
  6. Click Create and confirm in MetaMask โ€” your Safe is deployed

Step-by-Step: Add an Existing Safe Wallet

If you previously created a Safe wallet and want to access it again:

  1. Open wallet.dailycrypto.net in your browser
  2. Click Connect Wallet and connect MetaMask (ensure you're on Daily Network)
  3. Click Add existing Safe
  4. Enter your Safe wallet address (starts with 0x...)
  5. Click Add โ€” your Safe will appear in the sidebar
  6. Click on the Safe to open and manage it

Note: You can only interact with a Safe if you're connected with one of the owner wallets. The Safe address is the same across all owner devices.

Step-by-Step: Send a Transaction

  1. Click New Transaction โ†’ Send tokens
  2. Enter recipient and amount, click Submit
  3. Each required owner confirms in MetaMask
  4. Once threshold is reached, any owner can Execute

Compatible Wallets

Works with MetaMask and any WalletConnect-compatible wallet. No plugin required.

Create and manage multisig wallets at wallet.dailycrypto.net. Make sure to add Daily Network to MetaMask before connecting.

๐Ÿ‘จโ€๐Ÿ’ป For Developers

Web3.js

const Web3 = require('web3'); const web3 = new Web3('https://rpc.mainnet.dailycrypto.net'); const block = await web3.eth.getBlockNumber(); console.log('Latest block:', block);

Ethers.js

const { ethers } = require('ethers'); const provider = new ethers.JsonRpcProvider('https://rpc.mainnet.dailycrypto.net'); const network = await provider.getNetwork(); console.log('Chain ID:', network.chainId); // 824n

Hardhat Configuration

module.exports = { networks: { dailyMainnet: { url: 'https://rpc.mainnet.dailycrypto.net', chainId: 824, accounts: [process.env.PRIVATE_KEY] }, dailyTestnet: { url: 'https://rpc.testnet.dailycrypto.net', chainId: 825, accounts: [process.env.PRIVATE_KEY] } } };

Foundry

forge create --rpc-url https://rpc.mainnet.dailycrypto.net \ --private-key $PRIVATE_KEY \ src/MyContract.sol:MyContract

Supported RPC Methods

Daily Network supports all standard Ethereum JSON-RPC methods including eth_blockNumber, eth_getBalance, eth_sendRawTransaction, eth_call, eth_estimateGas and more.

๐Ÿ–ฅ๏ธ Node Operators โ€” Validators & RPC

This guide explains how to run a Daily Network node (RPC) and how to become a validator. Daily Network is based on Fantom go-opera (rebranded as Daily-Node).

RPC node

Serves JSON-RPC / WebSocket to wallets and dApps. Does not produce blocks.

Validator node

Participates in consensus and seals blocks. Requires unique validator key + SFC stake.

Boot / seed node

Helps new nodes discover peers. Usually operated by the core team.

Before you start

ItemMainnetTestnet
OSUbuntu 22.04 LTS (recommended)
CPU / RAM / Disk4 vCPU ยท 8 GB RAM ยท 200 GB SSD (validator/RPC)
Chain ID824825
P2P port50505051
HTTP RPC port1854518547 (typical)
WebSocket port1854618548 (typical)
Max validators10010
Min validator self-stake (SFC)100,000,000 DLY (100 M DLY)
Min delegation1,000 DLY

Important: New mainnet validators must be approved by the Daily Network team (verified infrastructure + unique key). Running a validator without SFC registration will not earn rewards or appear on stake.dailycrypto.net.

Step 1 โ€” Server hardening

  1. Provision Ubuntu 22.04 VPS (4 vCPU / 8 GB / 200 GB SSD).
  2. Enable SSH key login; disable password SSH.
  3. Open firewall ports:
22/tcp SSH 5050/tcp+udp Mainnet P2P (or 5051 for testnet) 18545/tcp HTTP RPC (if you expose RPC publicly) 18546/tcp WebSocket RPC (optional) 9100/tcp Node exporter (optional monitoring)

Step 2 โ€” Install Daily-Node binary

Build from source or copy the release binary from an existing node:

# Option A โ€” build from GitHub git clone https://github.com/DAILY-Network/daily-node.git cd daily-node make opera sudo install -m 755 build/opera /usr/local/bin/opera opera version # Option B โ€” copy binary from a synced node (same network version) # scp root@<boot-node>:/usr/local/bin/opera /usr/local/bin/opera

Step 3 โ€” Genesis & data directory

Obtain the official genesis file for your network:

  • Mainnet: /opt/daily/mainnet-genesis.g
  • Testnet: /opt/daily/testnet-genesis.g

Contact the Daily Network ops team or copy from a boot node. Then create directories:

sudo mkdir -p /opt/daily/mainnet sudo cp mainnet-genesis.g /opt/daily/mainnet-genesis.g # testnet: use /opt/daily/testnet and testnet-genesis.g

Step 4A โ€” Run an RPC-only node (no validator)

Use this if you only want to serve RPC for your apps โ€” you do not need a validator keystore.

# /etc/systemd/system/daily-mainnet.service [Unit] Description=Daily Network Mainnet RPC Node After=network.target [Service] Type=simple User=root Restart=always RestartSec=5 ExecStart=/usr/local/bin/opera \ --datadir /opt/daily/mainnet \ --genesis /opt/daily/mainnet-genesis.g \ --genesis.allowExperimental \ --port 5050 \ --nat extip:YOUR_PUBLIC_IP \ --bootnodes "enode://BOOTNODE_PUBKEY@157.180.27.58:5050" \ --http --http.addr 0.0.0.0 --http.port 18545 \ --http.api eth,net,web3,ftm,txpool \ --http.corsdomain "*" --http.vhosts "*" \ --ws --ws.addr 0.0.0.0 --ws.port 18546 \ --ws.api eth,net,web3 \ --verbosity 3 LimitNOFILE=65536 [Install] WantedBy=multi-user.target

Replace YOUR_PUBLIC_IP and use current bootnode enodes from the ops team. For production RPC, put nginx + TLS in front of port 18545.

Step 4B โ€” Run a validator node

  1. Create a unique validator key (one key per validator โ€” never reuse):
mkdir -p /opt/daily/mainnet/keystore/validator opera account new --datadir /opt/daily/mainnet --password /opt/daily/mainnet/keystore/validator-password.txt # Save the address shown โ€” this is your validator operator address chmod 600 /opt/daily/mainnet/keystore/validator-password.txt
  1. Export validator pubkey (needed for systemd and SFC):
opera account list --datadir /opt/daily/mainnet
  1. Configure systemd with validator flags:
# Add to ExecStart (validator example) --validator.id N \ --validator.pubkey 0xYOUR_VALIDATOR_PUBKEY \ --validator.password /opt/daily/mainnet/keystore/validator-password.txt \

Full validator service matches the RPC template above, plus the three --validator.* flags. Use a unique --port if multiple validators share one IP.

Step 5 โ€” Start & verify sync

sudo systemctl daemon-reload sudo systemctl enable daily-mainnet sudo systemctl start daily-mainnet sudo journalctl -u daily-mainnet -f # Check peers curl -s -X POST http://127.0.0.1:18545 -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' # Check block height (run twice โ€” should increase) curl -s -X POST http://127.0.0.1:18545 -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Step 6 โ€” Register on SFC (staking contract)

After your node syncs, register the validator on the SFC contract and self-stake at least 100 M DLY:

  • SFC address: 0xfc00face00000000000000000000000000000000
  • UI: stake.dailycrypto.net (connect wallet with your validator operator address)
  • On-chain min: 100,000,000 DLY self-stake to create a validator
// Example: createValidator via ethers.js (after wallet funded with DLY) const sfc = new ethers.Contract( '0xfc00face00000000000000000000000000000000', ['function createValidator(bytes calldata pubkey) external payable'], wallet ); const tx = await sfc.createValidator(VALIDATOR_PUBKEY, { value: ethers.parseEther('100000000'), // 100 M DLY minimum gasLimit: 5000000 }); await tx.wait();

Once registered, your validator appears on the validators page. Users can delegate DLY to you; you earn ~3.5% APR on stake (network parameter).

Step 7 โ€” Expose public RPC (optional)

If you want others to use your RPC endpoint:

  1. Point a subdomain (e.g. rpc.yourdomain.com) to your server IP.
  2. Install nginx with TLS (Let's Encrypt).
  3. Proxy / โ†’ http://127.0.0.1:18545.
  4. Rate-limit and monitor โ€” public RPC receives heavy traffic.

Official public endpoints: rpc.mainnet.dailycrypto.net (mainnet) ยท rpc.testnet.dailycrypto.net (testnet).

Operations checklist

TaskCommand / note
Restart nodesystemctl restart daily-mainnet
Double-sign lockRemove /opt/daily/mainnet/errlock only after confirming no duplicate validator key elsewhere
Disk spaceMonitor /opt/daily/mainnet/chaindata โ€” prune or expand disk before full
NeverRun the same validator key on two servers (causes slashing / errlock)
Testnet firstUse testnet + faucet before mainnet validator

Apply to run a verified validator

To be listed as a Verified Validator on stake.dailycrypto.net:

  1. Run a synced testnet validator successfully for 7+ days.
  2. Provide server specs, location, and monitoring plan.
  3. Fund validator wallet with โ‰ฅ 100 M DLY for SFC self-stake.
  4. Contact Daily Network operations with your validator address and pubkey.

Validators are classified as Verified or Non-Verified based on uptime, infrastructure quality, and team approval.

Quick links

daily-node GitHub Validator list Testnet faucet Network status

๐Ÿ“– Resources

๐ŸŒ RPC Endpoints

Mainnet: rpc.mainnet.dailycrypto.net

Testnet: rpc.testnet.dailycrypto.net

๐Ÿ” Block Explorers

Mainnet: explorer.dailycrypto.net

Testnet: testnet-explorer.dailycrypto.net

๐Ÿ’ฐ Staking

stake.dailycrypto.net

๐Ÿ” Safe Wallet

wallet.dailycrypto.net

๐Ÿ’ง Testnet Faucet

faucet.dailycrypto.net

โšก Network Status

status.dailycrypto.net