A JSON Schema, called Launch List, a unified way for web3 projects to decentralize contextual information and metadata about their smart contract-based token sales or auctions.
The Launch list is a specification for lists of metadata pertaining to token sales and auctions. This repo is inspired by the Uniswap Token Lists and the Trust Wallet Asset Library and is designed to enable a direct connection between token projects and web3 interfaces. Any addition to the Launch List has to follow the schema specification outlined in this doc.
To set up a new sale, follow these steps:
- Create a new sale using https://app.tokensoft.io and retrieve the
saleId
value or retreive a unique identifier that is compatible with your platform of your choice. - Fork this repository and edit /prod/sales_index.json (for production) or /staging/sales_index.json (for testing).
- Add your sale configuration to the JSON file by copying one of the existing sale segments. Commit this change to your repository.
- Open pull request to from your fork to our main branch. Contact the Tokensoft to get this reviewed and merged.
- The sale will be accessible users once the pull request is approved by the maintainers of this repo.
- To update this configuration once the sale is visible, create another pull request.
On Github:
- Sign in to github
- Fork this repository
On your machine:
- Install git: https://github.com/git-guides/install-git
- Install npm: https://nodejs.org/en/
- Clone the forked repository:
git clone https://github.com/[your github username here]/launchlists.git
- Enter the repository:
cd launchlists
- Check out a new branch:
git checkout -b the-name-of-my-sale
- Install dependencies:
npm install
On your machine:
- Refer to
./sale.example.json
for example sale configuration - Add a new sale object to the array of sales in
./prod/sales_index.json
- Verify that the schema is correct:
npm run test
(this will throw an error if config does not match the schema in./sale.schema.json
) - Commit changes:
git commit -am 'new sale'
- Git push:
git push origin <the-name-of-my-sale>
On github:
- Submit a pull request from your forked repository to https://github.com/tokensoft/launchlists
Once complete the sale will be visible on https://app.tokensoft.io or other platforms supporting Launchlists
You can try out the Tokensoft platform using the same steps as the production flow below, except:
- Instead of editing,
./prod/sales_index.json
, add your sale config to the array of sales in./staging/sales_index.json
- Set chain ID to
3
for ropsten
- Set chain ID to
- View sales at https://app.stagetokensoft.com or other platforms supporting Launchlists
- The network is Ropsten: this is not suitable for real sales!
Use this repository to configure the following sale properties. Note that all ethereum addresses should be in lowercase.
chainId
: the Ethereum Chain ID where the sale will occur
- For production: only Ethereum mainnet (chain ID
1
) is supported - For staging: Ropsten (
3
)
saleManagerAddress
: the address of the sale management smart contract. Tokensoft will provide this value.
saleId
: the bytes32
identifier uniquely identifying this sale, provided during the sale creation process at https://app.tokensoft.io in the SaleManager.newSale()
function on-chain. You can find this value under the Manage Sale > Basic Configuration section on https://app.tokensoft.io
saleName
: the name of the sale that will be displayed in app.tokensoft.io
Hidden
hidden
: boolean to determine the sale should be hidden from view
logo
: a URI to a .png logo that will be displayed in app.tokensoft.io
favicon
: a URI to a .ico logo for browser tabs
projectWebsite
: a URI to the project behind the sale
- List links to accounts on common social platforms
Provide an array of documents that must be reviewed by sale participants. Each document includes these fields:
name
: the name of the document that will be visible to sale participants, e.g. "Purchase Agreement"uri
: a link to a.pdf
documentappendSignaturePageUri
(optional): a link to a one-page.pdf
template countersigned by your project. If provided, the same manager should fill in this template with sale participant information and digital signatures. The sale manager should help generate this document.
When a new sale is created, it can either be public (100% globally accessible) or private (restricted to specific users). If private, the sale manager will work with you to generate a list of users that meet the compliance requirements provided by your counsel. Use these two fields to restrict access to specific types of user for pivate sales.
limitToRegions
(optional): provide a list of ISO Alpha-2 country codes for regions where the sale should be accessible. If this field is provided, users that submit an address in any region not on this list will not be able to participate in the sale. Note that Tokensoft has additional compliance requirements: listing a country here does not imply that Tokensoft can support sale participants in that country.merkleProofs
(optional): The sale manager will add this value to reference the merkle proofs allowing users to access a private sale
Access restrictions are additive: to access a private sale, the sale manager may place various restrictions on access. These may include ownership of an NFT, completion of KYC or similar.