Skip to main content

Contract addresses

This page lists the key contract addresses for each supported chain. For the complete list of all deployed contracts (100+ per chain), see the gmx-synthetics deployments folder. The machine-readable contracts.json in that folder covers mainnet deployments, while testnet deployments are published in the per-network markdown files.

The deployment links on this page are pinned to the commit these tables were generated from, so they keep resolving to the matching manifests. For the current deployment files, browse the same paths on the repository's default branch.

warning

Contract addresses change when logic contracts are upgraded. Subscribe to the Updates and support channels for upgrade notifications.

DataStore and RoleStore addresses are permanent and don't change across upgrades.

Mainnet

The tables below list the key integrator-facing contracts for each mainnet chain. For the full list of all deployed contracts on each chain, see the deployment files linked from each section.

Arbitrum (Chain ID: 42161)

Explorer: arbiscan.io | Full deployment list

ContractAddress
DataStore0xFD70de6b91282D8017aA4E741e9Ae325CAb992d8
RoleStore0x3c3d99FD298f679DBC2CEcd132b4eC4d0F5e6e72
Reader0xfA26cBb46e2614609406de08CA1Dc7f70a684184
ExchangeRouter0x7dE39FF2e232A2203196788d37e234cF8F1b83f1
SimulationRouter0xaD3051cB1aE3a86b335f12A9a41BD4d995a137ea
Router0x7452c558d45f8afC8c83dAe62C3f8A5BE19c71f6
Oracle0x26C02F221e8dB5A821e12347C7eA8a6b6E10842f
OrderVault0x31eF83a530Fde1B38EE9A18093A333D8Bbbc40D5
DepositVault0xF89e77e8Dc11691C9e8757e84aaFbCD8A67d7A55
WithdrawalVault0x0628D46b5D145f183AdB6Ef1f2c97eD1C4701C55
ShiftVault0xfe99609C4AA83ff6816b64563Bdffd7fa68753Ab
OrderHandler0xa5D2d45228ee2E3A18AB122B2cE84997d008f4Eb
DepositHandler0x2c60a1890E24a727ccF504A9dA9912ace58b2EAD
WithdrawalHandler0xB25dDF7dE751e5c8bFa85c815d1b379732cF4925
AdlHandler0xC8470eBBb6960FD00Db7D4C9f71CAda27e8f6Bfa
LiquidationHandler0x01B85C1e0682418f59C4fe37A2cC56c1213C1fa8
ShiftHandler0xfC260B96E1f80D446bB75785bdDe065Feb1FcEA9
GlvHandler0x3f6dF0c3A7221BA1375E87e7097885a601B41Afc
GlvVault0x393053B58f9678C9c28c2cE941fF6cac49C3F8f9
EventEmitter0xC8ee91A54287DB53897056e12D9819156D3822Fb
MarketFactory0xf5F30B10141E1F63FC11eD772931A8294a591996
GlvRouter0x167540D2DFF14120365CfDDF2F86e3045D4fa712
GlvReader0x85fcBD684D08053f1efAB302dCb04F22E20E65B1
SubaccountRouter0x9c05880A2AaD7530c69e18e342eDC9E06cc757db
Multicall30xe79118d6D92a4b23369ba356C90b9A7ABf1CB961
Config0x233720Ccdec5514e2f5b68500C27A3e17571eF86
ConfigTimelockController0x2Dd99f39f58445CDDC57AA5E0DB2C367335BBD44
GovTimelockController0xFBEff82f2DD5E51B8AF34b57cf788b4b09d466F9
Timelock0x7A967D114B8676874FA2cFC1C14F3095C88418Eb
TimelockConfig0xE7706986A8cec50a2BB8d42D34f8a0404106d4F5

Multichain contracts (Arbitrum)

