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:
saleId
value or retreive a unique identifier that is compatible with your platform of your choice.On Github:
On your machine:
git clone https://github.com/[your github username here]/launchlists.git
cd launchlists
git checkout -b the-name-of-my-sale
npm install
On your machine:
./sale.example.json
for example sale configuration./prod/sales_index.json
npm run test
(this will throw an error if config does not match the schema in ./sale.schema.json
)git commit -am 'new sale'
git push origin <the-name-of-my-sale>
On github:
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:
./prod/sales_index.json
, add your sale config to the array of sales in ./staging/sales_index.json
3
for ropstenUse 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
1
) is supported3
)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.iohidden
: boolean to determine the sale should be hidden from viewlogo
: a URI to a .png logo that will be displayed in app.tokensoft.iofavicon
: a URI to a .ico logo for browser tabsprojectWebsite
: a URI to the project behind the saleProvide 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 saleAccess 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.