├── .gitignore ├── package.json ├── validate.js ├── sale.example.json ├── dev └── sales_index.json ├── yarn.lock ├── qa └── sales_index.json ├── sale.schema.json ├── SALE_CONFIG.md ├── README.md ├── prod └── sales_index.json └── staging └── sales_index.json /.gitignore: -------------------------------------------------------------------------------- 1 | *# 2 | *~ 3 | .idea 4 | node_modules 5 | /launchlists.iml 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tokensoft/sales", 3 | "version": "1.0.0", 4 | "saleDescription": "sale configuration for projects using tokensoft tech", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "node validate" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/tokensoft/sales.git" 12 | }, 13 | "author": "", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/tokensoft/sales/issues" 17 | }, 18 | "homepage": "https://github.com/tokensoft/sales#readme", 19 | "dependencies": { 20 | "ajv": "^8.10.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /validate.js: -------------------------------------------------------------------------------- 1 | const Ajv = require("ajv"); 2 | const saleSchema = require("./sale.schema.json"); 3 | const fs = require( 'fs' ); 4 | const path = require( 'path' ); 5 | 6 | const ajv = new Ajv() 7 | const validate = ajv.compile(saleSchema) 8 | 9 | function validateSchema (filePath, data) { 10 | const valid = validate(data) 11 | console.warn(valid ? 'Validation passed' : 'Validation failed') 12 | if (!valid) { 13 | console.error(filePath, validate.errors); 14 | throw new Error(validate.errors); 15 | } 16 | } 17 | 18 | async function loadSales() { 19 | const filePaths = [ 20 | './dev/sales_index.json', 21 | './staging/sales_index.json', 22 | './prod/sales_index.json', 23 | './sale.example.json' 24 | ] 25 | 26 | for( const filePath of filePaths ) { 27 | console.log(`Checking ${filePath}`) 28 | const content = fs.readFileSync(filePath); 29 | 30 | let saleConfig 31 | try { 32 | saleConfig = JSON.parse(content); 33 | } catch(e) { 34 | console.error(`Sale config in ${filePath} is not valid JSON: ${e.message}`) 35 | } 36 | 37 | validateSchema(filePath, saleConfig); 38 | } 39 | } 40 | 41 | loadSales() 42 | -------------------------------------------------------------------------------- /sale.example.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "chainId": 31337, 3 | "saleManagerAddress": "0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0", 4 | "saleId": "0xe771b1e18f058577ff08390172412402d3de360f8ce3e890036c670e7ed54d81", 5 | "saleName": "Tokensoft Example Sale", 6 | "logo": "https://example.com/icon.png", 7 | "favicon": "https://example.com/favicon.ico", 8 | "projectWebsite": "https://example.com", 9 | "hidden": false, 10 | "purchaseDocumentsGenerated": false, 11 | "saleDescription": "A sale of Example Tokens to our community on date for purpose at price. Use this example sale as a guide when configuring your own sale", 12 | "socials": { 13 | "twitter": "https://twitter.com/example" 14 | }, 15 | "documents": [{ 16 | "name": "Terms and Conditions", 17 | "uri": "https://example.com/terms.pdf" 18 | }, { 19 | "name": "Privacy Policy", 20 | "uri": "https://example.com/privacy.pdf" 21 | }, { 22 | "name": "Purchase Agreement", 23 | "uri": "https://example.com/purchase.pdf", 24 | "appendSignaturePageUri": "https://example.com/purchase_countersigned_template.pdf" 25 | }], 26 | "access": { 27 | "limitToRegions": ["US", "CA", "CH"], 28 | "limitToAddresses": ["0x3cfa1411e0243c23486e7d966f46ee2d1d2a28fa", "0xd9c556ef2cd9a7066d6c35c5505cac8d4bd4223d"], 29 | "merkleProofs": "https://gateway.pinata.cloud/ipfs/QmNYPPSXpNi83vdUBYL7DcgVZjRVxodUG6GcZR5LzGGc4M" 30 | } 31 | }] 32 | -------------------------------------------------------------------------------- /dev/sales_index.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "chainId": 31337, 4 | "saleManagerAddress": "0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0", 5 | "saleId": "0xad576dabbf066860b489eab940bd3fe23d9c10ac3813ce1384e9a5d8f5b41be6", 6 | "saleName": "Moonbridge take flight", 7 | "hidden": false, 8 | "purchaseDocumentsGenerated": false, 9 | "logo": "https://s3.amazonaws.com/media.tokensoft.io/logos/example_sale_logo.png", 10 | "favicon": "https://s3.amazonaws.com/media.tokensoft.io/logos/example_sale_logo.png", 11 | "projectWebsite": "https://www.moonbridge.com", 12 | "saleDescription": "Moonbridge is a decentralized bridge that connects Bitcoin and Moonbeam.", 13 | "socials": { 14 | "twitter": "https://twitter.com/tokensoftinc", 15 | "discord": "https://discord.com/invite/foo", 16 | "telegram": "https://t.me/hi" 17 | }, 18 | "documents": [ 19 | { 20 | "name": "SAFT", 21 | "uri": "https://example.com/saft.pdf" 22 | }, 23 | { 24 | "name": "Disclosures", 25 | "uri": "https://example.com/disclosures.pdf" 26 | }, 27 | { 28 | "name": "Terms", 29 | "uri": "https://example.com/terms.pdf" 30 | }, 31 | { 32 | "name": "Privacy Policy", 33 | "uri": "https://example.com/privacy.pdf" 34 | } 35 | ], 36 | "access": { 37 | "limitToRegions": ["FR"], 38 | "merkleProofs": "https://gateway.pinata.cloud/ipfs/QmNYPPSXpNi83vdUBYL7DcgVZjRVxodUG6GcZR5LzGGc4M" 39 | } 40 | } 41 | ] 42 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | ajv@^8.10.0: 6 | version "8.11.0" 7 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" 8 | integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== 9 | dependencies: 10 | fast-deep-equal "^3.1.1" 11 | json-schema-traverse "^1.0.0" 12 | require-from-string "^2.0.2" 13 | uri-js "^4.2.2" 14 | 15 | fast-deep-equal@^3.1.1: 16 | version "3.1.3" 17 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 18 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 19 | 20 | json-schema-traverse@^1.0.0: 21 | version "1.0.0" 22 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 23 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 24 | 25 | punycode@^2.1.0: 26 | version "2.1.1" 27 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 28 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 29 | 30 | require-from-string@^2.0.2: 31 | version "2.0.2" 32 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 33 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 34 | 35 | uri-js@^4.2.2: 36 | version "4.4.1" 37 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 38 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 39 | dependencies: 40 | punycode "^2.1.0" 41 | -------------------------------------------------------------------------------- /qa/sales_index.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "hidden": false, 4 | "chainId": 3, 5 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 6 | "saleId": "0x210c67da123eb90f38527d513232b6699ae12de5e5836a60bc92272535a136d4", 7 | "saleName": "ToTheMoonTokenSoft (TTMTS)", 8 | "logo": "https://cdn.icon-icons.com/icons2/1389/PNG/512/moonfullmoon_96135.png", 9 | "favicon": "https://cdn.icon-icons.com/icons2/1389/PNG/512/moonfullmoon_96135.png", 10 | "projectWebsite": "https://tokensoft.io", 11 | "saleDescription": "community token", 12 | "gaTrackingId": "UA-106616315-4", 13 | "access": { 14 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"], 15 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmXeY4d1iAJaBrQsTEX3hW6Htpa5XX5BjnXLwRLpJH7h2j" 16 | }, 17 | "socials": { 18 | "twitter": "https://twitter.com/bitdealer91", 19 | "discord": "https://discord.gg/tokensoft", 20 | "telegram": "https://t.me/cryptorussianbears" 21 | }, 22 | "documents": [{ 23 | "name": "Purchase Agreement", 24 | "uri": "https://example.com/qtz.pdf", 25 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 26 | }] 27 | } 28 | ] 29 | -------------------------------------------------------------------------------- /sale.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "array", 3 | "items": { 4 | "type": "object", 5 | "properties": { 6 | "chainId": { 7 | "type": "number", 8 | "enum": [1, 3, 4, 5, 43113, 43114, 31337, 137] 9 | }, 10 | "saleId": { 11 | "type": "string", 12 | "pattern": "^0x[0-9a-f]{64}$" 13 | }, 14 | "saleManagerAddress": { 15 | "type": "string", 16 | "pattern": "^0x[0-9a-f]{40}$" 17 | }, 18 | "saleName": { 19 | "type": "string" 20 | }, 21 | "hidden": { 22 | "type": "boolean" 23 | }, 24 | "symbol": { 25 | "type": "string" 26 | }, 27 | "purchaseDocumentsGenerated": { 28 | "type": "boolean" 29 | }, 30 | "logo": { 31 | "type": "string" 32 | }, 33 | "favicon": { 34 | "type": "string" 35 | }, 36 | "projectWebsite": { 37 | "type": "string" 38 | }, 39 | "saleDescription": { 40 | "type": "string" 41 | }, 42 | "gaTrackingId": { 43 | "type": "string" 44 | }, 45 | "socials": { 46 | "type": "object", 47 | "properties": { 48 | "twitter": { 49 | "type": "string", 50 | "pattern": "(https?:\\\/\\\/)?(www\\.)?(twitter\\.com)\\\/(\\w+)?" 51 | }, 52 | "discord": { 53 | "type": "string", 54 | "pattern": "(https?:\\\/\\\/)?(www\\.)?((discord\\.com\\\/invite)|(discord\\.gg))\\\/(\\w+)?" 55 | }, 56 | "telegram": { 57 | "type": "string", 58 | "pattern": "(https?:\\\/\\\/)?(www\\.)?(t\\.me\\\/).+" 59 | } 60 | }, 61 | "additionalProperties": false 62 | }, 63 | "gnosisSafeMasterAddress": { 64 | "type": "string" 65 | }, 66 | "documents": { 67 | "type": "array", 68 | "minItems": 1, 69 | "items": { 70 | "type": "object", 71 | "properties": { 72 | "name": { 73 | "type": "string" 74 | }, 75 | "uri": { 76 | "type": "string" 77 | }, 78 | "appendSignaturePageUri": { 79 | "type": "string" 80 | } 81 | }, 82 | "required": ["name", "uri"], 83 | "additionalProperties": false 84 | } 85 | }, 86 | "access": { 87 | "type": "object", 88 | "properties": { 89 | "limitToRegions": { 90 | "type": "array", 91 | "minItems": 1, 92 | "items": { 93 | "type": "string", 94 | "enum": ["AD", "AE", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW"] 95 | } 96 | }, 97 | "limitToAddresses": { 98 | "type": "array", 99 | "minItems": 1, 100 | "items": { 101 | "type": "string", 102 | "pattern": "^0x[0-9a-f]{40}$" 103 | } 104 | }, 105 | "merkleProofs": { 106 | "type": "string" 107 | } 108 | }, 109 | "required": [], 110 | "additionalProperties": false 111 | } 112 | }, 113 | "required": [ 114 | "chainId", 115 | "saleManagerAddress", 116 | "saleId", 117 | "saleName", 118 | "logo", 119 | "favicon", 120 | "projectWebsite", 121 | "saleDescription", 122 | "socials", 123 | "documents", 124 | "access" 125 | ], 126 | "additionalProperties": false 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /SALE_CONFIG.md: -------------------------------------------------------------------------------- 1 | # Configuring the Sale Index JSON 2 | 3 | Before your sale will show up in the Tokensoft interface, we'll need some details about your team, a couple of logos, social media links, and at least one document--a purchase agreement--added to our sale index. At a high level, this will require you to perform a handful of steps: 4 | 5 | 1. [Fork this repo](https://github.com/tokensoft/launchlists/new/main#forking-this-repository) - Fork a copy of the tokensoft/launchlists repository 6 | 2. [Edit the JSON](https://github.com/tokensoft/launchlists/new/main#edit-the-sales-index-json) - Edit the `prod/sales_index.json` file (for production) or `staging/sales_index.json` file (for staging) to add your sale configuration 7 | 3. [Commit your changes](https://github.com/tokensoft/launchlists/new/main#save-and-commit-your-file-to-your-main-branch) - Committing your edits to your fork of the repository 8 | 4. [Open a PR](https://github.com/tokensoft/launchlists/new/main#open-a-pull-request-for-inclusion-in-the-tokensoft-repository) - Opening a pull request (PR) against the tokensoft/launchlists repository with your changes 9 | 5. [Ping the Team]() - Receiving merge approval from the Tokensoft team 10 | 11 | ## Forking this repository 12 | 13 | 1. Make sure you're on Tokensoft's launchlist repository by navigating to [tokensoft/launchlists](https://github.com/tokensoft/launchlists) 14 | 2. Click the fork button in the top right corner of the screen: 15 | 16 | ![fork button](https://user-images.githubusercontent.com/3208589/166805357-fc9658f3-3db3-466d-9389-d44e69dd40ab.png) 17 | 18 | 19 | When this process is complete, you should get navigated to your personal copy of this repository. The URL for this copy will roughly follow the style `https://github.com//launchlists` 20 | 21 | ## Edit the Sales Index JSON 22 | 23 | 1. Figure out which file you need to edit: 24 | * If you are making changes in our staging enviornment (`app.stagetokensoft.com`), edit [staging/sales_index.json](staging/sales_index.json) 25 | * If you are working on a production sale (`app.tokensoft.io`), add your details to [prod/sales_index.json](prod/sales_index.json) 26 | 2. Edit the file. This can be done through the Github interface by navigating to the proper file in Github and clicking the pencil icon. Alternatively, you can clone the repository locally using Git, but instructions on doing so are outside the scope of this document. 27 | 3. Add a new sale segment to the JSON file. An example structure that you can copy and paste in, with changes, is below: 28 | 29 | ``` 30 | { 31 | "chainId": 1, 32 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 33 | "saleId": "", 34 | "saleName": "", 35 | "logo": "", 36 | "favicon": "", 37 | "projectWebsite": "", 38 | "saleDescription": "", 39 | "access": { 40 | "limitToRegions": ["US","AL","DZ","AD","AO","AI","AG","AR","AM","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BR","BN","BG","BF","BI","KH","CM","CV","KY","CF","TD","CL","CO","KM","CD","CG","CR","CI","HR","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FO","FJ","FI","FR","PF","GA","GM","GE","DE","GH","GI","GR","GD","GT","GG","GN","GW","GY","HT","VA","HN","HK","HU","IS","IN","ID","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MV","ML","MT","MH","MR","MU","MX","MY","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NZ","NI","NE","NG","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PL","PT","PR","QA","RO","RU","RW","KN","LC","MF","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","ES","LK","SR","SZ","SE","CH","TW","TJ","TZ","TH","TL","TG","TO","TT","TN","TR","TM","TC","TV","UG","AE","GB","UY","UZ","VU","VE","VN","EH","YE","ZM","ZW","SD","CA","SS","UA"] 41 | }, 42 | "socials": { 43 | "twitter": "https://twitter.com/", 44 | "discord": "https://discord.gg/", 45 | "telegram": "https://t.me/" 46 | }, 47 | "documents": [ 48 | { 49 | "name": "Purchase Agreement", 50 | "uri": "https://example.com/qtz.pdf", 51 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 52 | } 53 | ] 54 | }, 55 | ``` 56 | 57 | Please edit the snippets that contain <> to update with your data. The saleId will be copyable from the sale maangement screen in the Tokensoft platform. Use the copy icon to the right of the Sale ID hash to copy it to your clipboard: 58 | 59 | ![Screen Shot 2022-05-04 at 15 35 38](https://user-images.githubusercontent.com/3208589/166812881-cd6af658-98f6-4e5c-88c9-086e12a2ad02.png) 60 | 61 | 62 | ## Save and commit your file to your main branch 63 | 64 | 1. Enter a descriptive title and some contact information into the commit screen: 65 | 66 | ![Screen Shot 2022-05-04 at 15 13 24](https://user-images.githubusercontent.com/3208589/166809003-7ccaacd5-01c4-4f7b-9220-4441beb2ecb8.png) 67 | 68 | 2. Commit the changes to your main branch 69 | 70 | ## Open a Pull Request for inclusion in the Tokensoft Repository 71 | 72 | 1. Navigate to your personal repository and fetch the upstream changes using the "Fetch and Merge" button: 73 | 74 | ![Screen Shot 2022-05-04 at 15 17 38](https://user-images.githubusercontent.com/3208589/166809956-22a3e670-76da-475d-a8e3-b48c2e0fcd2e.png) 75 | 76 | 2. Then open a pull request to request inclusion in the sale index: 77 | 78 | ![Screen Shot 2022-05-04 at 15 18 20](https://user-images.githubusercontent.com/3208589/166809777-47b35939-11ff-471f-8c7f-538145bea565.png) 79 | 80 | ## Connect with us! 81 | 82 | Now that the pull request is open, a developer from our team will review the formatting, ensure that it will work as expected. If there are any issues, we will reach out and work through those with you. When everything looks good, we'll merge it, and your sale will show up on the site! 83 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tokensoft Launchlists 2 | A JSON Schema, called Launch List, a unified way for web3 projects to decentralize contextual information and metadata about 3 | their smart contract-based token sales or auctions. 4 | 5 | ## Why? 6 | 7 | The Launch list is a specification for lists of metadata pertaining to token sales and auctions. This repo 8 | is inspired by the [Uniswap Token Lists](https://github.com/Uniswap/token-lists) and the [Trust Wallet Asset Library](https://github.com/trustwallet/assets/tree/master/blockchains) 9 | 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. 10 | 11 | ## Start here 12 | To set up a new sale, follow these steps: 13 | 1. 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. 14 | 2. Fork this repository and edit /prod/sales_index.json (for production) or /staging/sales_index.json (for testing). 15 | 3. Add your sale configuration to the JSON file by copying one of the existing sale segments. Commit this change to your repository. 16 | 4. Open pull request to from your fork to our main branch. Contact the Tokensoft to get this reviewed and merged. 17 | 5. The sale will be accessible users once the pull request is approved by the maintainers of this repo. 18 | 6. To update this configuration once the sale is visible, create another pull request. 19 | 20 | ## Setup 21 | On Github: 22 | * Sign in to github 23 | * Fork this repository 24 | 25 | On your machine: 26 | * Install git: https://github.com/git-guides/install-git 27 | * Install npm: https://nodejs.org/en/ 28 | * Clone the forked repository: `git clone https://github.com/[your github username here]/launchlists.git` 29 | * Enter the repository: `cd launchlists` 30 | * Check out a new branch: `git checkout -b the-name-of-my-sale` 31 | * Install dependencies: `npm install` 32 | 33 | ## Launching a Sale 34 | 35 | ### Production 36 | On your machine: 37 | * Refer to `./sale.example.json` for example sale configuration 38 | * Add a new sale object to the array of sales in `./prod/sales_index.json` 39 | * 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`) 40 | * Commit changes: `git commit -am 'new sale'` 41 | * Git push: `git push origin ` 42 | 43 | On github: 44 | * Submit a pull request from your forked repository to https://github.com/tokensoft/launchlists 45 | 46 | Once complete the sale will be visible on https://app.tokensoft.io or other platforms supporting Launchlists 47 | 48 | ### Staging 49 | You can try out the Tokensoft platform using the same steps as the production flow below, except: 50 | * Instead of editing, `./prod/sales_index.json`, add your sale config to the array of sales in `./staging/sales_index.json` 51 | * Set chain ID to `3` for ropsten 52 | * View sales at https://app.stagetokensoft.com or other platforms supporting Launchlists 53 | * The network is Ropsten: this is not suitable for real sales! 54 | 55 | ## Sale Configuration 56 | Use this repository to configure the following sale properties. Note that all ethereum addresses should be in lowercase. 57 | 58 | ### Chain ID 59 | `chainId`: the Ethereum Chain ID where the sale will occur 60 | * For production: only Ethereum mainnet (chain ID `1`) is supported 61 | * For staging: Ropsten (`3`) 62 | 63 | ### Sale Address 64 | `saleManagerAddress`: the address of the sale management smart contract. Tokensoft will provide this value. 65 | 66 | ### Sale ID 67 | `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 68 | 69 | ### Sale Name 70 | * `saleName`: the name of the sale that will be displayed in app.tokensoft.io 71 | 72 | ### Hidden 73 | * `hidden`: boolean to determine the sale should be hidden from view 74 | 75 | ### Logo 76 | * `logo`: a URI to a .png logo that will be displayed in app.tokensoft.io 77 | 78 | ### Favicon 79 | * `favicon`: a URI to a .ico logo for browser tabs 80 | 81 | ### Project Website 82 | * `projectWebsite`: a URI to the project behind the sale 83 | 84 | ### Socials 85 | * List links to accounts on common social platforms 86 | 87 | ### Documents 88 | Provide an array of documents that must be reviewed by sale participants. Each document includes these fields: 89 | * `name`: the name of the document that will be visible to sale participants, e.g. "Purchase Agreement" 90 | * `uri`: a link to a `.pdf` document 91 | * `appendSignaturePageUri` (optional): a link to a one-page `.pdf` template countersigned by your project. 92 | If provided, the same manager should fill in this template with sale participant information and digital signatures. 93 | The sale manager should help generate this document. 94 | 95 | ### Access 96 | When a new sale is created, it can either be public (100% globally accessible) or private (restricted to specific users). 97 | 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. 98 | 99 | * `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. 100 | * `merkleProofs` (optional): The sale manager will add this value to reference the merkle proofs allowing users to access a private sale 101 | 102 | 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. 103 | 104 | -------------------------------------------------------------------------------- /prod/sales_index.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "chainId": 1, 4 | "saleManagerAddress": "0xff7a903e86b10aaeb8da65cef0ebc07ea3f9354b", 5 | "saleId": "0x1ca211b8a36965edb72ab56c06a36fc197e604352835b3b995aab2450f9be78e", 6 | "saleName": "Phat Loot Community Seed Round", 7 | "symbol": "PLT", 8 | "logo": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Phat%20Loot%20favicon.png", 9 | "favicon": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Phat%20Loot%20favicon.png", 10 | "projectWebsite": "https://www.phatlootdefi.com/", 11 | "saleDescription": "Phat Loot Token is the first truly universal token fully integrated across all facets of the Phat Loot ecosystem. The Phat Loot Token will power everything Phat Loot including play-to-earn rewards, game mechanics, marketplace utilization, In-game utility, tournament entry fees, game launchpads, skins, in-game items, SaaS & on-demand solutions, marketing activities, and much more.", 12 | "access": { 13 | "limitToRegions": ["AL","DZ","AD","AO","AI","AG","AR","AM","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BR","BN","BG","BF","BI","KH","CM","CV","KY","CF","TD","CL","CO","KM","CD","CG","CR","CI","HR","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FO","FJ","FI","FR","PF","GA","GM","GE","DE","GH","GI","GR","GD","GT","GG","GN","GW","GY","HT","VA","HN","HK","HU","IS","IN","ID","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MV","ML","MT","MH","MR","MU","MX","MY","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NZ","NI","NE","NG","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PL","PT","PR","QA","RO","RU","RW","KN","LC","MF","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","ES","LK","SR","SZ","SE","CH","TW","TJ","TZ","TH","TL","TG","TO","TT","TN","TR","TM","TC","TV","UG","AE","GB","UY","UZ","VU","VE","VN","EH","YE","ZM","ZW","SD","CA","SS","UA"], 14 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmaiEHypS9B4zmi7wMzaGaCgaTq5hgCrTQ72p2HX7TQKkN" 15 | }, 16 | "socials": { 17 | "twitter": "https://twitter.com/guppygangnft", 18 | "discord": "https://discord.com/invite/guppygang" 19 | }, 20 | "documents": [ 21 | { 22 | "name": "Purchase Agreement", 23 | "uri": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Approved.SAFT.PhatLootDeFi.V2.docx.pdf", 24 | "appendSignaturePageUri": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Purchase%20Agreement%20Signature%20Annex.pdf" 25 | } 26 | ] 27 | }, 28 | { 29 | "hidden": true, 30 | "chainId": 1, 31 | "saleManagerAddress": "0xff7a903e86b10aaeb8da65cef0ebc07ea3f9354b", 32 | "saleId": "0xdb88f979d151778556f1a0d3c85ee1f80fc16b274d111943d123023138045bdf", 33 | "saleName": "Quetzalcoatl 7: Prod Test", 34 | "logo": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 35 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 36 | "projectWebsite": "https://en.wikipedia.org/wiki/Quetzalcoatl", 37 | "saleDescription": "Quetzalcoatl Sale 7 Description", 38 | "symbol": "QTZ", 39 | "gaTrackingId": "UA-106616315-4", 40 | "socials": { 41 | "twitter": "https://twitter.com/qtz", 42 | "discord": "https://discord.gg/qtz", 43 | "telegram": "https://t.me/qtz" 44 | }, 45 | "access": { 46 | "limitToRegions": ["US"], 47 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmZuWhRVDmCxQREUvksaEwFpjVo9ypp6kWZ6aMBMupRCNy" 48 | }, 49 | "documents": [{ 50 | "name": "Purchase Agreement", 51 | "uri": "https://example.com/qtz.pdf", 52 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 53 | }] 54 | }, 55 | { 56 | "hidden": true, 57 | "chainId": 1, 58 | "saleManagerAddress": "0xff7a903e86b10aaeb8da65cef0ebc07ea3f9354b", 59 | "saleId": "0x1901a0a83d6605d80d417d125828c1a08d3ef3460e50821ec20b3e3b13cddeb2", 60 | "saleName": "Phat Loot Community Seed Round", 61 | "symbol": "PLT", 62 | "logo": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Phat%20Loot%20favicon.png", 63 | "favicon": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Phat%20Loot%20favicon.png", 64 | "projectWebsite": "https://www.phatlootdefi.com/", 65 | "saleDescription": "Phat Loot Token is the first truly universal token fully integrated across all facets of the Phat Loot ecosystem. The Phat Loot Token will power everything Phat Loot including play-to-earn rewards, game mechanics, marketplace utilization, In-game utility, tournament entry fees, game launchpads, skins, in-game items, SaaS & on-demand solutions, marketing activities, and much more.", 66 | "access": { 67 | "limitToRegions": ["AL","DZ","AD","AO","AI","AG","AR","AM","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BR","BN","BG","BF","BI","KH","CM","CV","KY","CF","TD","CL","CO","KM","CD","CG","CR","CI","HR","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FO","FJ","FI","FR","PF","GA","GM","GE","DE","GH","GI","GR","GD","GT","GG","GN","GW","GY","HT","VA","HN","HK","HU","IS","IN","ID","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MV","ML","MT","MH","MR","MU","MX","MY","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NZ","NI","NE","NG","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PL","PT","PR","QA","RO","RU","RW","KN","LC","MF","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","ES","LK","SR","SZ","SE","CH","TW","TJ","TZ","TH","TL","TG","TO","TT","TN","TR","TM","TC","TV","UG","AE","GB","UY","UZ","VU","VE","VN","EH","YE","ZM","ZW","SD","CA","SS","UA"], 68 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmezZyEjHGeeUgS7HF9ioCggcGEZRKkz673ZozmXYgK4Eh" 69 | }, 70 | "socials": { 71 | "twitter": "https://twitter.com/guppygangnft", 72 | "discord": "https://discord.com/invite/guppygang" 73 | }, 74 | "documents": [ 75 | { 76 | "name": "Purchase Agreement", 77 | "uri": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Approved.SAFT.PhatLootDeFi.pdf", 78 | "appendSignaturePageUri": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Purchase%20Agreement%20Signature%20Annex.pdf" 79 | } 80 | ] 81 | }, 82 | { 83 | "chainId": 1, 84 | "saleManagerAddress": "0x000047203100a45635029ec21bbbec5ec53cb6f6", 85 | "saleId": "0x7c24c606f97396b7073e52623b850227a4a148bcb7f5315ee9fa40fc3674c3a2", 86 | "saleName": "ARC Public Sale", 87 | "symbol": "ARC", 88 | "logo": "https://storage.arcdex.io/images/arc-logo.png", 89 | "favicon": "https://storage.arcdex.io/images/arc-favicon.png", 90 | "projectWebsite": "https://arcdex.io", 91 | "saleDescription": "ARC Finance is an AUM-based liquidity as a service (LaaS) platform that allows users to achieve effective high-yield liquidity management through a combination of premium mining strategies. ARC Finance aims to provide proactive liquidity management services for different protocols and motivate users to engage in positive trading behaviour, increase capital efficiency and capture liquidity premium value.", 92 | "access": { 93 | "limitToRegions": ["CN","AL","DZ","AD","AO","AI","AG","AR","AM","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BR","BN","BG","BF","BI","KH","CM","CV","KY","CF","TD","CL","CO","KM","CD","CG","CR","CI","HR","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FO","FJ","FI","FR","PF","GA","GM","GE","DE","GH","GI","GR","GD","GT","GG","GN","GW","GY","HT","VA","HN","HK","HU","IS","IN","ID","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MV","ML","MT","MH","MR","MU","MX","MY","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NZ","NI","NE","NG","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PL","PT","PR","QA","RO","RU","RW","KN","LC","MF","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","ES","LK","SR","SZ","SE","CH","TW","TJ","TZ","TH","TL","TG","TO","TT","TN","TR","TM","TC","TV","UG","AE","GB","UY","UZ","VU","VE","VN","EH","YE","ZM","ZW","SD","CA","SS","UA"], 94 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmddZpiVDebpnZJs8JZJ2MMJTbxRULpCa61hpyQyyhn9N4" 95 | }, 96 | "socials": { 97 | "twitter": "https://twitter.com/Arc__Finance", 98 | "discord": "https://discord.gg/wbe6B4GrPv", 99 | "telegram": "https://t.me/ArcFinance_global" 100 | }, 101 | "documents": [ 102 | { 103 | "name": "Purchase Agreement", 104 | "uri": "https://storage.arcdex.io/doc/Arc Finance SAFT.pdf", 105 | "appendSignaturePageUri": "https://storage.arcdex.io/doc/Arc Finance SAFT.pdf" 106 | } 107 | ] 108 | }, 109 | { 110 | "chainId": 1, 111 | "saleManagerAddress": "0x000047203100a45635029ec21bbbec5ec53cb6f6", 112 | "saleId": "0x9ba1d4803aea6509a6f44430227962415235f6a8be5d6ae1601ab521fee5f0f4", 113 | "saleName": "Rand PreSale", 114 | "symbol": "RND", 115 | "logo": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/RAND-visual%20identity-2022_logo-overlight-2%20%282%29.png", 116 | "favicon": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/RAND-visual%20identity-2022_logo-overdark-indigo-1%20%281%29.png", 117 | "projectWebsite": "https://rand.network", 118 | "saleDescription": "Rand PreSale", 119 | "access": { 120 | "limitToRegions": ["AL","DZ","AD","AO","AI","AG","AR","AM","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BR","BN","BG","BF","BI","KH","CM","CV","KY","CF","TD","CL","CO","KM","CD","CG","CR","CI","HR","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FO","FJ","FI","FR","PF","GA","GM","GE","DE","GH","GI","GR","GD","GT","GG","GN","GW","GY","HT","VA","HN","HK","HU","IS","IN","ID","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MV","ML","MT","MH","MR","MU","MX","MY","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NZ","NI","NE","NG","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PL","PT","PR","QA","RO","RU","RW","KN","LC","MF","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","ES","LK","SR","SZ","SE","CH","TW","TJ","TZ","TH","TL","TG","TO","TT","TN","TR","TM","TC","TV","UG","AE","GB","UY","UZ","VU","VE","VN","EH","YE","ZM","ZW","SD","CN","CA","SS","UA"] }, 121 | "socials": { 122 | "twitter": "https://twitter.com/randnetwork", 123 | "discord": "https://discord.gg/EW7uVPgGEu", 124 | "telegram": "https://t.me/randnetwork" 125 | }, 126 | "documents": [ 127 | { 128 | "name": "Purchase Agreement", 129 | "uri": "https://randstorageprod.blob.core.windows.net/sale/SAFT%20Rand%20Presale%202%20Angels%20(TokenSoft).docx-2.pdf", 130 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 131 | } 132 | ] 133 | } 134 | ] 135 | -------------------------------------------------------------------------------- /staging/sales_index.json: -------------------------------------------------------------------------------- 1 | [ 2 | 3 | { 4 | "chainId": 4, 5 | "saleManagerAddress": "0x534a1e82171e2b944a6066f4657202535d1e7ef8", 6 | "saleId": "0x5e00e177f525e1232215e3421f5e5675d8c6a4919dc353ac8e24838db21681f9", 7 | "saleName": "Bloop 2: The Road to Quetzalcoatl", 8 | "logo": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 9 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 10 | "projectWebsite": "https://en.wikipedia.org/wiki/Quetzalcoatl", 11 | "saleDescription": "Bloop 2 - Dare to journey. Dare to discover. ", 12 | "symbol": "BLP", 13 | "gaTrackingId": "UA-106616315-4", 14 | "socials": { 15 | "twitter": "https://twitter.com/qtz", 16 | "discord": "https://discord.gg/qtz", 17 | "telegram": "https://t.me/qtz" 18 | }, 19 | "access": { 20 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"] 21 | }, 22 | "documents": [{ 23 | "name": "Pretend SAFT", 24 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernetfirst3.pdf", 25 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 26 | }] 27 | }, 28 | { 29 | "chainId": 5, 30 | "saleManagerAddress": "0xeade38418b409991b0636d2591105d0c6b03d69c", 31 | "saleId": "0x2ec97d2db38a7dbc70ff39e450b08600b1512ae8b2f7dc3371802cbf44252cb6", 32 | "saleName": "Bloop 1: The Road to Quetzalcoatl", 33 | "logo": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 34 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 35 | "projectWebsite": "https://en.wikipedia.org/wiki/Quetzalcoatl", 36 | "saleDescription": "Bloop 1 - Dare to journey. Dare to discover. ", 37 | "symbol": "BLP", 38 | "gaTrackingId": "UA-106616315-4", 39 | "socials": { 40 | "twitter": "https://twitter.com/qtz", 41 | "discord": "https://discord.gg/qtz", 42 | "telegram": "https://t.me/qtz" 43 | }, 44 | "access": { 45 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"] 46 | }, 47 | "documents": [{ 48 | "name": "Pretend SAFT", 49 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernetfirst3.pdf", 50 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 51 | }] 52 | }, 53 | { 54 | "chainId": 5, 55 | "saleManagerAddress": "0xeedb0e8e589f9adf6768fc006baa1c6462f5e563", 56 | "saleId": "0x79dec3ddbbb71adcd19bd2cbd5099e3e4bb32e15edcba2755c0d7e70ea9e18ec", 57 | "saleName": "Quetzalcoatl 8", 58 | "logo": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 59 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 60 | "projectWebsite": "https://en.wikipedia.org/wiki/Quetzalcoatl", 61 | "saleDescription": "Quetzalcoatl Sale 8 description", 62 | "symbol": "QTZ", 63 | "gaTrackingId": "UA-106616315-4", 64 | "socials": { 65 | "twitter": "https://twitter.com/qtz", 66 | "discord": "https://discord.gg/qtz", 67 | "telegram": "https://t.me/qtz" 68 | }, 69 | "access": { 70 | "limitToRegions": ["US"], 71 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmXS35hzFuyJZR5GQpefwZHr4k3qLGjVWbTqKEHxCdktKx" 72 | }, 73 | "documents": [{ 74 | "name": "Purchase Agreement", 75 | "uri": "https://example.com/qtz.pdf", 76 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 77 | }] 78 | }, 79 | { 80 | "chainId": 3, 81 | "saleManagerAddress": "0x4be55e8a4f557aa1f97d449f4182fdc19503a042", 82 | "saleId": "0xe978a9e95dd1f9eecbb23a56a1434fc4c2b6d3dc3b6647e39ffd23ddf878aeef", 83 | "saleName": "Phat Loot Seed Round 1", 84 | "logo": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Phat%20Loot%20favicon.png", 85 | "favicon": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Phat%20Loot%20favicon.png", 86 | "projectWebsite": "https://www.phatlootdefi.com/", 87 | "saleDescription": "Phat Loot Token is the first truly universal token fully integrated across all facets of the Phat Loot ecosystem. The Phat Loot Token will power everything Phat Loot including play-to-earn rewards, game mechanics, marketplace utilization, In-game utility, tournament entry fees, game launchpads, skins, in-game items, SaaS & on-demand solutions, marketing activities, and much more.", 88 | "symbol": "PLT", 89 | "socials": { 90 | "twitter": "https://twitter.com/guppygangnft", 91 | "discord": "https://discord.com/invite/guppygang" 92 | }, 93 | "access": { 94 | "limitToRegions": ["AL","DZ","AD","AO","AI","AG","AR","AM","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BR","BN","BG","BF","BI","KH","CM","CV","KY","CF","TD","CL","CO","KM","CD","CG","CR","CI","HR","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FO","FJ","FI","FR","PF","GA","GM","GE","DE","GH","GI","GR","GD","GT","GG","GN","GW","GY","HT","VA","HN","HK","HU","IS","IN","ID","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MV","ML","MT","MH","MR","MU","MX","MY","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NZ","NI","NE","NG","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PL","PT","PR","QA","RO","RU","RW","KN","LC","MF","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","ES","LK","SR","SZ","SE","CH","TW","TJ","TZ","TH","TL","TG","TO","TT","TN","TR","TM","TC","TV","UG","AE","GB","UY","UZ","VU","VE","VN","EH","YE","ZM","ZW","SD","CA","SS","UA"], 95 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmcdbQNUe4UukA4yG4KXXt5RbvUR6RDVXFH29KJWj9S46R" 96 | 97 | }, 98 | "documents": [{ 99 | "name": "Purchase Agreement", 100 | "uri": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Approved.SAFT.PhatLootDeFi.pdf", 101 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 102 | }] 103 | }, 104 | { 105 | "chainId": 3, 106 | "saleManagerAddress": "0x4be55e8a4f557aa1f97d449f4182fdc19503a042", 107 | "saleId": "0xa9df83fee15eddad394a266f87c87b9e67c6091b1cedbd9d552503137f1f23d6", 108 | "saleName": "Quetzalcoatl 6: Montezuma's Revenge", 109 | "logo": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 110 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 111 | "projectWebsite": "https://en.wikipedia.org/wiki/Quetzalcoatl", 112 | "saleDescription": "Quetzalcoatl Sale 6 description", 113 | "symbol": "QTZ", 114 | "gaTrackingId": "UA-106616315-4", 115 | "socials": { 116 | "twitter": "https://twitter.com/qtz", 117 | "discord": "https://discord.gg/qtz", 118 | "telegram": "https://t.me/qtz" 119 | }, 120 | "access": { 121 | "limitToRegions": ["US"], 122 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmXS35hzFuyJZR5GQpefwZHr4k3qLGjVWbTqKEHxCdktKx" 123 | }, 124 | "documents": [{ 125 | "name": "Purchase Agreement", 126 | "uri": "https://example.com/qtz.pdf", 127 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 128 | }] 129 | }, 130 | { 131 | "chainId": 3, 132 | "saleManagerAddress": "0x4be55e8a4f557aa1f97d449f4182fdc19503a042", 133 | "saleId": "0x41290b45da0c20410e67973ec513048dc94e842f3d0ad5f0c2a127589e11dd62", 134 | "saleName": "Quetzalcoatl 5: Attack Of The Birds", 135 | "logo": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 136 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 137 | "projectWebsite": "https://en.wikipedia.org/wiki/Quetzalcoatl", 138 | "saleDescription": "Quetzalcoatl Sale 5", 139 | "symbol": "QTZ", 140 | "socials": { 141 | "twitter": "https://twitter.com/qtz", 142 | "discord": "https://discord.gg/qtz", 143 | "telegram": "https://t.me/qtz" 144 | }, 145 | "access": { 146 | "limitToRegions": ["US"], 147 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmXS35hzFuyJZR5GQpefwZHr4k3qLGjVWbTqKEHxCdktKx" 148 | }, 149 | "documents": [{ 150 | "name": "Purchase Agreement", 151 | "uri": "https://example.com/qtz.pdf", 152 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 153 | }] 154 | }, 155 | { 156 | "chainId": 3, 157 | "saleManagerAddress": "0x4be55e8a4f557aa1f97d449f4182fdc19503a042", 158 | "saleId": "0xad32d9d0551a145cbdf72ca10e3393a16443fe3d9323078e6b41ebe735c6e6d7", 159 | "saleName": "Quetzalcoatl 4: Bird is the Word", 160 | "logo": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 161 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 162 | "projectWebsite": "https://en.wikipedia.org/wiki/Quetzalcoatl", 163 | "saleDescription": "Quetzalcoatl Sale 4", 164 | "symbol": "QTZ", 165 | "socials": { 166 | "twitter": "https://twitter.com/qtz", 167 | "discord": "https://discord.gg/qtz", 168 | "telegram": "https://t.me/qtz" 169 | }, 170 | "access": { 171 | "limitToRegions": ["US"], 172 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmXS35hzFuyJZR5GQpefwZHr4k3qLGjVWbTqKEHxCdktKx" 173 | }, 174 | "documents": [{ 175 | "name": "Purchase Agreement", 176 | "uri": "https://example.com/qtz.pdf", 177 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 178 | }] 179 | }, 180 | { 181 | "hidden": false, 182 | "symbol": "SKC", 183 | "chainId": 3, 184 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 185 | "saleId": "0x72c136c4f38e1928696b77825ea3f83ba6b9fc2519891d55f8f36b5f8268a246", 186 | "saleName": "Sarah's Test", 187 | "logo": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/tokensoft-logo-mark-full-color-rgb.svg", 188 | "favicon": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/tokensoft-logo-mark-full-color-rgb.svg", 189 | "projectWebsite": "https://tokensoft.io", 190 | "saleDescription": "Sarah's Test", 191 | "access": { 192 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"] 193 | 194 | }, 195 | "socials": { 196 | "twitter": "https://twitter.com/tokensoftinc", 197 | "discord": "https://discord.com/invite/PNzWBC7CmP" 198 | }, 199 | "documents": [ 200 | { 201 | "name": "Pretend SAFT", 202 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernetfirst3.pdf" 203 | } 204 | ] 205 | }, 206 | { 207 | "hidden": false, 208 | "symbol": "HASH", 209 | "chainId": 3, 210 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 211 | "saleId": "0xd81062285a29d88d788b2f52a0bff5b13ac2c68903513d16c4c3b538ed54f340", 212 | "saleName": "HASHSTACK PRESALE", 213 | "logo": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Hashstack%20logo_Hashstack%20icon%20black.png", 214 | "favicon": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/Hashstack%20logo_Hashstack%20icon%20black.png", 215 | "projectWebsite": "https://HASHSTACK.FINANCE", 216 | "saleDescription": "HASHSTACK PRESALE", 217 | "access": { 218 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"], 219 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmPP3e6Z7RCEkgeBef7JP8EbFFPhzT8J62MhzfrdE29cDa" 220 | }, 221 | "socials": { 222 | "twitter": "https://twitter.com/0xHashstack" 223 | }, 224 | "documents": [ 225 | { 226 | "name": "Test Plan", 227 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernetfirst3.pdf" 228 | } 229 | ] 230 | }, 231 | { 232 | "hidden": false, 233 | "chainId": 137, 234 | "symbol": "MNVA", 235 | "saleManagerAddress": "0xe6ff4586e8c28d0b47426d980468622f1001d234", 236 | "saleId": "0xfd6000277ede7f58662f1c37dd3dfa9d9ea25a3b33c4008bc40a4c10b4f2571c", 237 | "saleName": "Moona Nova", 238 | "logo": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 239 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 240 | "projectWebsite": "https://example.com", 241 | "saleDescription": "Moona Nova", 242 | "access": { 243 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"] 244 | }, 245 | "socials": { 246 | "twitter": "https://twitter.com/moonanova", 247 | "discord": "https://discord.gg/moonanova", 248 | "telegram": "https://t.me/moonanova" 249 | }, 250 | "documents": [ 251 | { 252 | "name": "Example Document", 253 | "uri": "https://example.com/example" 254 | } 255 | ] 256 | }, 257 | { 258 | "hidden": true, 259 | "chainId": 3, 260 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 261 | "saleId": "0x60fab55c2cc22ac45621188557e823cd43d962b059ee472f0b151d7a18b9584b", 262 | "saleName": "Aaron's Test Token 3", 263 | "logo": "https://www.onlygfx.com/wp-content/uploads/2018/09/4-clipart-sun-1.png", 264 | "favicon": "https://www.onlygfx.com/wp-content/uploads/2018/09/4-clipart-sun-1.png", 265 | "projectWebsite": "https://tokensoft.io", 266 | "saleDescription": "Test Token Sale", 267 | "access": { 268 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"] 269 | }, 270 | "socials": { 271 | "twitter": "https://twitter.com/TokensoftInc", 272 | "discord": "https://discord.gg/tokensoft", 273 | "telegram": "https://t.me/tokensoft" 274 | }, 275 | "documents": [ 276 | { 277 | "name": "Test Plan", 278 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernetfirst3.pdf" 279 | } 280 | ] 281 | }, 282 | { 283 | "hidden": true, 284 | "chainId": 43113, 285 | "saleManagerAddress": "0xfb9b74bfec44155752b867b43b649e2eb36e0b8a", 286 | "saleId": "0x5bdc9589d4be1ed5ece906d2b8d44241c151b5b871cc73df6cdd67e232565b08", 287 | "saleName": "Aaron's Test Token 4", 288 | "logo": "https://wampi.ru/image/RuaKC17", 289 | "favicon": "https://wampi.ru/image/RuaKUvg", 290 | "projectWebsite": "https://tokensoft.io", 291 | "saleDescription": "Test Token Sale", 292 | "access": { 293 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"] 294 | }, 295 | "socials": { 296 | "twitter": "https://twitter.com/TokensoftInc", 297 | "discord": "https://discord.gg/tokensoft", 298 | "telegram": "https://t.me/tokensoft" 299 | }, 300 | "documents": [ 301 | { 302 | "name": "Reporting Instructions", 303 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet-r3-instructions.pdf" 304 | } 305 | ] 306 | }, 307 | { 308 | "chainId": 43113, 309 | "saleManagerAddress": "0xfb9b74bfec44155752b867b43b649e2eb36e0b8a", 310 | "saleId": "0x40ec790102f5ec91cae4fe3f9ea47fabb71134d08ce21527ca164101a57e3af9", 311 | "saleName": "The Softernet: Round 3", 312 | "logo": "https://tokensoft-softernet-public.s3.amazonaws.com/round_3_token_logo.png", 313 | "favicon": "https://tokensoft-softernet-public.s3.amazonaws.com/round_3_token_logo.png", 314 | "projectWebsite": "https://tokensoft.io", 315 | "saleDescription": "Softernet Round 3 Sale", 316 | "access": { 317 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"] 318 | }, 319 | "socials": { 320 | "twitter": "https://twitter.com/TokensoftInc", 321 | "discord": "https://discord.gg/tokensoft", 322 | "telegram": "https://t.me/tokensoft" 323 | }, 324 | "documents": [ 325 | { 326 | "name": "Reporting Instructions", 327 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet-r3-instructions.pdf" 328 | } 329 | ] 330 | }, 331 | { 332 | "hidden": true, 333 | "chainId": 43114, 334 | "saleManagerAddress": "0xa82d7ed01c31dd2a46681d18e3e213c9e9231605", 335 | "saleId": "0x8ef5957dcf913a4759cd61a818fe391543292a3e98d203ca7f765da0ade14ea7", 336 | "saleName": "Terra Commemorative Event", 337 | "logo": "https://tokensoft-softernet-public.s3.amazonaws.com/terra-luna-luna-logo.svg", 338 | "favicon": "https://tokensoft-softernet-public.s3.amazonaws.com/terra-luna-luna-logo.svg", 339 | "projectWebsite": "https://terra.money", 340 | "saleDescription": "Stop. stop. It's dead already.", 341 | "access": {}, 342 | "socials": {}, 343 | "documents": [ 344 | { 345 | "name": "Terra Whitepaper", 346 | "uri": "https://assets.website-files.com/611153e7af981472d8da199c/618b02d13e938ae1f8ad1e45_Terra_White_paper.pdf" 347 | } 348 | ] 349 | }, 350 | { 351 | "chainId": 3, 352 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 353 | "saleId": "0xd9fdc1eefe6c1e0c0f873b55b7b1a69a0e1289eb812df897b59ff26791482805", 354 | "saleName": "Softernet Round 2", 355 | "logo": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet-round2.png", 356 | "favicon": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet-round2.png", 357 | "projectWebsite": "https://tokensoft.io", 358 | "saleDescription": "Softernet Round 2 Sale", 359 | "access": { 360 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"] 361 | }, 362 | "socials": { 363 | "twitter": "https://twitter.com/TokensoftInc", 364 | "discord": "https://discord.gg/tokensoft", 365 | "telegram": "https://t.me/tokensoft" 366 | }, 367 | "documents": [ 368 | { 369 | "name": "Test Plan", 370 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernetfirst3.pdf" 371 | } 372 | ] 373 | }, 374 | { 375 | "hidden": true, 376 | "chainId": 3, 377 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 378 | "saleId": "0xe41fddcaf7d5a293d2e07e43f99c81b5015abb3461d4b15b5cbb31ba8b66c5ca", 379 | "saleName": "PiterFM", 380 | "logo": "https://wampi.ru/image/RuaKC17", 381 | "favicon": "https://wampi.ru/image/RuaKUvg", 382 | "projectWebsite": "https://tokensoft.io", 383 | "saleDescription": "PiterFM", 384 | "access": { 385 | "limitToRegions": ["US", "GB", "CA"] 386 | }, 387 | "socials": { 388 | "twitter": "https://twitter.com/ns_genn", 389 | "discord": "https://discord.gg/PiterFM#5693", 390 | "telegram": "https://t.me/ns_genn" 391 | }, 392 | "documents": [ 393 | { 394 | "name": "Purchase Agreement", 395 | "uri": "https://example.com/qtz.pdf", 396 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 397 | } 398 | ] 399 | }, 400 | { 401 | "hidden": true, 402 | "chainId": 3, 403 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 404 | "saleId": "0xf380fc4d4cec3fc34ec1292cd8817e06708652f292cc4dc8131c08b73b3d8d80", 405 | "saleName": "Polka", 406 | "logo": "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Polka_dot.svg/800px-Polka_dot.svg.png", 407 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Polka_dot.svg/800px-Polka_dot.svg.png", 408 | "projectWebsite": "https://twitter.com/48Matveeva", 409 | "saleDescription": "Polka0101", 410 | "access": { 411 | "limitToRegions": ["US", "GB", "CA"], 412 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmXeY4d1iAJaBrQsTEX3hW6Htpa5XX5BjnXLwRLpJH7h2j" 413 | }, 414 | "socials": { 415 | "twitter": "https://twitter.com/48Matveeva", 416 | "discord": "https://discord.gg/polkadot0101#9769", 417 | "telegram": "https://t.me/lnrchv" 418 | }, 419 | "documents": [ 420 | { 421 | "name": "Purchase Agreement", 422 | "uri": "https://example.com/qtz.pdf", 423 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 424 | } 425 | ] 426 | }, 427 | { 428 | "hidden": true, 429 | "chainId": 3, 430 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 431 | "saleId": "0xc92bf83c10267f6accacdc0258ec9bfaea5295412fb46782be734bd0dc1df015", 432 | "saleName": "GeodezisTCoin (GTC)", 433 | "logo": "https://commons.wikimedia.org/wiki/File:Met_DP-18191-041.jpg#/media/File:Met_DP-18191-041.jpg", 434 | "favicon": "https://commons.wikimedia.org/wiki/File:Met_DP-18191-041.jpg#/media/File:Met_DP-18191-041.jpg", 435 | "projectWebsite": "https://bi.group/ru/", 436 | "saleDescription": "Building a dream", 437 | "access": { 438 | "limitToRegions": ["US", "GB", "CA"], 439 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmXeY4d1iAJaBrQsTEX3hW6Htpa5XX5BjnXLwRLpJH7h2j" 440 | }, 441 | "socials": { 442 | "twitter": "https://twitter.com/BIGroup_KZ", 443 | "discord": "https://discord.gg/d3zkGxX2", 444 | "telegram": "https://t.me/kairat_fc" 445 | }, 446 | "documents": [{ 447 | "name": "TestNetSoft", 448 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet-test-plan.pdf" 449 | }] 450 | }, 451 | { 452 | "hidden": true, 453 | "chainId": 3, 454 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 455 | "saleId": "0x7f1d7720c6fba223158981b82f0d9914547e2c1323a1834359015bdf2b5f7143", 456 | "saleName": "Danylo (DNL)", 457 | "logo": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet.png", 458 | "favicon": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet.png", 459 | "projectWebsite": "https://tokensoft.io", 460 | "saleDescription": "Danylo (DNL) Public Sale", 461 | "access": { 462 | "limitToRegions": ["US", "GB", "CA"], 463 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmXeY4d1iAJaBrQsTEX3hW6Htpa5XX5BjnXLwRLpJH7h2j" 464 | }, 465 | "socials": { 466 | "twitter": "https://twitter.com/CryptoField3", 467 | "discord": "https://discord.gg/tokensoft", 468 | "telegram": "https://t.me/tokensoft" 469 | }, 470 | "documents": [{ 471 | "name": "Purchase Agreement", 472 | "uri": "https://example.com/qtz.pdf", 473 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 474 | }] 475 | }, 476 | { 477 | "hidden": true, 478 | "chainId": 3, 479 | "saleManagerAddress": "0x000047203100a45635029ec21bbbec5ec53cb6f6", 480 | "saleId": "0x81c02c427b98a54aa297b164f192706eeeae051fbdeb8afcd083768701fbd96d", 481 | "saleName": "PenJ Softernet Sale", 482 | "logo": "https://github.com/penj13/launchlists/blob/patch-1/Bitcoin-Logo.png?raw=true", 483 | "favicon": "https://github.com/penj13/launchlists/blob/main/penj13.png?raw=true", 484 | "projectWebsite": "https://tokensoft.io", 485 | "saleDescription": "PenJ Softernet Sale is Good", 486 | "access": { 487 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"], 488 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmSb7SxyAF6SzdSVo9GGiSwaCufcw1tnnJhFjhk9UbijKD" 489 | }, 490 | "socials": { 491 | "twitter": "https://twitter.com/https://twitter.com/alex_savchik", 492 | "discord": "https://discord.gg/tokensoft", 493 | "telegram": "https://t.me/follow2themoon" 494 | }, 495 | "documents": [{ 496 | "name": "Softernet Test Plan", 497 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet-test-plan.pdf" 498 | }] 499 | }, 500 | { 501 | "hidden": true, 502 | "chainId": 3, 503 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 504 | "saleId": "0x0cfdcf06c53cee2ab8752998f4d6723c81b8114ecad5955ddefaa13c2735e12c", 505 | "saleName": "ReginaArt", 506 | "logo": "https://pbs.twimg.com/profile_images/1514774747921281027/oAAgTkv0_400x400.jpg", 507 | "favicon": "https://pbs.twimg.com/profile_images/1514774747921281027/oAAgTkv0_400x400.jpg", 508 | "projectWebsite": "https://twitter.com/ReginaArt_", 509 | "saleDescription": "ReginaArt", 510 | "access": { 511 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"], 512 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmSb7SxyAF6SzdSVo9GGiSwaCufcw1tnnJhFjhk9UbijKD" 513 | }, 514 | "socials": { 515 | "twitter": "https://twitter.com/dimapolipol", 516 | "discord": "https://discord.gg/tokensoft", 517 | "telegram": "https://t.me/InShariaGroup" 518 | }, 519 | "documents": [{ 520 | "name": "Softernet Test Plan", 521 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet-test-plan.pdf" 522 | }] 523 | }, 524 | { 525 | "hidden": true, 526 | "chainId": 3, 527 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 528 | "saleId": "0xe02efc9e817e2124f88c6cd5a4e5af615460119b55a7b3ef6a1bb4ce1ea11d63", 529 | "saleName": "DIKIy", 530 | "logo": "https://m.media-amazon.com/images/S/stores-image-uploads-na-prod/8/AmazonStores/ATVPDKIKX0DER/aa64112bf9f6502090454f5f572905df.w400.h400.jpg", 531 | "favicon": "https://m.media-amazon.com/images/S/stores-image-uploads-na-prod/8/AmazonStores/ATVPDKIKX0DER/aa64112bf9f6502090454f5f572905df.w400.h400.jpg", 532 | "projectWebsite": "https://dikiy.com", 533 | "saleDescription": "DIKIy to the Mars", 534 | "access": {}, 535 | "socials": { 536 | "twitter": "https://twitter.com/dimapolipol", 537 | "discord": "https://discord.gg/tokensoft", 538 | "telegram": "https://t.me/InShariaGroup" 539 | }, 540 | "documents": [{ 541 | "name": "Softernet Test Plan", 542 | "uri": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet-test-plan.pdf" 543 | }] 544 | }, 545 | { 546 | "hidden": true, 547 | "chainId": 3, 548 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 549 | "saleId": "0xb1d6866b182238fdf2a4c65f9c18b16c6f786cf7505061285d54f3f8f950baae", 550 | "saleName": "Softernet", 551 | "logo": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet.png", 552 | "favicon": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet.png", 553 | "projectWebsite": "https://tokensoft.io", 554 | "saleDescription": "Tokensoft Softernet Testnet", 555 | "access": {}, 556 | "socials": { 557 | "twitter": "https://twitter.com/ReginaArt_", 558 | "discord": "https://discord.gg/ReginaArt#2987", 559 | "telegram": "https://t.me/RArtemtsevat" 560 | }, 561 | "documents": [{ 562 | "name": "0x66A6aaEE7E64A216C683DF9AF6cb502364C010a7", 563 | "uri": "file:///C:/Users/Viktor/Downloads/0x66A6aaEE7E64A216C683DF9AF6cb502364C010a7.pdf" 564 | }] 565 | }, 566 | { 567 | "hidden": true, 568 | "chainId": 3, 569 | "saleManagerAddress": "0x6f6125742821643d4bccd81419d648d96d45e06f", 570 | "saleId": "0x71f26b1618db09d290f810c6960d7dfd989af24782e948721664ada36bcd3196", 571 | "saleName": "DO YOU WANT TO BE RIGHT OR DO YOU WANT TO BE RICH", 572 | "logo": "https://upload.wikimedia.org/wikipedia/commons/7/70/Example.png", 573 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/7/70/Example.png", 574 | "projectWebsite": "https://fundo.inthe.sundo", 575 | "saleDescription": "The fundo sale for fundo salespeople who sell fundo to fundo sellers", 576 | "access": { 577 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA", "US"], 578 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/Qma32iKHCqYFN7TCsR1SH7Mv1KKNvmQELY81i1j6Z4Qi5F" 579 | }, 580 | "socials": { 581 | "twitter": "https://twitter.com/Motoma", 582 | "telegram": "https://t.me/Motoma" 583 | }, 584 | "documents": [{ 585 | "name": "Proof of fun", 586 | "uri": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/SAFT%20Rand%20Presale%202.docx.pdf", 587 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 588 | }, 589 | { 590 | "name": "Proof of being rich", 591 | "uri": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/SAFT%20Rand%20Presale%202.docx.pdf", 592 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 593 | }, 594 | { 595 | "name": "Proof of being right", 596 | "uri": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/SAFT%20Rand%20Presale%202.docx.pdf", 597 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 598 | } 599 | ] 600 | }, 601 | { 602 | "hidden": true, 603 | "chainId": 3, 604 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 605 | "saleId": "0x6ae894051f6af4330b64c7898cc06e9c2f52d103ddcc37ec991fa6df00790aac", 606 | "saleName": "Quetzalcoatl 2", 607 | "logo": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 608 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 609 | "projectWebsite": "https://en.wikipedia.org/wiki/Quetzalcoatl", 610 | "saleDescription": "Quetzalcoatl Sale", 611 | "access": {}, 612 | "socials": { 613 | "twitter": "https://twitter.com/qtz", 614 | "discord": "https://discord.gg/qtz", 615 | "telegram": "https://t.me/qtz" 616 | }, 617 | "documents": [{ 618 | "name": "Purchase Agreement", 619 | "uri": "https://example.com/qtz.pdf", 620 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 621 | }] 622 | }, 623 | { 624 | "hidden": true, 625 | "chainId": 3, 626 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 627 | "saleId": "0x2cf63c9a404bfa49907a249ba54d9975a1d0c138ca1da2f32566daefdecf6f49", 628 | "saleName": "Quetzalcoatl", 629 | "logo": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 630 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/2/23/Quetzalcoatl_V.svg", 631 | "projectWebsite": "https://en.wikipedia.org/wiki/Quetzalcoatl", 632 | "saleDescription": "Quetzalcoatl Sale", 633 | "access": {}, 634 | "socials": { 635 | "twitter": "https://twitter.com/qtz", 636 | "discord": "https://discord.gg/qtz", 637 | "telegram": "https://t.me/qtz" 638 | }, 639 | "documents": [{ 640 | "name": "Purchase Agreement", 641 | "uri": "https://example.com/qtz.pdf", 642 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 643 | }] 644 | }, 645 | { 646 | "hidden": true, 647 | "chainId": 3, 648 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 649 | "saleId": "0x314fa309e345668dad4c0e18b20a31adf3faa32c9f23436add5c14ed430bf1a4", 650 | "saleName": "Rand PreSale", 651 | "logo": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/RAND-visual%20identity-2022_logo-overlight-2%20%282%29.png", 652 | "favicon": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/RAND-visual%20identity-2022_logo-overdark-indigo-1%20%281%29.png", 653 | "projectWebsite": "https://rand.network", 654 | "saleDescription": "Rand PreSale", 655 | "access": { 656 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"], 657 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/Qma32iKHCqYFN7TCsR1SH7Mv1KKNvmQELY81i1j6Z4Qi5F" 658 | }, 659 | "socials": { 660 | "twitter": "https://twitter.com/randnetwork", 661 | "discord": "https://discord.gg/EW7uVPgGEu", 662 | "telegram": "https://t.me/randnetwork" 663 | }, 664 | "documents": [{ 665 | "name": "Purchase Agreement", 666 | "uri": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/SAFT%20Rand%20Presale%202.docx.pdf", 667 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 668 | }] 669 | }, 670 | { 671 | "hidden": true, 672 | "chainId": 3, 673 | "saleManagerAddress": "0x6f6125742821643d4bccd81419d648d96d45e06f", 674 | "saleId": "0xb2241f9abcdf8e34417ec6450a6915834125391126ffe09cf2f21b1dc71d08b1", 675 | "saleName": "Rand Network", 676 | "logo": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/RAND-visual%20identity-2022_logo-overlight-2%20%282%29.png", 677 | "favicon": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/RAND-visual%20identity-2022_logo-overdark-indigo-1%20%281%29.png", 678 | "projectWebsite": "https://rand.network", 679 | "saleDescription": "Rand Test Public Sale", 680 | "access": { 681 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA", "US"], 682 | "merkleProofs": "https://cloudflare-ipfs.com/ipfs/QmdCMc7WujuSGfUf7V7WSQYiATejT33htzR6KcpTXBuqay" 683 | }, 684 | "socials": { 685 | "twitter": "https://twitter.com/randnetwork", 686 | "discord": "https://discord.gg/EW7uVPgGEu", 687 | "telegram": "https://t.me/randnetwork" 688 | }, 689 | "documents": [{ 690 | "name": "Purchase Agreement", 691 | "uri": "https://tokensoft-public-assets.s3.amazonaws.com/v2/production/SAFT%20Rand%20Presale%202.docx.pdf", 692 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 693 | }] 694 | }, 695 | { 696 | "hidden": true, 697 | "chainId": 3, 698 | "saleManagerAddress": "0x6f6125742821643d4bccd81419d648d96d45e06f", 699 | "saleId": "0xec341cd8eb56d6e88196693731a096cc0b09e2ec4218c2ce837d051aa3a10e90", 700 | "saleName": "Fayre", 701 | "purchaseDocumentsGenerated": false, 702 | "logo": "https://drive.google.com/uc?id=1vAl_8DOq0G2c5mJzs-pfUsm4KDo9KYAF", 703 | "favicon": "https://drive.google.com/uc?id=1vAl_8DOq0G2c5mJzs-pfUsm4KDo9KYAF", 704 | "projectWebsite": "https://www.fayre.com/", 705 | "saleDescription": "Add FAYRE to your portfolio by participating in the Private Sale. Powered by Tokensoft.", 706 | "access": {}, 707 | "socials": { 708 | "twitter": "https://twitter.com/FayreLabs", 709 | "telegram": "https://t.me/Fayre" 710 | }, 711 | "documents": [{ 712 | "name": "Example Document", 713 | "uri": "https://example.com/document.pdf" 714 | }] 715 | }, 716 | { 717 | "hidden": false, 718 | "chainId": 3, 719 | "symbol": "ADAM", 720 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 721 | "saleId": "0x798a36c62838087df63627d2a2e4b0121837a9986e5ee3adb64f92a573a0713b", 722 | "saleName": "ABL Test Sale", 723 | "purchaseDocumentsGenerated": false, 724 | "logo": "https://www.pngfind.com/pngs/m/169-1699678_grateful-dead-skull-logo-steal-your-face-png.png", 725 | "favicon": "https://www.pngfind.com/pngs/m/169-1699678_grateful-dead-skull-logo-steal-your-face-png.png", 726 | "projectWebsite": "https://example.com", 727 | "saleDescription": "Example description", 728 | "access": { 729 | 730 | }, 731 | "socials": { 732 | "twitter": "https://twitter.com/tokensoftinc", 733 | "discord": "https://www.discord.gg/", 734 | "telegram": "https://t.me/hi" 735 | }, 736 | "documents": [{ 737 | "name": "SAFT", 738 | "uri": "https://example.com/saft.pdf", 739 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 740 | }, 741 | { 742 | "name": "Disclosures", 743 | "uri": "https://example.com/disclosures.pdf" 744 | }, 745 | { 746 | "name": "Terms", 747 | "uri": "https://example.com/terms.pdf" 748 | }, 749 | { 750 | "name": "Privacy Policy", 751 | "uri": "https://example.com/privacy.pdf" 752 | } 753 | ] 754 | }, 755 | { 756 | "hidden": true, 757 | "chainId": 3, 758 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 759 | "saleId": "0x583e17384ca49a7208a07bd31e2ddc8c01d5ad037ec4c32181f16db2c5496fb5", 760 | "saleName": "Randall's Public Sale", 761 | "purchaseDocumentsGenerated": false, 762 | "logo": "https://www.onlygfx.com/wp-content/uploads/2018/09/4-clipart-sun-1.png", 763 | "favicon": "https://www.onlygfx.com/wp-content/uploads/2018/09/4-clipart-sun-1.png", 764 | "projectWebsite": "https://example.com", 765 | "saleDescription": "Example description", 766 | "access": {}, 767 | "socials": { 768 | "twitter": "https://twitter.com/elfinkingdom", 769 | "telegram": "https://t.me/ElfinKDM" 770 | }, 771 | "documents": [{ 772 | "name": "Example Document", 773 | "uri": "https://example.com/document.pdf" 774 | }] 775 | }, 776 | { 777 | "hidden": true, 778 | "chainId": 3, 779 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 780 | "saleId": "0xa381a6e0030b213ed7c6d0b374471390861d7807fc73b3f8e7ad567672a99ca8", 781 | "saleName": "oboe", 782 | "logo": "https://pbs.twimg.com/media/FR8t8bMXEAMTDoe?format=jpg&name=medium", 783 | "favicon": "https://pbs.twimg.com/media/FR8t8bMXEAMTDoe?format=jpg&name=medium", 784 | "projectWebsite": "https://oboe.ex>", 785 | "saleDescription": "Example description", 786 | "access": { 787 | "limitToRegions": ["US", "GB", "CA"], 788 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmXeY4d1iAJaBrQsTEX3hW6Htpa5XX5BjnXLwRLpJH7h2j" 789 | }, 790 | "socials": { 791 | "twitter": "https://twitter.com/Evgenius50", 792 | "discord": "https://discord.gg/kosoga#1978>", 793 | "telegram": "https://t.me/kosoga" 794 | }, 795 | "documents": [{ 796 | "name": "Purchase Agreement", 797 | "uri": "https://example.com/qtz.pdf", 798 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 799 | }] 800 | }, 801 | { 802 | "hidden": true, 803 | "chainId": 3, 804 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 805 | "saleId": "0x9f1db8c353b68a6484e2d26a9810c298c5a3b64c21e952b747bac9901d0e646e", 806 | "saleName": "test-3 (Kir)", 807 | "logo": "https://upload.wikimedia.org/wikipedia/commons/8/85/Logo-Test.png", 808 | "favicon": "https://upload.wikimedia.org/wikipedia/commons/8/85/Logo-Test.png", 809 | "projectWebsite": "https://app.stagetokensoft.com/sale/", 810 | "saleDescription": "Test-3 by Kir Os.", 811 | "access": { 812 | "limitToRegions": ["US", "GB", "CA"] 813 | }, 814 | "socials": { 815 | "twitter": "https://twitter.com/TokensoftInc", 816 | "discord": "https://discord.gg/tokensoft", 817 | "telegram": "https://t.me/tokensoft" 818 | }, 819 | "documents": [{ 820 | "name": "Purchase Agreement", 821 | "uri": "https://example.com/qtz.pdf", 822 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 823 | }] 824 | }, 825 | { 826 | "hidden": true, 827 | "chainId": 3, 828 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 829 | "saleId": "0x52d12379e10ea4ba64a4643eaad160a5aad1838bad6a10d9bcf9ac23a439ade6", 830 | "saleName": "nikenikitos9(NIKE)", 831 | "logo": "https://wampi.ru/image/RuaSyVV", 832 | "favicon": "https://wampi.ru/image/Rual5Oz", 833 | "projectWebsite": "https://twitter.com/Nikita08794843", 834 | "saleDescription": "SALE example tokens nikenikitos9 for test", 835 | "access": {}, 836 | "socials": { 837 | "twitter": "https://twitter.com/Nikita08794843", 838 | "discord": "https://discord.gg/Nikenikitos9#6603", 839 | "telegram": "https://t.me/NeKit787" 840 | }, 841 | "documents": [{ 842 | "name": "Purchase Agreement", 843 | "uri": "https://example.com/qtz.pdf", 844 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 845 | }] 846 | }, 847 | { 848 | "hidden": true, 849 | "chainId": 3, 850 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 851 | "saleId": "0x95f98e572f06b28e9afd6702e727af7d75c8d4ff4fdfa7d8bc11fc3f923266a5", 852 | "saleName": "Softernet (ppSoft)", 853 | "logo": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet.png", 854 | "favicon": "https://tokensoft-softernet-public.s3.amazonaws.com/softernet.png", 855 | "projectWebsite": "https://tokensoft.io", 856 | "saleDescription": "Softernet (ppSoft) Public Sale", 857 | "access": { 858 | "limitToRegions": ["US", "GB", "CA"], 859 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmXeY4d1iAJaBrQsTEX3hW6Htpa5XX5BjnXLwRLpJH7h2j" 860 | }, 861 | "socials": { 862 | "twitter": "https://twitter.com/Sokzyy", 863 | "discord": "https://discord.gg/tokensoft", 864 | "telegram": "https://t.me/Sokzyy" 865 | }, 866 | "documents": [{ 867 | "name": "Purchase Agreement", 868 | "uri": "https://example.com/qtz.pdf", 869 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 870 | }] 871 | }, 872 | { 873 | "hidden": true, 874 | "chainId": 3, 875 | "saleManagerAddress": "0xb2a2934de53c1dd6c330ee1db8ccb138a64837db", 876 | "saleId": "0x210c67da123eb90f38527d513232b6699ae12de5e5836a60bc92272535a136d4", 877 | "saleName": "ToTheMoonTokenSoft (TTMTS)", 878 | "logo": "https://cdn.icon-icons.com/icons2/1389/PNG/512/moonfullmoon_96135.png", 879 | "favicon": "https://cdn.icon-icons.com/icons2/1389/PNG/512/moonfullmoon_96135.png", 880 | "projectWebsite": "https://tokensoft.io", 881 | "saleDescription": "community token", 882 | "access": { 883 | "limitToRegions": ["AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BR", "BN", "BG", "BF", "BI", "KH", "CM", "CV", "KY", "CF", "TD", "CL", "CO", "KM", "CD", "CG", "CR", "CI", "HR", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FO", "FJ", "FI", "FR", "PF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GD", "GT", "GG", "GN", "GW", "GY", "HT", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MV", "ML", "MT", "MH", "MR", "MU", "MX", "MY", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NZ", "NI", "NE", "NG", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PL", "PT", "PR", "QA", "RO", "RU", "RW", "KN", "LC", "MF", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SK", "SI", "SB", "SO", "ZA", "ES", "LK", "SR", "SZ", "SE", "CH", "TW", "TJ", "TZ", "TH", "TL", "TG", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "AE", "GB", "UY", "UZ", "VU", "VE", "VN", "EH", "YE", "ZM", "ZW", "SD", "CN", "CA", "SS", "UA"], 884 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmXeY4d1iAJaBrQsTEX3hW6Htpa5XX5BjnXLwRLpJH7h2j" 885 | }, 886 | "socials": { 887 | "twitter": "https://twitter.com/bitdealer91", 888 | "discord": "https://discord.gg/tokensoft", 889 | "telegram": "https://t.me/cryptorussianbears" 890 | }, 891 | "documents": [{ 892 | "name": "Purchase Agreement", 893 | "uri": "https://example.com/qtz.pdf", 894 | "appendSignaturePageUri": "s3://job-queue-data/safts/annex.pdf" 895 | }] 896 | }, 897 | { 898 | "hidden": false, 899 | "chainId": 3, 900 | "symbol": "HW2", 901 | "saleManagerAddress": "0x4be55e8a4f557aa1f97d449f4182fdc19503a042", 902 | "saleId": "0x35724daa8005e9fc157a21f4c0d454bfa9e7f9f42b4245e197f2ad342dc13d38", 903 | "saleName": "Hydro Water Pre (HW2)", 904 | "logo": "https://media.istockphoto.com/vectors/blue-drop-water-and-circle-logo-template-illustration-design-vector-vector-id1204439297?k=20&m=1204439297&s=612x612&w=0&h=3IJcgNAHZeFR6gzmRGM4VZvwTckltVFcojhT22L6gYY=", 905 | "favicon": "https://media.istockphoto.com/vectors/blue-drop-water-and-circle-logo-template-illustration-design-vector-vector-id1204439297?k=20&m=1204439297&s=612x612&w=0&h=3IJcgNAHZeFR6gzmRGM4VZvwTckltVFcojhT22L6gYY=", 906 | "projectWebsite": "https://tokensoft.io", 907 | "saleDescription": "hydro water pre sale", 908 | "access": { 909 | "limitToRegions": ["US"], 910 | "merkleProofs": "https://tokensoft.mypinata.cloud/ipfs/QmQJz6d3DvMSwycsDith1hzWUH3RFgKEFgBtTJCvCVbBeP" 911 | }, 912 | "socials": {}, 913 | "documents": [{ 914 | "name": "Purchase Agreement", 915 | "uri": "https://example.com/qtz.pdf" 916 | }] 917 | }, 918 | { 919 | "hidden": false, 920 | "chainId": 5, 921 | "symbol": "HT", 922 | "saleManagerAddress": "0xeedb0e8e589f9adf6768fc006baa1c6462f5e563", 923 | "saleId": "0x8cbd028ed628967c27c8399f02265c2807db4c0fa7604ea0b355424a8dd3273b", 924 | "saleName": "Hydro Token", 925 | "logo": "https://media.istockphoto.com/vectors/blue-drop-water-and-circle-logo-template-illustration-design-vector-vector-id1204439297?k=20&m=1204439297&s=612x612&w=0&h=3IJcgNAHZeFR6gzmRGM4VZvwTckltVFcojhT22L6gYY=", 926 | "favicon": "https://media.istockphoto.com/vectors/blue-drop-water-and-circle-logo-template-illustration-design-vector-vector-id1204439297?k=20&m=1204439297&s=612x612&w=0&h=3IJcgNAHZeFR6gzmRGM4VZvwTckltVFcojhT22L6gYY=", 927 | "projectWebsite": "https://tokensoft.io", 928 | "saleDescription": "hydro token", 929 | "access": {}, 930 | "socials": {}, 931 | "gnosisSafeMasterAddress": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", 932 | "documents": [{ 933 | "name": "Purchase Agreement", 934 | "uri": "https://example.com/qtz.pdf" 935 | }] 936 | } 937 | ] 938 | --------------------------------------------------------------------------------