ContractAddress
MultichainOrderRouter0xABFC734f7CFc9352AED7a97b1F6a236eae831e8A
MultichainGmRouter0xFd26a7E3c4A9b75Bd0dce495290Fa33af2bb4b00
MultichainGlvRouter0xA0Ef0Ace6E437458BB4b5F72A7c7bB43a1CdDa8d
MultichainClaimsRouter0x946CC490DFedd6016645F5ce555E0036D116f50e
MultichainTransferRouter0x3f6772B95423fC03264adf90Efb8A9922B6C8c6e
MultichainSubaccountRouter0xAb3EDf0f3eed6804BAe1bD9bF90109ccadFD262e
MultichainReader0xD9d0e72f53dA0D2aeeDfe02B365CC09b52efc55a
MultichainVault0xCeaadFAf6A8C489B250e407987877c5fDfcDBE6E

Relay and oracle provider contracts (Arbitrum)

ContractAddress
GelatoRelayRouter0x5503b99308dB6923758F9A22d118207D633c4e87
SubaccountGelatoRelayRouter0xfD0596f708d9D950E0eF7b5d191e5F8e55b8a67f
ChainlinkDataStreamProvider0x7BA7Ae61887F1aca28E0FE5aB1434ce85b6606aa
ChainlinkPriceFeedProvider0x90218fbb064b1475E4382b041Cc7ccF08AF718B0
EdgeDataStreamProvider0xf2969FF27b3862cD3207a607c8B6BF37585D3068
StaticOracleProvider0x5dc2fD8a21E77A4C678959CdB384791a2Ef481c3
LayerZeroProvider0x0B33EBA531e5a5A331a3Ff9F418B8205F01C2869

Avalanche (Chain ID: 43114)

Explorer: snowtrace.io | Full deployment list

ContractAddress
DataStore0x2F0b22339414ADeD7D5F06f9D604c7fF5b2fe3f6
RoleStore0xA44F830B6a2B6fa76657a3B92C1fe74fcB7C6AfD
Reader0xa34320a507493C71Fe35E982e496F7C5d1a7fa02
ExchangeRouter0xc002Db96E682FFF6675966F959677285a0C45Efa
SimulationRouter0xaB409fCaCc14Dd4234f6f86a2547f04ACC90a55e
Router0x820F5FfC5b525cD4d88Cd91aCf2c28F16530Cc68
Oracle0x29220fA3b24279279C211701DE4a7b035122B911
OrderVault0xD3D60D22d415aD43b7e64b510D86A30f19B1B12C
DepositVault0x90c670825d0C62ede1c5ee9571d6d9a17A722DFF
WithdrawalVault0xf5F30B10141E1F63FC11eD772931A8294a591996
ShiftVault0x7fC46CCb386e9bbBFB49A2639002734C3Ec52b39
OrderHandler0xC993eF170859DAE0241a3c12B8186e456Fa1c1B0
DepositHandler0xe93fA5956199d1e395885AB10BBE45b0Bd04F0F2
WithdrawalHandler0xa334b4e3f92a91e927f061494A95d84B7F0D134d
AdlHandler0xF68560cA917717639be497BF6283aC08C9Bf0264
LiquidationHandler0x1eAa0E46a40CB7D6F656193d053493658548114e
ShiftHandler0x5F65a3B91923840cD5254489A57c873427bA3A91
GlvHandler0x48486CaF8851ed0085432789D28A8820bEcbfd45
GlvVault0x527FB0bCfF63C47761039bB386cFE181A92a4701
EventEmitter0xDb17B211c34240B014ab6d61d4A31FA0C0e20c26
MarketFactory0xc57C155FacCd93F62546F329D1483E0E5b9C1241
GlvRouter0x603B3D3aB077CA433b888c05fa59c777d5b6dCAD
GlvReader0x321EB66dD95ad33715ee615AAb8dAC6394E7b3F9
SubaccountRouter0xAda708aFf0f1D784D28cd8Ff4d6D977fF9599e5D
Multicall30x50474CAe810B316c294111807F94F9f48527e7F8
Config0x3002cA0dC434823272062f055D2999293392878e
ConfigTimelockController0x854a176289958DD875b0a256FF0dd47f747e39B0
GovTimelockController0xA2aAaa1CbBd4B4f1Fd548f0a3f58B924EE36f266
Timelock0xdF23692341538340db0ff04C65017F51b69a29f6
TimelockConfig0xE8505736A5631e036b84b946e56B56D25F28b68E

