Acki Nacki Blockchain - Chain ID Specification
| Author | Mitja Goroshevsky |
|---|---|
| Discussions-To | https://github.com/ChainAgnostic/namespaces/pull/XXX |
| Status | Draft |
| Type | Standard |
| Created | 2026-04-07 |
| Requires | CAIP-2 |
Table of Contents
CAIP-2
For context, see the CAIP-2 specification.
Introduction
Acki Nacki is a layer-1 blockchain identified by a global_id integer stored
in every block header. Each network (mainnet, shellnet) has a unique
global_id assigned at genesis.
Specification
Semantics
Each Acki Nacki network is uniquely identified by its global_id, a signed
32-bit integer present in every block. This value is fixed at genesis and
remains constant for the lifetime of the network. The public mainnet
(global_id = 0) and shellnet (global_id = 1) values are conventionally
reserved; anyone bootstrapping a private Acki Nacki network selects their
own global_id at genesis.
Syntax
The global_id is used directly as the CAIP-2 reference:
acknacki:<global_id>
The reference is the decimal string representation of global_id.
Validation regex:
acknacki:[-]?[0-9]{1,10}
Resolution Mechanics
The global_id can be retrieved from any block via the GraphQL API:
query {
blocks(limit: 1) {
global_id
}
}
Mainnet endpoint: https://mainnet.ackinacki.org/graphql
Shellnet endpoint: https://shellnet.ackinacki.org/graphql
Example response:
{
"data": {
"blocks": [
{ "global_id": 0 }
]
}
}
The returned global_id value is the CAIP-2 reference for that network.
Rationale
Using global_id from the block header follows the same pattern as the tvm
namespace (which uses the identical field for Everscale and TON). This provides
a simple, deterministic, on-chain verifiable identifier that requires no
external registry.
Verification and Trust Model
Because global_id is embedded in every block header, the resolution method
above is protocol-level verifiable: a client can cross-check the value against
multiple Block Keepers rather than trusting a single GraphQL endpoint. Acki
Nacki is permissionless, so there is no central registry that can prevent two
unrelated private networks from picking the same global_id; applications
that need stronger guarantees should additionally fingerprint the chain
(genesis block hash, well-known system contract addresses).
For outside observers requiring cryptographic assurance of the chain history itself, Acki Nacki includes a network-history proof system based on zero-knowledge proofs that lets an external verifier validate the chain’s witness without trusting any single node. The proof system is currently under test and is planned for activation on mainnet to harden the witness for light clients and cross-chain verifiers.
Backwards Compatibility
This is the initial specification. No legacy identifiers exist.
Test Cases
# Acki Nacki Mainnet (global_id = 0)
acknacki:0
# Acki Nacki Shellnet / Testnet (global_id = 1)
acknacki:1
References
- Acki Nacki Documentation - Official documentation
- Acki Nacki Developer Portal - Developer guides, GraphQL API
- Acki Nacki GitHub - Node software and contracts
- CAIP-2 - Blockchain ID Specification
Copyright
Copyright and related rights waived via CC0.
Citation
Please cite this document as:
Mitja Goroshevsky, "namespaces/acknacki-caip2: Acki Nacki Blockchain - Chain ID Specification [DRAFT]," Chain Agnostic Namespaces, acknacki-caip2, April 2026 / . [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/acknacki-caip2.md