Smart Contract
veLISTA is being retired under LIP-024. The on-chain switch is
freePenaltyStartTime= 2026-04-07 08:20 UTC. From that momentlock,relockUnclaimed,increaseAmount/increaseAmountForandextendWeekall revert withfree penalty period start, andgetPenalty(address)returns0for every account whileblock.timestampis within[freePenaltyStartTime, freePenaltyEndTime]— see the bounded-window caveat below before relying on it past that.enableAutoLock/disableAutoLockremain callable on existing positions. Governance voting has moved to plain LISTA on Snapshot, and protocol revenue previously distributed to veLISTA stakers now funds LISTA buybacks.Existing locks can still be exited without penalty. There is no
withdrawfunction, and the two exits are mutually exclusive:
claim()— only once the lock term has elapsed and the position is not auto-locked. Otherwise it revertsno claimable tokens.
earlyClaim()— only while the position is still locked or auto-locked. Otherwise it revertscannot claim with penalty.Two caveats. The penalty-free period is a bounded window that a
MANAGERcan change — readfreePenaltyEndTimebefore relying on it. AndearlyClaimchecks an independentearlyClaimBlacklistbefore anything else. A blacklisted auto-locked position therefore cannot useearlyClaim(), andclaim()is blocked while auto-lock is on — but the exit is delayed, not removed:disableAutoLock()is not gated by the penalty-free modifier and carries no blacklist check, and it converts the position to a fixed term endinglockWeeksweeks later, after whichclaim()works penalty-free. Worst case is a 52-week wait.The
veLista*contracts below stay readable on-chain and existing positions can still be exited through them, but they should not be used for new integrations.
Main
veLista (retired · LIP-024)
veListaDistributor (retired · LIP-024)
Lista Airdrop (closed)
OracleCenter
BorrowLisUSDListaDistributor
StakeLisUSDListaDistributor
EmissionVoting (retired · LIP-024)
VeListaRevenueDistributor (retired · LIP-024)
VeListaInterestRebater (retired · LIP-024)
LP Staking
LISTA emissions reach staking pools through per-pool distributor contracts fed by ListaVault. The set of distributors is on-chain and changes over time, so read it from the vault rather than from a list here:
Ids are issued sequentially from 1 and never reused, so idToDistributor(i) for i in 1..distributorId() is the complete registry. A distributor's registration does not mean it is being funded — check getDistributorWeeklyEmissions(id, getWeek(block.timestamp)) for the week you care about; a 0 there means no emission was allocated to it that week. claimableList(account, distributors) returns a user's claimable amount per distributor in one call.
Staking and vault infrastructure
PancakeStaking
0xE31f0BcE1F825A8e27f2Cc30B54af19DA2978f10
ThenaStaking
0xFA5B482882F9e025facCcE558c2F72c6c50AC719
PancakeVault
0x62DfeC5C9518fE2e0ba483833d1BAD94ecF68153
ThenaVault
0xF40D0d497966fe198765877484FFf08c2D2004ad
LpProxy
0x5A0E3291514F5F1797A0C7eFefdac81eeC70ec01
Last updated
Was this helpful?