Multichain contracts (Avalanche)

ContractAddress
MultichainOrderRouter0x204CC947Fddd11c90e302db2A5ac3865021D1618
MultichainGmRouter0x00205f26BCc52537D12fA9b0eFA5Fcc58F03ab76
MultichainGlvRouter0x206B582F309724dAd259058Bc3289Ca3519F34B1
MultichainClaimsRouter0xa664B7E894ad5777f3419C2883911Af3692a4569
MultichainTransferRouter0xd4F6C2332b36D1Ccb22C7ac479b270fa0cA26a41
MultichainSubaccountRouter0x4A2826cAee8FF70d9392B171eaF398E0a2B55047
MultichainReader0xc2e2FA13E005DF61A51C660bc6CceD589eA44E7B
MultichainVault0x6D5F3c723002847B009D07Fe8e17d6958F153E4e

Relay and oracle provider contracts (Avalanche)

ContractAddress
GelatoRelayRouter0x51fe0b7919e1208a717E9B16a097C1C3D70eFbf6
SubaccountGelatoRelayRouter0xa62BD1cFE2066c5bF4180b4125BBb5116eEA26c9
ChainlinkDataStreamProvider0xc581aF9d20b1d95e456e4Bb9E3039aa0d48F9891
ChainlinkPriceFeedProvider0x86E284921273E1442f32ebd1b567Ce988Cf50dfE
EdgeDataStreamProvider0x4421E804896Caa8383e7239D87637eb4644BF40E
StaticOracleProvider0x58Cd772bc32887B1926acb79f5e996e615126E33
LayerZeroProvider0x74eECe8cC29b3d549db97F566a4445F48ed62a0d

Botanix (Chain ID: 3637)

⚠️ Legacy. New Botanix trading is not supported, and the chain is no longer part of the SDK's contracts chains or an active GMX API deployment. These addresses are retained for existing positions, withdrawals, and historical reads. See GMX API peer deployments and GraphQL.

Explorer: botanixscan.io | Full deployment list

ContractAddress
DataStore0xA23B81a89Ab9D7D89fF8fc1b5d8508fB75Cc094d
RoleStore0x51Aa17ca59E9e9C3cEc3c3c05c2B35f473b35D39
Reader0x922766ca6234cD49A483b5ee8D86cA3590D0Fb0E
ExchangeRouter0xBCB5eA3a84886Ce45FBBf09eBF0e883071cB2Dc8
Router0x3d472afcd66F954Fe4909EEcDd5c940e9a99290c
Oracle0x40d680E41FC4Bf973F0EA664981f6359195a6383
OrderVault0xe52B3700D17B45dE9de7205DEe4685B4B9EC612D
DepositVault0x4D12C3D3e750e051e87a2F3f7750fBd94767742c
WithdrawalVault0x46BAeAEdbF90Ce46310173A04942e2B3B781Bf0e
ShiftVault0xa7EE2737249e0099906cB079BCEe85f0bbd837d4
OrderHandler0xBAD04dDcc5CC284A86493aFA75D2BEb970C72216
DepositHandler0x839B6e19E54A5862da61974A01675a5f6CC5c8b4
WithdrawalHandler0x5bB6DCb09010069228B2aA766FAE513EF7923472
AdlHandler0xec0e4A27a9fbfc64e4915c254B961260df28054c
LiquidationHandler0x1bC32eeCAa8F504D2225096649A0347153A37f10
ShiftHandler0xAD712E1667bC8AAa6C4EA5f47dcD487ddd96BC35
GlvHandler0xB75AdE19252A9db51ea861E9A39C80BB0D7aAd82
GlvVault0xd336087512BeF8Df32AF605b492f452Fd6436CD8
EventEmitter0xAf2E131d483cedE068e21a9228aD91E623a989C2
MarketFactory0xcb7656751B0f8aFCBe15D135D7aC58727DE06768
GlvRouter0xC92741F0a0D20A95529873cBB3480b1f8c228d9F
GlvReader0x955Aa50d2ecCeffa59084BE5e875eb676FfAFa98
SubaccountRouter0xa1793126B6Dc2f7F254a6c0E2F8013D2180C0D10
Multicall30x4BaA24f93a657f0c1b4A0Ffc72B91011E35cA46b
Config0x5a1344252f0CdfDB765DD5ab97C98734f1D7ED6d
ConfigTimelockController0x3d6BA4a91Ffde7C519379F8dCA5FE58b7125c294
GovTimelockController0x610701662CD64De835d53B2dE508d342781CC1Bd
Timelock0xca3e30b51A7c3bd40bFc52a61AB0cE57B3Ab3ad8
TimelockConfig0x72a30e76827Ce83cEf0b1BEd7e9aAF9F4a576990

