Antelope Namespace - Chains
Author | Aaron Caswell |
---|---|
Status | Draft |
Type | Standard |
Created | 2023-09-19 |
Requires | CAIP-2 |
Table of Contents
CAIP-2
For context, see the CAIP-2 specification.
Abstract
In CAIP-2, a general blockchain identification scheme is defined. This is the implementation of CAIP-2 for networks that are based on the Antelope Blockchain Platform.
Antelope Namespace
The namespace “antelope” refers to the wider Antelope Blockchain Platform ecosystem.
Rationale
Antelope consists of multiple networks: EOS production network (EOS Mainnet), EOS testing network (EOS Testnet), WAX production network (WAX Mainnet), WAX testing network (WAX Testnet), and more. Each network has a unique chain id that can be used to identify it.
An identifier for an Antelope chain consists of the namespace prefix “antelope:” followed by a truncated form of the chain id.
Syntax
The Chain ID, or rather the chain_id
as defined by Antelope, is always a
64-character hexadecimal string containing the SHA256 hash of the genesis state
of a given chain. In order to fit the CAIP-2 reference format, a 32
character prefix of the Chain ID is used; note, however, that the longer
original will be needed to authorize new transactions.
Resolution Method
To resolve the chain id for an Antelope chain, a GET or POST request can be
made to an Antelope node using the JSON-RPC method /v1/chain/get_info. This will
return a JSON object with the key chain_id
, whose value is the SHA256 of the
genesis state of the current chain. The full chain id is required for authorizing
transactions on said chain.
For example:
// Request
curl https://wax.greymass.com/v1/chain/get_info | jq
// Response (formatted)
{
"server_version": "e46acfd8",
"chain_id": "1064487b3cd1a897ce03ae5b6a865651747e2e152090f99c1d19d44e01aea5a4",
"head_block_num": 267371511,
"last_irreversible_block_num": 267371184,
"last_irreversible_block_id": "0fefc2b09338c1d7b33d8f7c9dfe3880106b2862abe3ec3fcd4a093f16db74cf",
"head_block_id": "0fefc3f7b918ac83c6b9bd83052557ba7ec2d1d4113158e3834aa38869863edf",
"head_block_time": "2023-09-19T20:55:37.000",
"head_block_producer": "alohaeosprod",
"virtual_block_cpu_limit": 10833331,
"virtual_block_net_limit": 1048576000,
"block_cpu_limit": 200000,
"block_net_limit": 1048576,
"server_version_string": "v3.2.3wax01-hotfix",
"fork_db_head_block_num": 267371511,
"fork_db_head_block_id": "0fefc3f7b918ac83c6b9bd83052557ba7ec2d1d4113158e3834aa38869863edf",
"server_full_version_string": "v3.2.3wax01-hotfix-e46acfd8c35935371f908e8f3ca3d33e32220a83-dirty",
"total_cpu_weight": "38295019677381184",
"total_net_weight": "149904335281667264",
"earliest_available_block_num": 267198264,
"last_irreversible_block_time": "2023-09-19T20:52:53.500"
}
Note that the chain_id
value returned must be substringed to the first 32 characters.
For example, this JavaScript code transforms the above response into a CAIP-2 identifier:
// For the WAX mainnet
const chainId = "1064487b3cd1a897ce03ae5b6a865651747e2e152090f99c1d19d44e01aea5a4";
const prefix = chainId.substring(0, 32);
const identifier = "antelope:" + prefix;
console.log(identifier); // prints "antelope:1064487b3cd1a897ce03ae5b6a865651"
Backwards Compatibility
Not applicable.
Test Cases
# EOS Mainnet
// /v1/chain/get_info --> chain_id=aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906
antelope:aca376f206b8fc25a6ed44dbdc66547c
# Jungle Testnet
// /v1/chain/get_info --> chain_id=e70aaab8997e1dfce58fbfac80cbbb8fecec7b99cf982a9444273cbc64c41473
antelope:e70aaab8997e1dfce58fbfac80cbbb8f
# WAX Mainnet
// /v1/chain/get_info --> chain_id=1064487b3cd1a897ce03ae5b6a865651747e2e152090f99c1d19d44e01aea5a4
antelope:1064487b3cd1a897ce03ae5b6a865651
# WAX Testnet
// /v1/chain/get_info --> chain_id=f16b1833c747c43682f4386fca9cbb327929334a762755ebec17f6f23c9b8a12
antelope:f16b1833c747c43682f4386fca9cbb32
# Telos Mainnet
// /v1/chain/get_info --> chain_id=4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11
antelope:4667b205c6838ef70ff7988f6e8257e8
# Telos Testnet
// /v1/chain/get_info --> chain_id=1eaa0824707c8c16bd25145493bf062aecddfeb56c736f6ba6397f3195f33c9f
antelope:1eaa0824707c8c16bd25145493bf062a
# ORE Mainnet
// /v1/chain/get_info --> chain_id=7900eaca71d5b213d3e1e15d54d98ad235a7a5b8166361be78e672edeeb2b47a
antelope:7900eaca71d5b213d3e1e15d54d98ad2
# INSTAR Mainnet
// /v1/chain/get_info --> chain_id=b042025541e25a472bffde2d62edd457b7e70cee943412b1ea0f044f88591664
antelope:b042025541e25a472bffde2d62edd457
# Proton Mainnet
// /v1/chain/get_info --> chain_id=384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0
antelope:384da888112027f0321850a169f737c3
# Proton Testnet
// /v1/chain/get_info --> chain_id=71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd
antelope:71ee83bcf52142d61019d95f9cc5427b
# FIO Mainnet
// /v1/chain/get_info --> chain_id=21dcae42c0182200e93f954a074011f9048a7624c6fe81d3c9541a614a88bd1c
antelope:21dcae42c0182200e93f954a074011f9
# FIO Testnet
// /v1/chain/get_info --> chain_id=b20901380af44ef59c5918439a1f9a41d83669020319a80574b804a5f95cbd7e
antelope:b20901380af44ef59c5918439a1f9a41
# Ultra Mainnet
// /v1/chain/get_info --> chain_id=a9c481dfbc7d9506dc7e87e9a137c931b0a9303f64fd7a1d08b8230133920097
antelope:a9c481dfbc7d9506dc7e87e9a137c931
# Ultra Testnet
// /v1/chain/get_info --> chain_id=7fc56be645bb76ab9d747b53089f132dcb7681db06f0852cfa03eaf6f7ac80e9
antelope:7fc56be645bb76ab9d747b53089f132d
# Kylin Testnet
// /v1/chain/get_info --> chain_id=5fff1dae8dc8e2fc4d5b23b2c7665c97f9e9d8edf2b6485a86ba311c25639191
antelope:5fff1dae8dc8e2fc4d5b23b2c7665c97
# UX Mainnet
// /v1/chain/get_info --> chain_id=8fc6dce7942189f842170de953932b1f66693ad3788f766e777b6f9d22335c02
antelope:8fc6dce7942189f842170de953932b1f
# UX Testnet
// /v1/chain/get_info --> chain_id=5002d6813ffe275d9471a7e3a301eab91c36e8017f9664b8431fbf0e812a0b04
antelope:5002d6813ffe275d9471a7e3a301eab9
# Libre Mainnet
// /v1/chain/get_info --> chain_id=38b1d7815474d0c60683ecbea321d723e83f5da6ae5f1c1f9fecc69d9ba96465
antelope:38b1d7815474d0c60683ecbea321d723
# Libre Testnet
// /v1/chain/get_info --> chain_id=b64646740308df2ee06c6b72f34c0f7fa066d940e831f752db2006fcc2b78dee
antelope:b64646740308df2ee06c6b72f34c0f7f
References
Rights
Copyright and related rights waived via CC0.
Citation
Please cite this document as:
Aaron Caswell, "namespaces/antelope-caip2: Antelope Namespace - Chains [DRAFT]," Chain Agnostic Namespaces, antelope-caip2, September 2023 / . [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/antelope-caip2.md