Liquidity on V1
GLP was the liquidity provider token for V1. Since July 2025, GLP has been phased out and no longer provides liquidity as V1 trading is disabled, so buying GLP tokens is no longer possible. You may only redeem existing GLP via the sell GLP page.
To provide liquidity, please use GMX V2 GM and GLV tokens.
Whitehack Incident
If you were affected by the whitehat, please check the distributions section for the claim.
Safe Account
If you are using a Safe account, please follow these instructions to sign the terms required before being able to claim:
- Navigate to: https://app.onchainden.com/safes/arb1:{SAFE_ADDRESS} (replace
{SAFE_ADDRESS}
with your Safe address). Since safe itself doesn't support creating signatures, it's necessary to use a third-party service for this. - Log in using one of the Safe signers accounts. Make sure the SAFE_ADDRESS is populated on the link and that it's on Arbitrum.
- Create a new transaction:
- Select "Use smart contract".
- Enter contract address:
0xA65387F16B013cf2Af4605Ad8aA5ec25a2cbA3a2
(this is the SignMessageLib). You can use SignMessageLib as the address label. - Click "Continue" and then choose "Sign message".
- Enter data:
0x09335c037e73849fe301478f91674da05757165154d1dccb1b881c1846938f3d
.
- Uncheck “Pay gas from Safe” to pay for the transaction directly if there are no gas funds on the Safe account, then “Continue”.
- Type any arbitrary text in “Description”. It won’t allow you to create a transaction with an empty description, then “Continue”.
- Sign and execute the transaction. If there are multiple signers, the transaction should appear on the Transactions section on the official https://safe.global app as Safe: SignMessageLib 1.3.0 signMessage, make sure all required signers sign it, and then execute the transaction on onchainden.
- The terms should be signed and you should be able to claim using the Claim button on the GMX interface as it will become clickable. After claiming, you may need to go to Safe and finalise signing and executing the transaction there if there are multiple signers.
The data field (0x09335c037e73849fe301478f91674da05757165154d1dccb1b881c1846938f3d
) is the Keccak-256 hash of the acceptance message. Below is pseudo-code (in Solidity style) demonstrating how it's generated:
string terms = "By undertaking this tx, you (or any person(s) you have the authority to represent) irrevocably acknowledge that the distributed tokens constitute full and complete compensation and satisfaction of your deprecated GLP vault position, as supplemented by GMX DAO per governance vote (July 28, 2025) and full agreement.\nGovernance vote: https://snapshot.box/#/s:gmx.eth/proposal/0x8b925b350cfc6c17abd356daadca022b5d41e1b68be822c27502fe7007d26e6a\nFull agreement: https://gateway.pinata.cloud/ipfs/bafkreiemqapoduhh2j5spg7ndmkqdx2l5s2uloqqcv4egu5qiy5oiv4kaq";
string message = string.concat(
terms,
"\ndistributionId 11802763389053472339483616176459046875189472617101418668457790595837638713068\n",
"contract 0x28f1f4aa95f49fab62464536a269437b13d48976\n",
"chainId 42161"
);
bytes32 hash = keccak256(
abi.encodePacked(
"\x19Ethereum Signed Message:\n",
bytes(message)
)
);
Resulting hash: 0x09335c037e73849fe301478f91674da05757165154d1dccb1b881c1846938f3d
You can view the script that generates and prints this hash here: https://github.com/gmx-io/gmx-synthetics/blob/v2.2-branch/scripts/distributions/printTermsSignatureHash.ts
GLP Token Addresses
- Arbitrum: 0x1aDDD80E6039594eE970E5872D247bf0414C8903
- Avalanche: 0x9e295B5B976a184B14aD8cd72413aD846C299660