Multichain contracts (Botanix)

ContractAddress
MultichainOrderRouter0xbC074fF8b85f9b66884E1EdDcE3410fde96bd798
MultichainGmRouter0x6a960F397eB8F2300F9FfA746F11375A613C5027
MultichainGlvRouter0x9C11DFa4DAFA9227Ef172cc1d87D4D5008804C47
MultichainClaimsRouter0x421eB756B8f887f036e7332801288BC2bbA600aC
MultichainTransferRouter0x844D38f2c3875b8351feB4764718E1c64bD55c46
MultichainSubaccountRouter0x8138Ce254Bc0AfE40369FDC2D1e46cE90944406d
MultichainReader0x9511FAb77C8d7Acf56c9D8AE9278Cd3bd8Bd9D5c
MultichainVault0x9a535f9343434D96c4a39fF1d90cC685A4F6Fb20

Relay and oracle provider contracts (Botanix)

ContractAddress
GelatoRelayRouter0x98e86155abf8bCbA566b4a909be8cF4e3F227FAf
SubaccountGelatoRelayRouter0xd6b16f5ceE328310B1cf6d8C0401C23dCd3c40d4
ChainlinkDataStreamProvider0x1A4D623301b9f58405d3Fff7a63624411d5eb940
ChainlinkPriceFeedProvider0xDc613305e9267f0770072dEaB8c03162e0554b2d
EdgeDataStreamProvider0x02E209c2c47956e4E2934A7516d81e86d88A5Dbc
LayerZeroProvider0x9E721ef9b908B4814Aa18502692E4c5666d1942e

MegaETH (Chain ID: 4326)

Explorer: megaeth.blockscout.com | Full deployment list

