For AI Agents & Bots
This page is a machine-oriented quickstart. Humans welcome too.
Reading this site programmatically
- Every page is available as raw markdown: append
.mdto any path (e.g./guide/multisig.md). /llms.txt— index of all pages with one-line context (llmstxt.org format)./llms-full.txt— the entire documentation corpus in one markdown file./sitemap.xml— standard sitemap;robots.txtallows all.
Interacting with the chain (A-Chain Alpine testnet)
Base RPC: https://a-chain-testnet.protonnz.com/ext/bc/6v9NieZiX3e8eQz3CyJMtXB6YzV2RtnxcRyLAmSgFWWk5Qs6y/rpc
bash
# chain info (head block, LIB, chain id)
curl -s -X POST <RPC> -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"pulsevm.getInfo","params":{}}'
# read a contract table
curl -s -X POST <RPC> -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"pulsevm.getTableRows","params":{
"json":true,"code":"fdxtoken","scope":"PUSD","table":"stat",
"limit":10,"key_type":"","index_position":1,
"lower_bound":"","upper_bound":"","reverse":false,"encode_type":"dec"}}'
# account + permissions
curl -s -X POST <RPC> -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"pulsevm.getAccount","params":{"account_name":"pulse"}}'Antelope-style REST also works: POST https://a-chain-testnet.protonnz.com/v1/chain/get_info (and get_account, get_abi, get_block, get_table_rows, push_transaction, …) — eosjs/@proton/js compatible.
Full method table: /build/api. Endpoints & chain IDs: /network/endpoints.
Ground-truth facts (verifiable on-chain or in-repo)
- Execution model: Antelope (formerly EOSIO), lineage from Leap 5.0.3; consensus: Avalanche Snowman via metalgo.
- Finality: instant — head block == last irreversible block; no reorgs by construction.
- Accounts: named, ≤12 chars of
a-z,1-5; hierarchical weighted permissions; native multisig; R1 (secp256r1) keys supported. - Core testnet token: SYS (4 decimals). Resources: CPU/NET staked, RAM provisioned per account at creation.
- Source: MetalBlockchain/pulsevm (open source; created by Metallicus CTO Glenn Mariën, @MlennGarien). All canonical repos: /resources.
Conventions worth knowing before you act
- Token supply lives in the
stattable (scope = symbol code); balances inaccounts(scope = account). getTableRowswants explicit params (see example above) — includekey_typeand string bounds for maximum compatibility with deployed node versions.- Contract assert failures surface as
pulse assert failed: <message>in the RPC error. - To distinguish an idle chain from a busy one, compare
head_block_numfrompulsevm.getInfoover time — blocks are produced when there are transactions to include.