Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_IDas canonical decimal.Justified from the spec rather than convenience:
consensus_parameters.mddefinesCHAIN_IDas auint64"unique per-chain identifier", andidentifiers/transaction-id.mdgivessha256(CHAIN_ID ++ serialized_tx).CHAIN_IDis 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/graphql→chain.name"Ignition",consensusParameters.chainId"9889", genesis0x309d7962…aea33, nodeVersion 0.48.3.fuel:0does not identify one network. Fuel's public testnet reportschainId0, andfuel-core's bundledbin/fuel-core/chainspec/local-testnet/chain_config.jsonalso sets"chain_id": 0. Sofuel:0names 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; andAddressis 32 bytes against Ethereum's 20, so a tool treating a Fuel identifier aseip155will silently truncate. Backwards Compatibility states this as a MUST NOT.discussions-to: 0xcounting/FAR#1