Data & developers
- Reading time
- 4 minutes
- Last source check
- July 26, 2026
- Published by
- GMX Referral Codes Editorial Desk
GMX contract addresses
GMX V2 uses several contracts on each supported network. There is no single address that represents every GMX market or operation. DataStore holds protocol configuration, Reader exposes convenient read methods and ExchangeRouter is part of the transaction path.
The addresses below were checked against the official GMX contract-address documentation on July 26, 2026. GMX explicitly warns that logic contract addresses can change. Verify the official page, chain ID and block explorer immediately before an integration or transaction.
In this guide
Key takeaways
- 01GMX V2 uses several contracts, not one universal address.
- 02DataStore and RoleStore are permanent; logic addresses can change.
- 03Verify the full address, network and official documentation before use.
- 04The GMX token and GM market tokens are separate from protocol routers.
- 05Pin reviewed addresses by chain ID and fail closed on unknown networks.
Core GMX V2 addresses
DataStore and RoleStore are identified by GMX as permanent deployments. Reader and ExchangeRouter are logic-facing contracts and can be replaced as the protocol changes. Treat this table as a reviewed reference, not an automatic source of trust for a future transaction.
Address matching is case-insensitive on EVM chains, but checksummed display helps catch copying errors. Never truncate an address in deployment configuration.
| Network | Contract | Address |
|---|---|---|
| Arbitrum | DataStore | 0xFD70de6b91282D8017aA4E741e9Ae325CAb992d8 |
| Arbitrum | RoleStore | 0x3c3d99FD298f679DBC2CEcd132b4eC4d0F5e6e72 |
| Arbitrum | Reader | 0x470fbC46bcC0f16532691Df360A07d8Bf5ee0789 |
| Arbitrum | ExchangeRouter | 0x1C3fa76e6E1088bCE750f23a5BFcffa1efEF6A41 |
| Avalanche | DataStore | 0x2F0b22339414ADeD7D5F06f9D604c7fF5b2fe3f6 |
| Avalanche | RoleStore | 0xA44F830B6a2B6fa76657a3B92C1fe74fcB7C6AfD |
| Avalanche | Reader | 0x62Cb8740E6986B29dC671B2EB596676f60590A5B |
| Avalanche | ExchangeRouter | 0x8f550E53DFe96C055D5Bdb267c21F268fCAF63B2 |
| MegaETH | DataStore | 0xE43C7B694f6b652a9F4A0f275C008d18758Dce35 |
| MegaETH | RoleStore | 0xecA46636BDDbb4F451ca2B7062C7E36744934655 |
| MegaETH | Reader | 0x0f038EB4a38B08cd3c937a3256b51aa01904a684 |
| MegaETH | ExchangeRouter | 0x73B3593F01CF8e573a412D1d0c972b581794ebE0 |
What DataStore and RoleStore do
DataStore is the central key-value state and configuration store used by GMX V2 contracts. Market parameters, feature flags and many protocol values are addressed through derived keys. Reading it correctly requires the current key definitions and units, not only the address.
RoleStore manages protocol roles and permissions. Its presence does not mean a user should approve tokens to it or call it during ordinary trading. GMX marks both DataStore and RoleStore as permanent addresses, which makes them useful anchors when validating a deployment set.
What Reader and ExchangeRouter do
Reader aggregates common view operations so clients can retrieve markets, positions and related state with fewer low-level calls. It is a convenience contract. Its return types and associated address should match the frontend-integration or SDK version used by the application.
ExchangeRouter participates in creating and managing exchange actions. Calling it safely requires the correct router, vault relationships, callback rules, execution fee and encoded parameters. Copying the address into a generic contract interface is not a complete integration.
Verify an address before use
Begin on the official docs.gmx.io contract-address page. Select the exact network and compare the full address character by character. Confirm the wallet network and chain ID. Then open the address in that network's established block explorer and inspect whether the contract is verified and linked to the expected implementation.
For software deployments, pin the reviewed addresses in version-controlled configuration and require a human-reviewed change to update them. A live page scrape should never update transaction destinations automatically.
- Use docs.gmx.io, not a search-result snippet or social post.
- Verify all 42 address characters and the intended network.
- Check proxy and implementation relationships where applicable.
- Compare the ABI source with the integration documentation.
- Simulate a read or transaction before requesting a user signature.
GMX token address is a separate question
The GMX governance token address is not the ExchangeRouter or a GM market token. On Arbitrum, the GMX token address documented by GMX is 0xfc5A1A6EB076a2C7aD06eD22C90d7E710E35ad0a. Avalanche and Solana use their own documented token addresses.
A GM liquidity token is also market-specific. Identify it through the official market catalog and preserve the network with the address. Sending assets to a contract because its label contains GMX can permanently lose funds.
Approvals and transaction safety
Token approval gives a spender the ability to move an allowed amount. Verify the spender contract and prefer a bounded amount when the workflow permits. Review existing approvals after testing and revoke those no longer required through a trusted tool.
A malicious interface can display the correct protocol name while asking for an unrelated signature. Read the wallet's chain, destination, function and value. Hardware-wallet confirmation is useful only when the screen details are understood.
Maintain an address registry
A production registry should key addresses by chain ID and contract role, with a reviewed date and documentation source. Reject startup when a required role is missing. Do not default from one network to another.
When GMX announces a contract update, compare the official docs, SDK configuration and frontend repository before changing the registry. Run read tests against both old and new sets, review permissions and simulate the intended transaction path.
const gmxContracts = {
42161: {
dataStore: "0xFD70de6b91282D8017aA4E741e9Ae325CAb992d8",
reader: "0x470fbC46bcC0f16532691Df360A07d8Bf5ee0789",
exchangeRouter: "0x1C3fa76e6E1088bCE750f23a5BFcffa1efEF6A41",
},
} as const;
// Fail closed when the connected chain is not explicitly configured.Primary sources
These sources were checked on July 26, 2026. Protocol parameters can change.
Read our verification methodology →Referral disclosure
10% off eligible GMX position fees
Code PRO maps to GMX's tier-2 discount on eligible opening and closing position fees. The link is sponsored; the discount and protocol risks are unchanged.
Frequently asked questions
What is the GMX contract address on Arbitrum?
GMX V2 uses multiple contracts. The official Arbitrum DataStore is 0xFD70de6b91282D8017aA4E741e9Ae325CAb992d8, while Reader and ExchangeRouter have separate addresses.
What is the Arbitrum GMX token address?
The GMX tokenomics documentation lists 0xfc5A1A6EB076a2C7aD06eD22C90d7E710E35ad0a for the GMX token on Arbitrum.
Can GMX contract addresses change?
Yes. GMX states that logic contract addresses can change, while DataStore and RoleStore are permanent. Always recheck the official contract-address page.
Is ExchangeRouter the same on every network?
No. Arbitrum, Avalanche and MegaETH have different ExchangeRouter addresses. Configuration must be keyed by network or chain ID.
Is it safe to approve every GMX contract?
No. Approve only the verified spender required by the intended workflow, on the correct network, and use a bounded allowance where practical.
Continue learning