ContractAddress
DataStore0xE43C7B694f6b652a9F4A0f275C008d18758Dce35
RoleStore0xecA46636BDDbb4F451ca2B7062C7E36744934655
Reader0x51fe0b7919e1208a717E9B16a097C1C3D70eFbf6
ExchangeRouter0xF68560cA917717639be497BF6283aC08C9Bf0264
SimulationRouter0x321EB66dD95ad33715ee615AAb8dAC6394E7b3F9
Router0x1eAfB14236C489C28845EC04F78DECA5Fb9879Aa
Oracle0xfD0596f708d9D950E0eF7b5d191e5F8e55b8a67f
OrderVault0xD5AE04762E2afb1506695b3F36286EBE7B0E6772
DepositVault0x8231A60862F9b0bA93fFA050c0E94AC902D901d2
WithdrawalVault0x0Ec53dda9676219dE63eC703212219b07811F33C
ShiftVault0xC255c70b50623054CADbAD9A02E1CFE73d286666
OrderHandler0x2fFbC877Bd50c7A1c27887F012dba6469a7092F2
DepositHandler0x2dC2315039bf3617e815969c613428F36e9Baf98
WithdrawalHandler0xC993eF170859DAE0241a3c12B8186e456Fa1c1B0
AdlHandler0x882f5b61Fb61a060857065FC4AB420C96aa7A467
LiquidationHandler0x4421E804896Caa8383e7239D87637eb4644BF40E
ShiftHandler0xd4F6C2332b36D1Ccb22C7ac479b270fa0cA26a41
GlvVault0x52e4875EB5603d21912d30A1dBA6B0B97192459A
EventEmitter0xAf2E131d483cedE068e21a9228aD91E623a989C2
MarketFactory0x5Fb9121Ca153B93dD70ae53280Dc3b64E1805940
GlvRouter0xef1BA2A3fcf0244361d63FCAe0c4772586Cd1925
GlvReader0x804f206a2ec78F505FD5D397450EAB9E7CBD1b21
SubaccountRouter0x03B59961bF30b973fBd793A6C8ad57dA38D4D0a6
Multicall30xF516BC01c50eebdBad4d7E506c8f690ae8EAFc52
Config0x5aDD4cD559424941C3d06B66c5eD71dAc7261986
ConfigTimelockController0xCb60d0A8372Cb8f8a074d304F88bA851FC5E8e29
GovTimelockController0x0a42516de743D87572f5788cac23F0a2c1a39f69
TimelockConfig0x1eAa0E46a40CB7D6F656193d053493658548114e

Multichain contracts (MegaETH)

ContractAddress
MultichainOrderRouter0x00205f26BCc52537D12fA9b0eFA5Fcc58F03ab76
MultichainGmRouter0x5CCD0b91Cfe6B0FBA1c98290dc39E71ff806d9bF
MultichainGlvRouter0x5F65a3B91923840cD5254489A57c873427bA3A91
MultichainClaimsRouter0x6614E9eAfE2FE583049333C03a2D6f9D7F252121
MultichainTransferRouter0x62B1691B067278E5B1167d0443d4c957473611D2
MultichainSubaccountRouter0xDB8906520812840b9835E3B84dE62C826249e20B
MultichainReader0x7664Aa3F9609C614bf161B0805375CbDd3Ddb418
MultichainVault0xd6922E889cE4CF14e59427F20e7d857ff81A5A9D

Relay and oracle provider contracts (MegaETH)

ContractAddress
GelatoRelayRouter0xbAAA3a693191e2e3E0973DE641C879D1aDD84e04
SubaccountGelatoRelayRouter0x603B3D3aB077CA433b888c05fa59c777d5b6dCAD
ChainlinkDataStreamProvider0x118510dD4bbB6a18863EfAA1867D4a7Ae3756c8d
ChainlinkPriceFeedProvider0xaD3051cB1aE3a86b335f12A9a41BD4d995a137ea
EdgeDataStreamProvider0x206B582F309724dAd259058Bc3289Ca3519F34B1
StaticOracleProvider0x9c05880A2AaD7530c69e18e342eDC9E06cc757db
LayerZeroProvider0x8A959d38216ad67AEBBF31F46Cb3cA4D7fe584c8

Testnet

Testnet contracts are redeployed more frequently than mainnet. Verify addresses before integrating. Arbitrum Sepolia is usually the most current testnet, but Avalanche Fuji deployment artifacts are also published in the updates branch.

Arbitrum Sepolia (Chain ID: 421614)

Explorer: sepolia.arbiscan.io | Full deployment list

The Arbitrum Sepolia deployment is the most current testnet. For a frontend that connects to testnet, see Testnet frontend.

