Testnet Up

A-Chain Alpine — public endpoint

Run by protonnz. This host serves both the raw MetalGo node API and a Hyperion indexer for A-Chain Alpine, the PulseVM testnet on Tahoe.

Live status

Head block
Current builder
Last irreversible
Server time (UTC)

Recent producers (captured client-side; refreshes every 3 s — newest on the right)

collecting…
Snowman picks one validator per block. Over time the spread approaches uniform across the validator set.

Network identity

Pulse runs as a subnet on Metal Blockchain, so an A-Chain endpoint has four identifiers, each addressing a different layer. Antelope had one "chain ID" — Metal has a layered model.

Subnet ID zT2upfR4BSC55bvxLSbkuHBAcWL7jeG9aJwo8BdEGvV7NCxLW
The validator-set identifier on the P-Chain. A subnet is a group of validators that have agreed to run one or more blockchains. track-subnets in your metalgo config takes this value. Created once when Metallicus issued the CreateSubnetTx.
Blockchain ID 6v9NieZiX3e8eQz3CyJMtXB6YzV2RtnxcRyLAmSgFWWk5Qs6y
The instance of A-Chain running inside the subnet above. URLs use this: /ext/bc/<blockchainID>/rpc. Per-chain config lives at ~/.metalgo/configs/chains/<blockchainID>.json. Issued by the P-Chain when Metallicus ran CreateBlockchainTx; encodes "this subnet runs the Pulse VM with this genesis".
Chain ID 0d6f033e887fae475d641104b6e87762b6c869e87a101afeeb64d608ab376618
The Antelope-style chain ID — what gets mixed into every transaction signing digest. This is what pulsevm-js, pulse-cli, and any signer use to bind a signature to this specific chain so a tx can't be replayed elsewhere. Returned by pulsevm.getInfo. Different value, same purpose as cleos get info's chain_id.
Pulse VM ID rXcAFxZvio99epp6TzEwYfexCfPAbJuBTMsjUUoiT7PkVykNs
Identifies the Pulse virtual machine binary that MetalGo loads as a plugin. Same on every Pulse subnet on every network — testnet, mainnet, devnet — because they all run the same VM. Your plugin file at ~/.metalgo/plugins/<VM_ID> must be named exactly this string.

Which one do I use?

Doing thisReach for
Configuring metalgo to follow this subnetSubnet ID
Hitting the JSON-RPC / building a URLBlockchain ID
Signing a transactionChain ID
Naming the plugin binary in the plugins dirPulse VM ID

MetalGo endpoints (raw node API)

Reverse-proxied to the local metalgo on 127.0.0.1:9650. API reference: metalgo APIs.

Node info

curl -X POST -H 'content-type: application/json' \
  --data '{"jsonrpc":"2.0","method":"info.getNodeID","params":{},"id":1}' \
  https://a-chain-testnet.protonnz.com/ext/info

Pulse JSON-RPC (chain head, accounts, tables, push tx)

curl -s -X POST -H 'content-type: application/json' \
  --data '{"jsonrpc":"2.0","method":"pulsevm.getInfo","params":{},"id":1}' \
  https://a-chain-testnet.protonnz.com/ext/bc/6v9NieZiX3e8eQz3CyJMtXB6YzV2RtnxcRyLAmSgFWWk5Qs6y/rpc
curl -s -X POST -H 'content-type: application/json' \
  --data '{"jsonrpc":"2.0","method":"pulsevm.getAccount","params":{"account_name":"protonnz"},"id":1}' \
  https://a-chain-testnet.protonnz.com/ext/bc/6v9NieZiX3e8eQz3CyJMtXB6YzV2RtnxcRyLAmSgFWWk5Qs6y/rpc

P-Chain (validators)

curl -s -X POST -H 'content-type: application/json' \
  --data '{"jsonrpc":"2.0","method":"platform.getCurrentValidators","params":{},"id":1}' \
  https://a-chain-testnet.protonnz.com/ext/bc/P

Hyperion API (history + state index)

Reverse-proxied to the local Hyperion API on 127.0.0.1:7000 (release/3.6 branch). Upstream: eosrio/Hyperion.

Health

curl -s https://a-chain-testnet.protonnz.com/v2/health | jq

Recent actions

curl -s 'https://a-chain-testnet.protonnz.com/v2/history/get_actions?limit=5' | jq

Account state

curl -s 'https://a-chain-testnet.protonnz.com/v2/state/get_account?account=protonnz' | jq

Transaction by id

curl -s 'https://a-chain-testnet.protonnz.com/v2/history/get_transaction?id=<TX_ID>' | jq

Note A handful of v2 endpoints (get_creator, get_created_accounts) and the legacy /v1/chain/* surface aren't fully wired in 3.6 — see the 3.6 endpoint test report.

Programmatic access

TypeScript (pulsevm-js)

import { PulseAPI } from '@metalblockchain/pulsevm-js'

const api = new PulseAPI(
  'https://a-chain-testnet.protonnz.com/ext/bc/6v9NieZiX3e8eQz3CyJMtXB6YzV2RtnxcRyLAmSgFWWk5Qs6y/rpc'
)
console.log(await api.getInfo())

pulse-cli

pulse endpoint set https://a-chain-testnet.protonnz.com/ext/bc/6v9NieZiX3e8eQz3CyJMtXB6YzV2RtnxcRyLAmSgFWWk5Qs6y/rpc
pulse chain:info
pulse account protonnz