Five steps: pick a target, read the state, read an account, run your own node if you want one, and sign a transfer.
All three entry points use the same chain and the same API. What differs is what you need in hand before you start.
A curl is enough. State, blocks, accounts, tokens and validators answer JSON with no key and no special header. Start with the next section.
eav7-sdk builds the canonical envelope, signs it with secp256k1 + ML-DSA-44 and submits. You need a wallet file and a balance for the fee.
The node syncs, validates and, with enough stake, produces blocks. A listener is up in minutes; standing for election needs 1,000 EAV7 staked.
Everything here works against any node on the mesh. Start with the public one and swap the URL once yours is up.
https://eavscan.comOpen reads, no key. Same node that serves the explorer.http://127.0.0.1:6070What eav7-core exposes after `run`. Port is set at init time.https://rpc.eavscan.comFor EVM tooling only. Not the native HTTP API./status is the handshake: if it answers, the rest of the API answers.
curl -s https://eavscan.com/status \ -H 'Accept: application/json'
The same endpoint takes a native address (E7…) and an EAVM address (0x…): both point at the same account.
curl -s https://eavscan.com/address/E7A4B2…9F21 \
-H 'Accept: application/json'
{
"balance": "12500000",
"staked": "1000000000",
"nonce": 41,
"nextNonce": 42,
"energy": 8000,
"feeExempt": false,
"isValidator": false,
"tokens": []
}In listen mode the Core only syncs and serves the API. That is enough to develop against real data without depending on somebody else's node.
cd rust cargo build -p eav7-core -p eav7-node --release ./target/release/eav7-core init --dir ./data/core-dev \ --mode listen --port 6072 --allow-private-peers \ --peers http://127.0.0.1:6070 ./target/release/eav7-core run --dir ./data/core-dev ./target/release/eav7-core status --dir ./data/core-dev
Modes, candidacy, default paths and service installation live in Core.
Writing is always a signed transaction. The SDK builds the canonical payload, signs locally and POSTs to /tx — no private key ever leaves your machine.
use eav7_sdk::{Eav7Client, ProductionWallet};
use std::time::Duration;
/// 1 EAV7 = 1 000 000 e7 (CHAIN.UNIT)
const UNIT: u128 = 1_000_000;
let carteira = ProductionWallet::from_file("carteira.json")?;
let cliente = Eav7Client::com_carteira("https://eavscan.com", Box::new(carteira));
// monta, assina localmente (secp256k1 + ML-DSA-44) e envia via POST /tx
let recibo = cliente.transferir("E7DEST…9A02", 5 * UNIT)?;
if !recibo.accepted {
eprintln!("recusada: {}", recibo.reason.unwrap_or_default());
return Ok(());
}
let bloco = cliente.aguardar_confirmacao(&recibo.id, Duration::from_secs(30))?;
println!("confirmada no bloco {}", bloco.block_height);