ContractAddress
DataStore0xCF4c2C4c53157BcC01A596e3788fFF69cBBCD201
RoleStore0x433E3C47885b929aEcE4149E3c835E565a20D95c
Reader0x92659fEf40582ceCC3CBa4D096d28291C238D358
ExchangeRouter0x6B489dD5bB1AAE8df246359d59aA7316760a75d2
SimulationRouter0x82f1bb43b7E93dE4c38EC3198ed13e33D0904555
Router0x72F13a44C8ba16a678CAD549F17bc9e06d2B8bD2
Oracle0x0dC4e24C63C24fE898Dda574C962Ba7Fbb146964
StaticOracleProvider0xC2619263f91f53C2acc72f79E87Feaa82Ac7FdF6
OrderVault0x1b8AC606de71686fd2a1AEDEcb6E0EFba28909a2
DepositVault0x809Ea82C394beB993c2b6B0d73b8FD07ab92DE5A
WithdrawalVault0x7601c9dBbDCf1f5ED1E7Adba4EFd9f2cADa037A5
ShiftVault0x6b6F9B7B9a6b69942DAE74FB95E694ec277117af
OrderHandler0xC881c2391611829d7bc81c12a285cB0201F08f8c
DepositHandler0xa9cf0cF995eFD4aDF5CE93A36fce1A6CD9eEE070
WithdrawalHandler0xb6c9217D582a6Bd0A149943f995a0855f7ee0ED3
AdlHandler0xF7BcBA3A2907db79b37e93BD48e76D5509521093
LiquidationHandler0xC1C5A1Da634398154B5134Ce1317d365CB0db3CD
ShiftHandler0xfc36c7aA0Ab3EEa2f7b2759a416B77F8a850f8F8
GlvVault0x40bD50de0977c68ecB958ED4A065E14E1091ce64
EventEmitter0xa973c2692C1556E1a3d478e745e9a75624AEDc73
MarketFactory0x1934838E3d85416A6cF5bF7A5E619f12BE01C4b2
GlvRouter0x792D48B94F430965FE85645cF72527b3343d4BdD
GlvReader0x45356cEE7f8668b7030577c13b4638802D3397Df
SubaccountRouter0xAFdD3e0B6c162974594AcA157eA642B8847CC5b1
Multicall30xD84793ae65842fFac5C20Ab8eaBD699ea1FC79F3
Config0x2c76c5f86032e45B32A1Af9FDB1cC80aE157c58f
ConfigTimelockController0x08a24334C21413Fcdf885a7cD933b6c7E7675C60
GovTimelockController0xb1854C5CfB3D25be6198972d5c3AEa0592e933a4
TimelockConfig0x09D240e8833Ae0C3C40748103b626139bC1761cD

Avalanche Fuji (Chain ID: 43113)

Explorer: testnet.snowtrace.io | Full deployment list

ContractAddress
DataStore0xEA1BFb4Ea9A412dCCd63454AbC127431eBB0F0d4
RoleStore0x19a8085537078e7847a332A76ABaDD5b02B1e736
Reader0xf82Cc6EB57F8FF86bc5c5e90B8BA83DbBFB517eE
ExchangeRouter0x0a458C96Ac0B2a130DA4BdF1aAdD4cb7Be036d11
Router0x5e7d61e4C52123ADF651961e4833aCc349b61491
Oracle0xae7c79ED2807Fe544f5757890ca8afB9d553f17c
OrderVault0x25D23e8E655727F2687CC808BB9589525A6F599B
DepositVault0x2964d242233036C8BDC1ADC795bB4DeA6fb929f2
WithdrawalVault0x74d49B6A630Bf519bDb6E4efc4354C420418A6A2
ShiftVault0x257D0EA0B040E2Cd1D456fB4C66d7814102aD346
OrderHandler0xb525036363BC44695d36fD56Bcb86CEF39cd444A
DepositHandler0x12383b2AB771471003185a83cf983c98A826bD4E
WithdrawalHandler0xe80Fea80cA767a105A65D67bFA970ecF1B4e9127
AdlHandler0x96b2004d52d30b21385E6757b1EEbd1565864f6A
LiquidationHandler0x4092cC8E8dC0893f93f35f5998585a6109d91a46
ShiftHandler0xd96Eb278505EF101B3a1328636DFb2F215Bb6bA5
GlvVault0x76f93b5240DF811a3fc32bEDd58daA5784e46C96
EventEmitter0xc67D98AC5803aFD776958622CeEE332A0B2CabB9
MarketFactory0x89810f23585FDCfAFfB1712e5B76d9b0F722e1d6
GlvRouter0x6B6595389A0196F882C0f66CB1F401f1D24afEdC
GlvReader0xdeaC9ea3c72C102f2a9654b8E1A14Ef86Cdd3146
SubaccountRouter0xD5EE3ECAF5754CE5Ff74847d0caf094EBB12ed5e
Multicall30x966D1F5c54a714C6443205F0Ec49eEF81F10fdfD
Config0x63725E32b05324042Fe78C34be3E72497C91e1E0
ConfigTimelockController0xc120bD6756171691fC2e2D5EE876ae79526412c1
GovTimelockController0x8beF3F7f3B2d8b8490Cf30b42c728293D1C2a9Ef
Timelock0x0f0c78405A4E6dAfc188d539D61C69D74f42f9dB
TimelockConfig0xa2c59bf9999915C2DF87998739c2e3Efa9c856f4
note

