A part of Thales core contributors tokens are locked and its implications
In this blog post, we’ll share with you how a part of the THALES tokens allocated to Thales core contributors ended up being locked for an unintended amount of time in a smart contract, why this happened, and what are we doing to solve this issue.
Just to be perfectly clear, we are referring to the token allocation corresponding to Thales core contributors, the one showed in the image below.
All the other token allocation groups are unaffected.
First of all, let us say that it’s much easier writing about the wins than the losses, and although this specific one doesn’t imply any loss of funds from the protocol, it still needs to be openly discussed, in our opinion.
We’ll give more details through this blog post but for the reassurance of those reading, the THALES token will continue to be liquid, incentivized an stakeable on Ethereum layer 1.
So far, we’ve been nothing but thrilled with the support we’ve got from our community, strategic partners, and overall crypto-ecosystem in our short but fast-paced journey.
We think that openly talking about our mistakes will make us stronger and more resilient in the long term to continue building with these long-term people.
Let’s dive in.
What happened?
On September 28th, 15.9 million THALES tokens that were allocated for the first core contributors have been sent mistakenly to the vesting contract, directly instead of adding those via a contract method that was built for that purpose.
This effectively locked these 15.9 THALES tokens until the date when the contract can be self-destructed which is April 2026.
As a result of this, early core contributors would not have their tokens unlocking with the original vesting proposed in the tokenomics blog post, which was a 1-year cliff (starting from the date they joined full-time) and 3 years linear unlock, but rather a 4.5 years cliff.
Why 4.5 years? Can’t you just pull the tokens from the contract?
Thales core contributors are strong believers in decentralization. This belief is so strong that we wanted to ensure no one had the power to change vesting entries and the contract can not be destroyed until a year after has passed since the last tokens are unlocked.
Some of the affected core contributors expressed their willingness to voluntarily wait out the 4.5 years which is quite amazing by itself, but this seems more of a reason why such loyal contributors should not have to incur penalties they were not directly responsible for.
What should have happened?
The correct approach would have been to use the method `addTokens` of the contract to initialize the vesting of tokens for Thales’ early core contributors.
You can check the source code of the vesting contract here.
Why did this happen?
This error was of human nature.
Most of Thales’ contracts work directly sending tokens to the contract. This is the only one that requires going through a contract method.
The same contract was used for retroactive THALES rewards for SNX stakers, so the script to set it up programmatically was already built. However, due to the discretionary nature of core contributor allocations, we didn’t use a script nor had multiple eyes reviewing this rollout.
This is our fault and we take responsibility for it.
To give some context, Thales core contributors have beaten every deadline and are effectively 6 months ahead of the initial pitched roadmap to Synthetix.
This lapse in judgment was a result of overworking and trying to be on top of many things in parallel.
Having centralized resourcing bottlenecks in an early stage of a decentralized project is unavoidable, but with this situation we’ve learned that we must do better, optimize our internal processes, potentiate the formation of sub-teams responsible for different aspects of the protocol, and take care of ourselves and our mental health if feeling overworked.
What are the plans moving forward to mitigate this?
It’s important to clarify: There is no time pressure to take immediate action.
This event has gotten us thinking more about supporting THALES token on Layer 2, as most of Thales platform action, liquidity and users will be there.
The likely mitigation path would be for core contributors to continue focusing efforts on expanding Thales platform into Optimistic network (Layer 2) first, and then migrate the current THALES token to a version of THALES (Optimistic THALES token) in order to bridge THALES to layer two.
The biggest downside to this would be the gas cost for migration which should be minimal due to:
- The simplicity of the token transformation contract.
- The incentivization plan put in place to support this migration.
Besides the incentivization for this token migration on Thales’ side, we also spoke with our patrons at Synthetix and they believe THALES could be one of the first governance tokens to have incentivized liquidity on OP with added rewards.
We are actively working on an optimal solution taking into account all intrincancies and we’ll share a more detailed plan once all the due diligence and feasibility tests have been done, taking into consideration Optimism network final regenesis.
How does this affect current and future token holders?
Current token holders are not directly affected and they aren’t required to do any immediate action.
You can continue providing liquidity on DODO and/or staking on Thales dapp without any issue.
The current THALES token will continue being incentivized, liquid, and stakeable on Ethereum layer 1 until such a time comes when market forces organically move the majority of SNX and THALES stakers to layer 2.
We’ll announce any follow-up on this with plenty of time in advance so token holders can prepare for the THALES token migration.
What did we learn from this?
In hindsight, we are happy this happened when it did and how it did.
We are extremely grateful to have the support from the Thales Council, their help and encouraging words when brainstorming possible solutions for this event cannot be overstated.
This is a very effective lesson for us and luckily no one has been affected but the core contributors, whom we will make sure to do right by.
We’ve already improved our processes to always have multiple eyes on every transfer and deployment.
We will learn to be better at delegating to off-load some of the early core contributors, actively look for more helping hands, and form autonomous subteams responsible for different aspects of the protocol.
We can ensure the community that together we will come out stronger from this experience.
Stay tuned for more updates and don’t forget to join Thales’ Discord to be part of the discussion on further milestones and developments.
Thanks a lot for your support, Titans.
Onwards!