Skip to content

Add Movement namespace#179

Open
andygolay wants to merge 4 commits intoChainAgnostic:mainfrom
MoveIndustries:movement-namespace
Open

Add Movement namespace#179
andygolay wants to merge 4 commits intoChainAgnostic:mainfrom
MoveIndustries:movement-namespace

Conversation

@andygolay
Copy link
Copy Markdown

@andygolay andygolay commented Mar 24, 2026

Add Movement namespace

This PR introduces the Movement namespace to the ChainAgnostic namespaces registry.

Added Files

  • movement/README.md - Namespace profile for Movement Network
  • movement/caip2.md - CAIP-2 chain identification specification for Movement
  • movement/caip10.md - CAIP-10 account identification specification for Movement

Summary

Movement is a Layer 2 network built on Move, featuring parallel execution for high throughput. This PR establishes the movement namespace for identifying Movement-based chains and accounts.

Chain Identification (CAIP-2)

Chains in the Movement namespace are identified by their numeric chain_id, which is assigned at genesis and requires no transformation to be used as a CAIP-2 reference.

Network Chain ID CAIP-2 Identifier
Mainnet 126 movement:126
Testnet 250 movement:250

Account Identification (CAIP-10)

Movement accounts are identified by 32-byte hexadecimal addresses with a 0x prefix. Account identifiers follow the format movement:<chain_id>:<address>.

Example: movement:126:0xd5fb7899ac1e3b4a51bfbf0dcafaa78453bb8e9a64a93a8e47fedad6b8c48171

Resolution

Chain IDs can be resolved by querying the REST API of any Movement fullnode:

curl https://mainnet.movementnetwork.xyz/v1

The chain_id field in the response provides the identifier.

Account existence can be verified via:

curl https://mainnet.movementnetwork.xyz/v1/accounts/<address>

References

@andygolay andygolay marked this pull request as ready for review March 24, 2026 02:43
@andygolay andygolay changed the title Add movement namespace Add Movement namespace Mar 24, 2026

- Is globally unique within a Movement network
- Is used directly in transaction operations
- Is derived from the account's authentication key at creation
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the same address derived on any chain, i.e. cross-chain replay risk? the security considerations imply this is the case, maybe worth mentioning here

## Introduction

Blockchains in the "movement" namespace are identified by their numeric `chain_id`;
each network is maintained by a set of validators with its own REST API and
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how do you find out those endpoints from just the chainId? is there a canonical registry, like the ethereum-lists/chains registry on github?

each network is maintained by a set of validators with its own REST API and
indexer endpoints. Movement is a Layer 2 network built on Move, featuring
parallel execution for high throughput.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd recommend adding a ## Governance section to explain who approves/decides chainIds, who governs the registry of chainIds, and who governs the protocol upgrades/forks/changes.


Blockchains in the "movement" namespace are identified by their numeric `chain_id`;
each network is maintained by a set of validators with its own REST API and
indexer endpoints. Movement is a Layer 2 network built on Move, featuring
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would probably explain better here the exact parameters of:

  1. how the Layer 2 anchors to Eth (these vary widely across eth L2s)
  2. what, if any, access to those "anchoring" mechanics are available to accounts and devs on the movement L2, e.g. how natively can tokens or assets be moved between Eth mainnet or other L2s and movement
  3. what, if any, interop with sui or other Move-runtime is built in


### Backwards Compatibility

Not applicable
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You might want to mention either in this section or in ## Security Considerations how collisions with EVM chainIds are handled, since, e.g., movement:250:0x1234deadbeef and evm:250:0x1234deadbeef addresses can both be valid addresses... and maybe even generated from the same private key (i.e. replay attacks?)

Copy link
Copy Markdown
Collaborator

@bumblefudge bumblefudge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is technically valid/complete as is, but I would recommend addressing the questions I raised because the dual-VM layer2 with its own chainId registry is kind of a special-case and a developer just thinking of it as an eth L2 or a move [L1] chain might well footgun themselves...

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.

2 participants