Testnet deployments may include additional test contracts (MockPriceFeed, test tokens) not present on mainnet. See the full deployment list linked above for all testnet contracts.

Contract categories

The sections below describe the purpose of each contract category listed in the address tables.

Multichain contracts

The Multichain* contracts enable cross-chain operations through the GMX Account system. They let users on one chain submit orders, manage positions, and transfer funds to GMX deployments on other chains via LayerZero messaging.

ContractPurpose
MultichainOrderRouterRoutes cross-chain order creation requests
MultichainGmRouterRoutes cross-chain GM token deposit/withdrawal requests
MultichainGlvRouterRoutes cross-chain GLV deposit/withdrawal requests
MultichainClaimsRouterRoutes cross-chain claim requests (funding fees, rebates)
MultichainTransferRouterRoutes cross-chain token transfers
MultichainSubaccountRouterRoutes cross-chain subaccount operations
MultichainReaderReads cross-chain state and pending operations
MultichainVaultHolds funds in transit during cross-chain operations

Gelato relay contracts

The Gelato relay contracts enable gasless transaction submission. Users sign a message off-chain, and a Gelato relay network submits the transaction on their behalf. This powers the Express Trading mode in the GMX interface.

ContractPurpose
GelatoRelayRouterAccepts relay requests for standard operations
SubaccountGelatoRelayRouterAccepts relay requests for subaccount operations

Oracle provider contracts

Multiple oracle providers feed price data into the protocol. The Oracle contract aggregates prices from these providers, selecting the most appropriate source for each token.

ContractPurpose
ChainlinkDataStreamProviderFetches prices from Chainlink Data Streams (primary source for most tokens)
ChainlinkPriceFeedProviderFetches prices from Chainlink Price Feeds (fallback and reference)
EdgeDataStreamProviderFetches prices from Edge oracle data streams
StaticOracleProviderReturns stored static minimum and maximum prices configured for a token

Governance and configuration contracts

The governance and configuration contracts control protocol parameters. Most parameter changes flow through the Config contract, which is gated by the ConfigTimelockController to enforce a delay before changes take effect. RiskOracleConfig provides a separate role-gated path for a fixed allowlist of risk parameters, and only for markets that a config keeper has enabled for the risk oracle. Higher-level governance actions are managed through GovTimelockController and Timelock.

ContractPurpose
ConfigApplies parameter changes to the protocol through the timelock system
ConfigTimelockControllerEnforces time delays on configuration updates submitted via Config
RiskOracleConfigApplies allowlisted risk-parameter updates to enabled markets
GovTimelockControllerControls governance-level actions with time-delayed execution
TimelockManages protocol upgrades, role assignments, and privileged operations
TimelockConfigStores timelock duration settings for different operation categories

Cross-chain messaging

ContractPurpose
LayerZeroProviderHandles cross-chain message and data verification