3 min read

Introducing Lockup Contract

To launch $SKYWARD token, we've built a custom lockup contract for the fungible tokens. It acts like a genesis block. The main purpose is to lock and distribute the total amount of specific fungible token for a large number of accounts according to the vesting schedule.
Introducing Lockup Contract

Hi Skyward Flight,

We’ve been quiet because we worked hard to make changes in the preparation for the upcoming launch. Here’s what’s new with Skyward Finance:

  • New token distribution model to remove preferential treatment and simplify listings process (see the updated whitepaper)
  • No more platform fee for listing a sale to inspire a fair community-driven model
  • Projects are still welcome to apply and we are happy to help with the sale and promote it through our social media channels
  • There will be no more boosting the projects sales using $SKYWARD token. The previous model forced us to have preferential treatment towards some projects and choose who to incentivize and who not to
  • Now 90% of $SKYWARD (more than double from initial 41%) will be sold to the public; thus, all proceeds form all the sales will go to Treasury as was initially planned
  • Allocating 1% of $SKYWARD to the community participants (the amount of inbound from VCs, projects, and community members was mesmerizing). The allocation will happen at the Genesis event; however, tokens will be locked for 1 month (during this time you will need to claim your tokens) and 1 month linear release.
  • The founders allocation is decreased to 9%

To launch $SKYWARD token, we've built a custom lockup contract for the fungible tokens. It acts like a genesis block. The main purpose is to lock and distribute the total amount of specific fungible token for a large number of accounts according to the vesting schedule. Each participating account may have a different balance and a different vesting schedule. A vesting schedule also supports a cliff which blocks linear release until the cliff time is reached.

The contract also has a Skyward specific feature such as an ability to donate the balance from unclaimed/untouched to the Skyward Treasury at a given expiration timestamp as well as any remaining NEAR balance on the lockup contract. This is helpful to remove some the dead balance from the circulation or put it into the treasury. Since this contract is designed to distribute $SKYWARD token, the unclaimed tokens will be effectively burned without redeeming, which would increase the ownership percentage of the Skyward Treasury for the remaining $SKYWARD token holders.

But if the donation feature is removed or updated to donate back to the DAO or other Treasury, the lockup contract can be used for other projects planning to launch a token and provide initial distribution. The code is open-sourced and has a permissive license.

To setup a lockup schedule, one have to update the CSV file with the list of accounts:

example.csv

account_id,start_date,cliff_date,end_date,balance
alice.near,2021-06-01,,2021-07-01,10
bob.near,2021-06-01,2021-07-01,2021-10-01,10000

In this example we distribute 10 tokens to alice.near account and 10000 tokens to bob.near.

  • alice.near has 1 month of linear vesting starting June 1, 2021.
  • bob.near has 4 months of linear vesting starting June 1, 2021 with a cliff date on July 1, 2021

Once the CSV file is updated, you have to convert to efficient binary format. NEAR has created a binary format called Borsh. This format is pretty common for Rust contract. We've decided to reuse it to store all account vesting information. And then compile this information directly into the lockup contract.

To convert a CSV file, there is a Rust binary called lockup_csv_to_borsh. You can read details in the README.md file.

Once the lockup contract is compiled and deployed, it'll be a standalone contract without any access key or an owner that will have a vesting schedule for all accounts that would receive the token. The fungible token contract will be deployed separately.

Source code for the contracts: https://github.com/skyward-finance/contracts

If you're a developer, don't forget to give us a Github Star.

We plan to release the token claim app with the UI to login with NEAR wallet and claim your SKYWARD tokens.

Stay tuned and get ready for the flight.

Thanks everyone for participation. We are excited to build a truly decentralized launchpad with you!

Spensa & Doomslug