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-alpine.metalblockchain.org/ext/bc/yQUjkpNYeiJZEn1daa7dQJbysxdXLtz1QhTTdu1mwaxoEJwiJ/rpc
Alpine upgrades frequently — current genesis 2026-08-20 (chain id
8012f120…). If a cached endpoint or chain id stops working, re-read this page (or/network/endpoints.md) for the current values.
# 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 (core token supply)
curl -s -X POST <RPC> -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"pulsevm.getTableRows","params":{
"json":true,"code":"pulse.token","scope":"SYS","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"}}'History & indexed queries (Hyperion v2): https://a-chain-alpine-hyperion.metalblockchain.org/v2/… (e.g. /v2/history/get_actions?limit=10, /v2/health). Antelope-style /v1/chain REST is not currently exposed on Alpine — use the native JSON-RPC methods above.
Full method table: /build/api. Endpoints & chain IDs: /network/endpoints.
Interacting with the XPR 1:1 demo network
A community-operated demonstration chain running a byte-exact import of XPR Network testnet state on PulseVM (details: /network/one-to-one-demo.md). Useful to agents because it serves both API styles and has production-scale state:
- RPC (native JSON-RPC,
pulsevm.*):https://xpr-rpc-testnet.pulsevm.dev - REST (Antelope
/v1/chain/*, eosjs-compatible):https://xpr-rpc-testnet.pulsevm.dev/v1/chain/get_info,/v1/chain/get_table_rows, … - Hyperion v2 history:
https://xpr-hyperion-testnet.pulsevm.dev/v2/… - Explorer:
https://testnet.explorer.pulsevm.dev - Chain id:
71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd· core token XPR (4 decimals) · system contracts undereosio*names (notpulse*)
Demo caveats: single validator; may be re-imported from newer snapshots; K1 keys only for signing on this node until it is re-imported on a post-#69 build. Don't build anything durable against it.
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. Key types: K1 (secp256k1), R1 (secp256r1) and WebAuthn — R1/WebAuthn authority-key verification merged upstream 2026-09-01 (pulsevm#69). - Core token on Alpine: SYS (4 decimals); on the 1:1 demo network: XPR (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.