GoPlus SafeToken Locker
GoPlus SafeToken Locker provides flexible lock-up periods, rewards collection, and broad compatibility with major DEX platforms to protect investor interests and ensure project commitment.
Token Locker
Supported Chains and Contract Addresses
| Chain | Locker Address |
|---|---|
| Ethereum | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
| BNB Chain | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
| Base | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
| Arbitrum | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
| Morph | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
| Manta | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
| Gravity | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
| Abstract | 0x10674043e2445d89b77858E637b5e9070412D95e |
| Optimism | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
| Avalanche | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
| Polygon | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
| Mantle | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
| HyperEVM | 0xCb07c2fcd64c71cDb7f77a880662435f5F790b77 |
| UniChain | 0xF17A08A7d41F53B24AD07Eb322CBBdA2ebdeC04b |
UniV3LPLocker
Supported Chains and Contract Addresses
| Chain | Locker Address |
|---|---|
| Ethereum | 0x25c9C4B56E820e0DEA438b145284F02D9Ca9Bd52 |
| BNB Chain | 0x25c9C4B56E820e0DEA438b145284F02D9Ca9Bd52 |
| Base | 0x25c9C4B56E820e0DEA438b145284F02D9Ca9Bd52 |
| Arbitrum | 0x25c9C4B56E820e0DEA438b145284F02D9Ca9Bd52 |
| Morph | 0x25c9C4B56E820e0DEA438b145284F02D9Ca9Bd52 |
| Manta | 0x25c9C4B56E820e0DEA438b145284F02D9Ca9Bd52 |
| Gravity | 0xCb07c2fcd64c71cDb7f77a880662435f5F790b77 |
| Abstract | 0xf7709322F11e86B7433271496bFD2D7A369AF3ff |
| Optimism | 0x25c9C4B56E820e0DEA438b145284F02D9Ca9Bd52 |
| Avalanche | 0x25c9C4B56E820e0DEA438b145284F02D9Ca9Bd52 |
| Polygon | 0x25c9C4B56E820e0DEA438b145284F02D9Ca9Bd52 |
| Mantle | 0x25c9C4B56E820e0DEA438b145284F02D9Ca9Bd52 |
| HyperEVM | 0xBB2841038C45801a6B819b9A9BE7A5e93d36fb8D |
| UniChain | 0x25c9C4B56E820e0DEA438b145284F02D9Ca9Bd52 |
UniV4LPLocker
For UniV4 LP Locker usage, please check: UniV4LPLocker.
For usage
Token Locker
TokenLocker supports locking both standard tokens and LP tokens.
Fee Structures
TokenLocker supports three fee structures, charged during lock and update operations:
Ethereum Locker
| Name | Token Type | LP Fee | Lock Fee |
|---|---|---|---|
| TOKEN | token | 0 | 0.08 ETH |
| LP_DEFAULT | lp-token | 0 | 0.08 ETH |
| LP_ONLY | lp-token | 0.6% | 0 ETH |
| LP_AND_ETH | lp-token | 0.3% | 0.04 ETH |
BNB Chain Locker
| Name | Token Type | LP Fee | Lock Fee |
|---|---|---|---|
| TOKEN | token | 0 | 0.12 BNB |
| LP_DEFAULT | lp-token | 0 | 0.12 BNB |
| LP_ONLY | lp-token | 0.5% | 0 BNB |
| LP_AND_ETH | lp-token | 0.25% | 0.06 BNB |
Base & Morph & Abstract & Optimism & Manta & UniChain Locker
| Name | Token Type | LP Fee | Lock Fee |
|---|---|---|---|
| TOKEN | token | 0 | 0.02 ETH |
| LP_DEFAULT | lp-token | 0 | 0.02 ETH |
| LP_ONLY | lp-token | 0.6% | 0 ETH |
| LP_AND_ETH | lp-token | 0.3% | 0.01 ETH |
Arbitrum Locker
| Name | Token Type | LP Fee | Lock Fee |
|---|---|---|---|
| TOKEN | token | 0 | 0.04 ETH |
| LP_DEFAULT | lp-token | 0 | 0.04 ETH |
| LP_ONLY | lp-token | 0.6% | 0 ETH |
| LP_AND_ETH | lp-token | 0.3% | 0.02 ETH |
Gravity Locker
| Name | Token Type | LP Fee | Lock Fee |
|---|---|---|---|
| TOKEN | token | 0 | 1000 G |
| LP_DEFAULT | lp-token | 0 | 1000 G |
| LP_ONLY | lp-token | 0.6% | 0 G |
| LP_AND_ETH | lp-token | 0.3% | 500 G |
Avalanche Locker
| Name | Token Type | LP Fee | Lock Fee |
|---|---|---|---|
| TOKEN | token | 0 | 0.8 AVAX |
| LP_DEFAULT | lp-token | 0 | 0.8 AVAX |
| LP_ONLY | lp-token | 0.6% | 0 AVAX |
| LP_AND_ETH | lp-token | 0.3% | 0.4 AVAX |
Polygon Locker
| Name | Token Type | LP Fee | Lock Fee |
|---|---|---|---|
| TOKEN | token | 0 | 80 POL |
| LP_DEFAULT | lp-token | 0 | 80 POL |
| LP_ONLY | lp-token | 0.6% | 0 POL |
| LP_AND_ETH | lp-token | 0.3% | 40 POL |
Mantle Locker
| Name | Token Type | LP Fee | Lock Fee |
|---|---|---|---|
| TOKEN | token | 0 | 40 MNT |
| LP_DEFAULT | lp-token | 0 | 40 MNT |
| LP_ONLY | lp-token | 0.6% | 0 MNT |
| LP_AND_ETH | lp-token | 0.3% | 20 MNT |
HyperEVM Locker
| Name | Token Type | LP Fee | Lock Fee |
|---|---|---|---|
| TOKEN | token | 0 | 2 HYPE |
| LP_DEFAULT | lp-token | 0 | 2 HYPE |
| LP_ONLY | lp-token | 0.6% | 0 MNT |
| LP_AND_ETH | lp-token | 0.3% | 1 HYPE |
UniV3LPLocker
UniV3LPLocker is specifically designed for locking Uniswap V3 LP tokens.
Fee Structures
| Name | LP Fee | Collect Fee | Lock Fee |
|---|---|---|---|
| DEFAULT | 0.4% | 1.6% | 0 ETH |
| LVP | 0.64% | 0.8% | 0 ETH |
| LLP | 0.24% | 2.8% | 0 ETH |
We are excited to announce that a web version of our SafeToken Locker will be launching soon, providing a user-friendly interface for direct usage. Stay tuned for more details, which will be released shortly.
Functions Write
TokenLocker
Lock token or uniswap v2 lp token
function lock(
address token_,
string memory feeName_,
address owner_,
uint256 amount_,
uint256 endTime_
) external payable override nonReentrant returns (uint256 lockId);VestingLock
struct VestingLockParams {
address token;
uint24 tgeBps;
uint24 cycleBps;
address owner;
uint256 amount;
uint256 tgeTime;
uint256 cycle;
}
function vestingLock(
VestingLockParams memory params,
string memory feeName_
) external payable override nonReentrant returns (uint256 lockId);Unlock
function unlock(uint256 lockId_) external;UniV3LPLocker
Lock uniswap v3 lp
function lock(
INonfungiblePositionManager nftManager_,
uint256 nftId_,
address owner_,
address collector_,
uint256 endTime_,
string memory feeName_
) external payable returns (uint256 lockId);Relock
function relock(uint256 lockId_, uint256 endTime_) external;Unlock
function unlock(uint256 lockId_) external;Collect liquidity provider rewards
function collect(
uint256 lockId_,
address recipient_,
uint128 amount0Max_,
uint128 amount1Max_
)For data integration
There are two methods to integrate and query data from the SafeToken Locker:
Direct On-Chain Query
To query data directly from the blockchain, you can use the following contract functions:
TokenLocker
function lock(
address token_,
string memory feeName_,
address owner_,
uint256 amount_,
uint256 endTime_
) external payable override nonReentrant returns (uint256 lockId);Query Lock Information
function locks(
uint256 lockId
) external view returns (LockInfo memory info);Query User Locks
function getUserNormalLocks(
address user
) external view returns (uint256\[] memory lockIds);
function getUserLpLocks(
address user
) external view returns (uint256\[] memory lockIds);Query Token Locks
function getTokenLocks(
address token
) external view returns (uint256\[] memory lockIds);Query Cumulative Lock Info
function cumulativeInfos(
address token
) external view returns (CumulativeLockInfo memory info);UniV3LPLocker
function lock(
INonfungiblePositionManager nftManager_,
uint256 nftId_,
address owner_,
address collector_,
uint256 endTime_,
string memory feeName_
) external payable returns (uint256 lockId);Query Lock Information
function locks(
uint256 lockId
) external view returns (LockInfo memory info);Query User Locks
function getUserLocks(
address user
) external view returns(uint256[] memory lockIds);GoPlus API Query
For easier integration, you can use API to query lock data directly.
TokenLocker
UniV3LPLocker
If you have any questions regarding access, please contact [email protected]
