Skip to content

Add Fuel namespace (fuel) with CAIP-2 profile - #205

Open
okwme wants to merge 1 commit into
ChainAgnostic:mainfrom
okwme:add-fuel-namespace
Open

okwme wants to merge 1 commit into
ChainAgnostic:mainfrom
okwme:add-fuel-namespace

Conversation

@okwme

@okwme okwme commented Sep 14, 2026

Copy link
Copy Markdown

Adds a CAN for Fuel with a CAIP-2 Blockchain ID profile.

Who wrote this

I do not represent the Fuel ecosystem. I maintain FAR, an open cross-reference between CAIP-19, CoinGecko and ISO 24165 identifiers. Offered as a starting point for Fuel's maintainers to correct, adopt or replace.

Proposal

fuel: + CHAIN_ID as canonical decimal.

fuel:9889    Fuel Ignition (mainnet)

Justified from the spec rather than convenience: consensus_parameters.md defines CHAIN_ID as a uint64 "unique per-chain identifier", and identifiers/transaction-id.md gives sha256(CHAIN_ID ++ serialized_tx). CHAIN_ID is therefore the signing-domain separator, which is precisely what CAIP-2 names. Network names were rejected as display labels — "Fuel Sepolia Testnet" contains spaces, which the reference grammar forbids. The genesis block id was considered and rejected (32 bytes, needs truncation, used by no Fuel tooling, and is not the value that scopes a signature) but is in the Well-Known Networks table so consumers can disambiguate by hand.

Verified live (2026-09-14)

POST https://mainnet.fuel.network/v1/graphqlchain.name "Ignition", consensusParameters.chainId "9889", genesis 0x309d7962…aea33, nodeVersion 0.48.3.

⚠️ An upstream defect this PR is also reporting

fuel:0 does not identify one network. Fuel's public testnet reports chainId 0, and fuel-core's bundled bin/fuel-core/chainspec/local-testnet/chain_config.json also sets "chain_id": 0. So fuel:0 names the public testnet, every local dev node and every CI fixture simultaneously. Both public networks also share a base asset id, so that is no discriminator either.

The spec has a Collisions and Non-Unique Values section stating this rather than hiding it, and asks Fuel maintainers to assign the public testnet a distinct CHAIN_ID. That is the draft's main open question and I would value a maintainer's view on it.

Fuel is not an EVM chain

Worth stating because the 0x-style hex invites the assumption: Fuel is a UTXO ledger, not account balances; assets are native 32-byte AssetId = sha256(CONTRACT_ID ++ SUB_IDENTIFIER) rather than ERC-20 contract storage; predicates are stateless unlock functions with no EVM analogue; and Address is 32 bytes against Ethereum's 20, so a tool treating a Fuel identifier as eip155 will silently truncate. Backwards Compatibility states this as a MUST NOT.

discussions-to: 0xcounting/FAR#1

Adds a CAN for the fuel ecosystem with a CAIP-2 Blockchain ID profile.
Drafted by the maintainers of FAR, an open cross-reference between CAIP-19,
CoinGecko and ISO 24165 identifiers, which needs a CAIP-2 for this chain to
name assets that exist on it. The authors do not represent the fuel ecosystem
and offer this as a starting point for its community to correct, adopt or
replace. Discussion: 0xcounting/FAR#1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant