diff --git a/Dockerfile b/Dockerfile index 330f4da..fb8722c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:22.04 +FROM ubuntu:24.04 ENV TZ=UTC RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \ diff --git a/example_sns_init.yaml b/example_sns_init.yaml index ae5d26d..9d0dd9e 100644 --- a/example_sns_init.yaml +++ b/example_sns_init.yaml @@ -1,486 +1,535 @@ -# You should make a copy of this file, name it sns_init.yaml, and edit it to -# suit your needs. -# -# All principal IDs should almost certainly be changed. -# -# In this file, 1 year is nominally defined to be 365.25 days. -# -# This gets passed to `sns propose`. See propose_sns.sh. -# -# This follows the second configuration file format developed for the `sns` -# CLI. The first format will be supported for a time, but this format will -# eventually become the standard format. -# ------------------------------------------------------------------------------ -# UNITS -# -# This SNS configuration file version allows specifying the various -# fields with units that make configuration easier. For instance, -# in the previous version, all fields relating to token values -# had to be specified in e8s (fractions of 10E-8 of a governance token). -# In this version, similar fields can be specified in whole tokens, -# tokens with decimals, or e8s. Below is more information on the type -# of units that can be used. -# -# For fields that represent token values (such as `transaction_fee` -# or `rejection_fee`), devs can specify decimal strings ending in -# "tokens" (plural), decimal strings ending in "token" (singular), -# or integer strings (base 10) ending in "e8s". In the case of -# "tokens" strings, the maximum number of digits after the (optional) -# decimal point is 8. The "_" character may be sprinkled throughout. -# Whitespace around number is insignificant. E.g. " 42 tokens" is -# equivalent to "42tokens". -# -# For fields that represent duration values (such as `initial_voting_period` -# or `minimum_dissolve_delay`), devs can specify durations as a concatenation -# of time spans. Where each time span is an integer number and a suffix. -# Supported suffixes: -# - seconds, second, sec, s -# - minutes, minute, min, m -# - hours, hour, hr, h -# - days, day, d -# - weeks, week, w -# - months, month, M -- defined as 30.44 days -# - years, year, y -- defined as 365.25 days -# -# For example, "1w 2d 3h" gets parsed as -# -# 1 week + 2 days + 3 hours -# = -# (1 * (7 * 24 * 60 * 60) + 2 * 24 * 60 * 60 + 3 * (60 * 60)) seconds -# -# For fields that represent percentage values (such as `bonus`), devs specify -# the value as an integer with a trailing percent sign ('%'). For example, -# `10%`. -# -# For fields that represent time of day (such as `start_time`), devs specify -# the value as a string in form "hh::mm UTC". Where hh is hour, and mm is minute. -# Only the UTC timezone is currently supported. -# ------------------------------------------------------------------------------ - -# Name of the SNS project. This may differ from the name of the associated -# token. Must be a string of at most 255 bytes. -name: Rock Out - -# Description of the SNS project. -# Must be a string of at most 2,000 bytes. -description: > - A poem co-written with ChatGPT - - In a realm of code, a beacon forth surges, - a wondrous app on the Internet Computer emerges. - Born of inspiration divine, - This marvel of technology brilliantly shines. - - With each line of code, a world takes flight, - A symphony of bits, a chorus of bytes. - Built on chainkey cryptography, secure and true, - An app that transcends, all we once knew... - -# Path to the SNS Project logo on the local filesystem. The path is relative -# to the configuration file's location, unless an absolute path is given. -# Must have less than 341,334 bytes. The only supported format is PNG. -# Consider that NNS dapp will render the image with a 1:1 aspect ratio and -# cropped to a circle. +--- +name: ICTO +description: ICTO is an innovative new platform allowing any project on Internet + Computer to automate token vesting, payroll, locking, and fundraising. logo: logo.png - -# URL that represents the SNS, usually a dapp controlled by the SNS project. -# Must be a string from 10 to 512 bytes, and the domain must be HTTPS. -url: https://mydapp.com - -# Metadata for the NNS proposal required to create the SNS. This data will be -# shown only in the NNS proposal. +url: https://icto.app NnsProposal: - # The title of the NNS proposal. Must be a string of 4 to 256 bytes. - title: "NNS Proposal to create an SNS named 'Rock Out'" - - # The HTTPS address of a forum post with additional context required to evaluate the NNS - # proposal. - # This will go in the `url` field of the proposal. - # Must be a string of 10 to 2,048 bytes. - # The protocol must be HTTPS, and the domain must be forum.dfinity.org. - url: "https://forum.dfinity.org/thread-where-this-sns-is-discussed" - - # The description of the proposal. Must be a string of 10 to 2,000 bytes. - summary: > - Proposal to create an SNS for the project XX. - The SNS will be initialized with the following neurons: - ... - -# If the SNS launch attempt fails, control over the dapp canister(s) is given to -# these principals. In most use cases, this is chosen to be the original set of -# controller(s) of the dapp. Must be a list of PrincipalIds. + title: NNS Proposal to create an SNS named 'ICTO DAO' + url: https://forum.dfinity.org/t/upcoming-icto-dao-sns-decentralization-sale/38176 + summary: | + # Summary + Proposal to create an SNS DAO for the project ICTO. + + # About + ICTO is a comprehensive token management and launchpad platform built on the Internet Computer (IC) blockchain. It addresses the critical need for automated token operations within the IC ecosystem. + Our target users are developers and project teams building on IC who require robust tools for token vesting, payroll, locking, and fundraising. [ICTO](https://icto.app) + + ## Token distribution + The total supply at time of the SNS sale is 1_000_000_000 Tokens. + * 25% allocated to the decentralization sale (250_000_000 Tokens) + * 14% allocated to the team and advisors (140_000_000 Tokens) + * 1% allocated to the Marketing (Pre-SNS) (10_000_000 Tokens) + * 60% allocated to the treasury (600_000_000 Tokens) + + ## Decentralization Swap + * Minimum number of participants: 10 + * Minimum raised through direct participation: 40_000 ICP + * Maximum raised through direct participation: 165_000 ICP + * Minimum contribution through direct participation: 1 ICP + * Maximum contribution through direct participation: 20_000 ICP + * Neuron fund participation: Yes + + ## The dApp + The following canisters on ICTO will be governed by SNS post the SNS swap: + * Backend/TokenClaim: ys3lq-iiaaa-aaaap-qb7ba-cai + * TokenDeployer: p7bu5-uyaaa-aaaap-qca3q-cai + * LockDeployer: setw5-xaaaa-aaaap-qcc7a-cai + * Launchpad: xzpva-miaaa-aaaap-qhi7q-cai + + ## Verification + All information about the project can be verified through the links below: + * [whitepaper](https://docs.icto.app/icto-sns-dao-whitepaper) + * [Github](https://github.com/ICTO-Labs) + * [X Profile](https://x.com/icto_app) fallback_controller_principals: - # For the actual SNS launch, you should replace this with one or more - # principals of your intended fallback controllers. - # - # For testing, propose_sns.sh will fill this in automatically. - - YOUR_PRINCIPAL_ID - -# The list of dapp canister(s) that will be decentralized if the -# decentralization swap succeeds. These are defined in the form of canister IDs, -# for example, `bnz7o-iuaaa-aaaaa-qaaaa-cai`. For a successful SNS launch, -# these dapp canister(s) must be co-controlled by the NNS Root canister -# (`r7inp-6aaaa-aaaaa-aaabq-cai`) at latest at the time when the NNS proposal to -# create an SNS is adopted (usually this is required even earlier, e.g., to -# convince NNS neurons to vote in favor of your proposal). + - lekqg-fvb6g-4kubt-oqgzu-rd5r7-muoce-kppfz-aaem3-abfaj-cxq7a-dqe dapp_canisters: - # For the actual SNS launch, you should replace this with one or more - # IDs of the canisters comprising your to-be-decentralized dapp. - # - # For testing, propose_sns.sh will fill this in automatically. - - YOUR_CANISTER_ID - -# Configuration of SNS tokens in the SNS Ledger canister deployed as part -# of the SNS. + #- ys3lq-iiaaa-aaaap-qb7ba-cai + #- p7bu5-uyaaa-aaaap-qca3q-cai + #- setw5-xaaaa-aaaap-qcc7a-cai + #- xzpva-miaaa-aaaap-qhi7q-cai + - YOUR_CANISTER_ID Token: - # The name of the token issued by the SNS ledger. - # Must be a string of 4 to 255 bytes without leading or trailing spaces. - name: Rock Out Token - - # The symbol of the token issued by the SNS Ledger. - # Must be a string of 3 to 10 bytes without leading or trailing spaces. - symbol: ROT - - # SNS ledger transaction fee. - transaction_fee: 10_000 e8s - - # Path to the SNS token logo on your local filesystem. The path is relative - # to the configuration file location, unless an absolute path is given. - # Must have less than 341,334 bytes. The only supported format is PNG. - logo: logo.png - -# Configures SNS proposal-related fields. These fields define the initial values -# for some of the nervous system parameters related to SNS proposals. This will -# not affect all SNS proposals submitted to the newly created SNS. + name: ICTO + symbol: ICTO + transaction_fee: 0.01 tokens + logo: logo.png Proposals: - # The cost of making an SNS proposal that is rejected by the SNS neuron - # holders. This field is specified as a token. For example: "1 token". - rejection_fee: 1 token - - # The initial voting period of an SNS proposal. A proposal's voting period - # may be increased during its lifecycle due to the wait-for-quiet algorithm - # (see details below). This field is specified as a duration. For example - # "4 days". - initial_voting_period: 4 days - - # The wait-for-quiet algorithm extends the voting period of a proposal when - # there is a flip in the majority vote during the proposal's voting period. - # - # Without this, there could be an incentive to vote right at the end of a - # proposal's voting period, in order to reduce the chance that people will - # see and have time to react to that. - # - # If this value is set to 1 day, then a change in the majority vote at the - # end of a proposal's original voting period results in an extension of the - # voting period by an additional day. Another change at the end of the - # extended period will cause the voting period to be extended by another - # half-day, etc. - # - # The total extension to the voting period will never be more than twice - # this value. - # - # For more information, please refer to - # https://wiki.internetcomputer.org/wiki/NNS_Canisters#Proposal_decision_and_wait-for-quiet - # - # This field is specified as a duration. For example: "1 day". - maximum_wait_for_quiet_deadline_extension: 1 day - -# Configuration of SNS voting. + rejection_fee: 50 tokens + initial_voting_period: 4 days + maximum_wait_for_quiet_deadline_extension: 1 day Neurons: - # The minimum amount of SNS tokens to stake a neuron. This field is specified - # as a token. For instance, "1 token". - minimum_creation_stake: 1 tokens - -# Configuration of SNS voting. + minimum_creation_stake: 100 tokens Voting: - # The minimum dissolve delay a neuron must have to be able to cast votes on - # proposals. - # - # Dissolve delay incentivizes neurons to vote in the long-term interest of - # an SNS, as they are rewarded for longer-term commitment to that SNS. - # - # Users cannot access the SNS tokens used to stake neurons (until the neuron - # is dissolved). This field is specified as a duration. For example: "6 months". - minimum_dissolve_delay: 1 month - - # Configuration of voting power bonuses that are applied to neurons to - # incentivize alignment with the best interest of the DAO. Note, these - # bonuses multiply each other, so the increase in voting power due to - # the dissolve delay bonus is used in the equation to increase voting - # power for the age bonus. - MaximumVotingPowerBonuses: - # Users with a higher dissolve delay are incentivized to take the - # long-term interests of the SNS into consideration when voting. To - # reward this long-term commitment, this bonus can be set to a - # percentage greater than zero, which will result in neurons having - # their voting power increased in proportion to their dissolve delay. - # - # For example, if the user has a dissolve delay of 6 months, and - # the maximum dissolve delay duration (defined below as `duration`) - # for the dissolve delay bonus is 12 months, and the maximum bonus - # (defined as `bonus` below) is set to 10%, then that user’s voting - # power will be 105% of their normal voting power based on staked - # tokens (i.e. they will have a bonus of 5%). If the user increased - # their dissolve delay to 9 months, they would get 107.5% of the normal - # voting power of their tokens. And if they increased to 12 months, they - # would get 110%. If they increase further, they get no additional bonus. - # - # If you do not want this bonus to be applied for neurons with higher - # dissolve delay, set `bonus` to `0%` and those neurons will not receive - # higher voting power. - DissolveDelay: - # This parameter sets the maximum dissolve delay a neuron can have. - # When reached, the maximum dissolve delay bonus will be applied. - # This field is specified as a duration. For example: "8 years". - duration: 8 years - # If a neuron's dissolve delay is `duration`, its voting power will - # be increased by the dissolve delay `bonus` amount. - # This field is specified as a percentage. For instance, - # a value of "100%" means that the voting power will be doubled - # (multiplied by 2). - bonus: 100% - - # Users with neurons staked in the non-dissolving state for a long - # period of time are incentivized to take the long-term interests of - # the SNS into consideration when voting. To reward this long-term - # commitment, this bonus can be set to a percentage (greater than zero), - # which will result in neurons having their voting power increased in - # proportion to their age. - # - # For example, if the neuron has an age of 6 months, and the maximum age - # duration (defined below as `duration`) for the age bonus is 12 months, - # and the maximum bonus (defined as `bonus` below) is set to 10%, then - # that neuron’s voting power will be 105% of their normal voting power - # based on staked tokens plus dissolve delay bonus (i.e. they will have a - # bonus of 5%). If neuron aged another 3 months to have an age of 9 months, - # the neuron would get 107.5% of the normal voting power. And if the neuron - # aged another 3 months to 12 months, the neuron would get 110%. If the neuron - # ages further, it get no additional bonus. - # - # If this bonus should not be applied for older neurons, set the bonus - # to `0%` and older neurons will not receive higher voting power. - Age: - # This parameter sets the duration of time the neuron must be staked - # in the non-dissolving state, in other words its `age`, to reach - # the maximum age bonus. Once this age is reached, the neuron will - # continue to age, but no more bonus will be applied. This field - # is specified as a duration. For example: "2 years". - duration: 4 years - # If a neuron's age is `duration` or older, its voting power will be - # increased by this age`bonus` amount. - # This field is specified as a percentage. For instance, - # a value of "25%" means that the voting power will increase by a quarter - # (multiplied by 1.25). - bonus: 25% - - # Configuration of SNS voting reward parameters. - # - # The voting reward rate controls how quickly the supply of the SNS token - # increases. For example, setting `initial` to `2%` will cause the supply to - # increase by at most `2%` per year. A higher voting reward rate - # incentivizes users to participate in governance, but also results in - # higher inflation. - # - # The initial and final reward rates can be set to have a higher reward rate - # at the launch of the SNS and a lower rate further into the SNS’s lifetime. - # The reward rate falls quadratically from the `initial` rate to the `final` - # rate over the course of `transition_duration`. - # - # Setting both `initial` and `final` to `0%` will result in the system not - # distributing voting rewards at all. - # - # More details on SNS tokenomics can be found in the developer documentation: - # https://internetcomputer.org/docs/current/developer-docs/integrations/sns/tokenomics/rewards/#voting-rewards - RewardRate: - # The initial reward rate at which the SNS voting rewards will increase - # per year. This field is specified as a percentage. For example: "15%". - initial: 10% - - # The final reward rate at which the SNS voting rewards will increase - # per year. This rate is reached after `transition_duration` and remains - # at this level unless changed by an SNS proposal. This field is - # specified as a percentage. For example: "5%". - final: 2.25% - - # The voting reward rate falls quadratically from `initial` to `final` - # over the time period defined by `transition_duration`. - # - # Values of 0 result in the reward rate always being `final`. - # - # This field is specified as a duration. For example: "8 years". - transition_duration: 12 years - -# Configuration of the initial token distribution of the SNS. You can configure -# how SNS tokens are distributed in each of the three groups: -# (1) tokens that are given to the original developers of the dapp, -# (2) treasury tokens that are owned by the SNS governance canister, and -# (3) tokens which are distributed to the decentralization swap participants. -# -# The initial token distribution must satisfy the following preconditions to be -# valid: -# - The sum of all developer tokens in E8s must be less than `u64::MAX`. -# - The Swap's initial balance (see group (3) above) must be greater than 0. -# - The Swap's initial balance (see group (3) above) must be greater than or -# equal to the sum of all developer tokens. + minimum_dissolve_delay: 1 months + MaximumVotingPowerBonuses: + DissolveDelay: + duration: 3 years + bonus: 100% + Age: + duration: 3 years + bonus: 25% + RewardRate: + initial: 3% + final: 1.5% + transition_duration: 3 years Distribution: - # The initial neurons created when the SNS Governance canister is installed. - # Each element in this list specifies one such neuron, including its stake, - # controlling principal, memo identifying this neuron (every neuron that - # a user has must be identified by a unique memo), dissolve delay, and a - # vesting period. Even though these neurons are distributed at genesis, - # they are locked in a (restricted) pre-initialization mode until the - # decentralization swap is completed. Note that `vesting_period` starts - # right after the SNS creation and thus includes the pre-initialization mode - # period. - # - # For example: - # - principal: hpikg-6exdt-jn33w-ndty3-fc7jc-tl2lr-buih3-cs3y7-tftkp-sfp62-gqe - # stake: 1_000 tokens - # memo: 0 - # dissolve_delay: 2 years - # vesting_period: 4 years - Neurons: - # For the actual SNS launch, you should replace this with one or more - # principals of your intended genesis neurons. - # - # For testing, propose_sns.sh will fill this in automatically. - - principal: YOUR_PRINCIPAL_ID - stake: 1_000 tokens - memo: 0 - dissolve_delay: 2 years - vesting_period: 4 years - # The initial SNS token balances of the various canisters of the SNS. - InitialBalances: - # The initial SNS token balance of the SNS Governance canister is known - # as the treasury. This is initialized in a special sub-account, as the - # main account of Governance is the minting account of the SNS Ledger. - # This field is specified as a token. For instance, "1 token". - treasury: 2_000_000 tokens - - # The initial SNS token balance of the Swap canister is what will be - # available for the decentralization swap. These tokens will be swapped - # for ICP. This field is specified as a token. For instance, "1 token". - swap: 500_000 tokens - - # Checksum of the total number of tokens distributed in this section. - # This field is specified as a token. For instance, "1 token". - # 1_000 (neuron) - # 2 million (governance) - # + 500 thousand (swap) - # -------------- - total: 2_501_000 tokens - -# Configuration of the decentralization swap parameters. Choose these parameters -# carefully, if a decentralization swap fails, the SNS will restore the dapp -# canister(s) to the fallback controllers (defined in -# `fallback_controller_principals`) and you will need to start over. + Neurons: + # Team: Fern (4%) + - principal: 5jj5q-p26sh-36qwf-jmqzv-mezqv-6m5t3-el5oj-3r4uu-jgkg7-7acem-2ae + stake: 10_000_000 tokens + memo: 0 + dissolve_delay: 6 months + vesting_period: 0 months + - principal: 5jj5q-p26sh-36qwf-jmqzv-mezqv-6m5t3-el5oj-3r4uu-jgkg7-7acem-2ae + stake: 10_000_000 tokens + memo: 1 + dissolve_delay: 6 months + vesting_period: 12 months + - principal: 5jj5q-p26sh-36qwf-jmqzv-mezqv-6m5t3-el5oj-3r4uu-jgkg7-7acem-2ae + stake: 10_000_000 tokens + memo: 2 + dissolve_delay: 6 months + vesting_period: 24 months + - principal: 5jj5q-p26sh-36qwf-jmqzv-mezqv-6m5t3-el5oj-3r4uu-jgkg7-7acem-2ae + stake: 10_000_000 tokens + memo: 3 + dissolve_delay: 6 months + vesting_period: 36 months + # Team: Adeyinka (3%) + - principal: xdbn4-trqxh-ih2ot-ro7lz-yoidh-fhzq4-kbgzt-62xp7-whcu5-up462-2qe + stake: 7_500_000 tokens + memo: 0 + dissolve_delay: 6 months + vesting_period: 0 months + - principal: xdbn4-trqxh-ih2ot-ro7lz-yoidh-fhzq4-kbgzt-62xp7-whcu5-up462-2qe + stake: 7_500_000 tokens + memo: 1 + dissolve_delay: 6 months + vesting_period: 12 months + - principal: xdbn4-trqxh-ih2ot-ro7lz-yoidh-fhzq4-kbgzt-62xp7-whcu5-up462-2qe + stake: 7_500_000 tokens + memo: 2 + dissolve_delay: 6 months + vesting_period: 24 months + - principal: xdbn4-trqxh-ih2ot-ro7lz-yoidh-fhzq4-kbgzt-62xp7-whcu5-up462-2qe + stake: 7_500_000 tokens + memo: 3 + dissolve_delay: 6 months + vesting_period: 36 months + # Team: Jig (4%) + - principal: v6cqu-wbbqi-ynkdp-wddnd-wzdmi-rw4dw-273pc-mhgpt-vt2e3-nlf36-gae + stake: 10_000_000 tokens + memo: 0 + dissolve_delay: 6 months + vesting_period: 0 months + - principal: v6cqu-wbbqi-ynkdp-wddnd-wzdmi-rw4dw-273pc-mhgpt-vt2e3-nlf36-gae + stake: 10_000_000 tokens + memo: 1 + dissolve_delay: 6 months + vesting_period: 12 months + - principal: v6cqu-wbbqi-ynkdp-wddnd-wzdmi-rw4dw-273pc-mhgpt-vt2e3-nlf36-gae + stake: 10_000_000 tokens + memo: 2 + dissolve_delay: 6 months + vesting_period: 24 months + - principal: v6cqu-wbbqi-ynkdp-wddnd-wzdmi-rw4dw-273pc-mhgpt-vt2e3-nlf36-gae + stake: 10_000_000 tokens + memo: 3 + dissolve_delay: 6 months + vesting_period: 36 months + # Team: Jena (3%) + - principal: pgxjy-vhs2o-lxhjk-yt6ff-ssrrj-czzka-55pfi-fvewj-2lj6z-pb4oe-bqe + stake: 5_000_000 tokens + memo: 0 + dissolve_delay: 6 months + vesting_period: 0 months + - principal: pgxjy-vhs2o-lxhjk-yt6ff-ssrrj-czzka-55pfi-fvewj-2lj6z-pb4oe-bqe + stake: 5_000_000 tokens + memo: 1 + dissolve_delay: 6 months + vesting_period: 12 months + - principal: pgxjy-vhs2o-lxhjk-yt6ff-ssrrj-czzka-55pfi-fvewj-2lj6z-pb4oe-bqe + stake: 5_000_000 tokens + memo: 2 + dissolve_delay: 6 months + vesting_period: 24 months + - principal: pgxjy-vhs2o-lxhjk-yt6ff-ssrrj-czzka-55pfi-fvewj-2lj6z-pb4oe-bqe + stake: 5_000_000 tokens + memo: 3 + dissolve_delay: 6 months + vesting_period: 36 months + # Advisor (1%) + - principal: eufr2-wept5-r2oyr-r2bss-donpp-6wtmk-m7dk2-jwxx7-7lga3-26ekt-vqe + stake: 2_500_000 tokens + memo: 0 + dissolve_delay: 6 months + vesting_period: 0 months + - principal: eufr2-wept5-r2oyr-r2bss-donpp-6wtmk-m7dk2-jwxx7-7lga3-26ekt-vqe + stake: 2_500_000 tokens + memo: 1 + dissolve_delay: 6 months + vesting_period: 12 months + - principal: eufr2-wept5-r2oyr-r2bss-donpp-6wtmk-m7dk2-jwxx7-7lga3-26ekt-vqe + stake: 2_500_000 tokens + memo: 2 + dissolve_delay: 6 months + vesting_period: 24 months + - principal: eufr2-wept5-r2oyr-r2bss-donpp-6wtmk-m7dk2-jwxx7-7lga3-26ekt-vqe + stake: 2_500_000 tokens + memo: 3 + dissolve_delay: 6 months + vesting_period: 36 months + # Pre-SNS Partners (1%) + - principal: q3syc-vqmgp-nwaeb-rw7fw-xuz23-y5jv7-snkfo-dzkdq-4ycxg-3r2wi-oqe + stake: 133_334 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: q3syc-vqmgp-nwaeb-rw7fw-xuz23-y5jv7-snkfo-dzkdq-4ycxg-3r2wi-oqe + stake: 133_333 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: q3syc-vqmgp-nwaeb-rw7fw-xuz23-y5jv7-snkfo-dzkdq-4ycxg-3r2wi-oqe + stake: 133_333 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: umgv7-x6vvu-jxh2x-3eymv-v3gts-fyg2f-s5q7j-urn5u-4m2xj-fynpk-eqe + stake: 166_667 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: umgv7-x6vvu-jxh2x-3eymv-v3gts-fyg2f-s5q7j-urn5u-4m2xj-fynpk-eqe + stake: 166_667 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: umgv7-x6vvu-jxh2x-3eymv-v3gts-fyg2f-s5q7j-urn5u-4m2xj-fynpk-eqe + stake: 166_666 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: bdjyr-r4v6q-l6yqs-i5nk4-zhmdw-nnymn-art62-nqog5-q4ktl-yq2iz-jae + stake: 166_667 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: bdjyr-r4v6q-l6yqs-i5nk4-zhmdw-nnymn-art62-nqog5-q4ktl-yq2iz-jae + stake: 166_667 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: bdjyr-r4v6q-l6yqs-i5nk4-zhmdw-nnymn-art62-nqog5-q4ktl-yq2iz-jae + stake: 166_666 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: qsl6m-b74sm-3lvbd-6gbqu-l55il-qyy4i-yxsjx-4hu2t-grcyi-mrdlq-xqe + stake: 83_334 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: qsl6m-b74sm-3lvbd-6gbqu-l55il-qyy4i-yxsjx-4hu2t-grcyi-mrdlq-xqe + stake: 83_333 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: qsl6m-b74sm-3lvbd-6gbqu-l55il-qyy4i-yxsjx-4hu2t-grcyi-mrdlq-xqe + stake: 83_333 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: 6kug4-nrn4l-wisyi-xs2vy-io7dj-nmzb6-tya3f-mg47l-u4g7l-ouaxe-rqe + stake: 50_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: 6kug4-nrn4l-wisyi-xs2vy-io7dj-nmzb6-tya3f-mg47l-u4g7l-ouaxe-rqe + stake: 50_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: 6kug4-nrn4l-wisyi-xs2vy-io7dj-nmzb6-tya3f-mg47l-u4g7l-ouaxe-rqe + stake: 50_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: gmhzd-h3kke-73f3i-64hpm-trtl2-p7xdh-h6g4n-txyod-u4lf7-bpbib-sqe + stake: 133_334 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: gmhzd-h3kke-73f3i-64hpm-trtl2-p7xdh-h6g4n-txyod-u4lf7-bpbib-sqe + stake: 133_333 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: gmhzd-h3kke-73f3i-64hpm-trtl2-p7xdh-h6g4n-txyod-u4lf7-bpbib-sqe + stake: 133_333 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: whay4-dkigk-om4ik-upli2-4omzz-77k5u-d6xna-vmkrk-6xf56-sov7c-vqe + stake: 383_334 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: whay4-dkigk-om4ik-upli2-4omzz-77k5u-d6xna-vmkrk-6xf56-sov7c-vqe + stake: 383_333 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: whay4-dkigk-om4ik-upli2-4omzz-77k5u-d6xna-vmkrk-6xf56-sov7c-vqe + stake: 383_333 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: 2i2w4-2d6br-lgioj-iiejb-xlc36-uxsus-j75wm-6rnbs-k6zez-4v2xz-kqe + stake: 50_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: 2i2w4-2d6br-lgioj-iiejb-xlc36-uxsus-j75wm-6rnbs-k6zez-4v2xz-kqe + stake: 50_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: 2i2w4-2d6br-lgioj-iiejb-xlc36-uxsus-j75wm-6rnbs-k6zez-4v2xz-kqe + stake: 50_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: hhxmj-tdk6r-67ckp-zhki7-xy56i-7bg6w-bgxpl-ioj7y-2uroc-6zd6l-dae + stake: 50_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: hhxmj-tdk6r-67ckp-zhki7-xy56i-7bg6w-bgxpl-ioj7y-2uroc-6zd6l-dae + stake: 50_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: hhxmj-tdk6r-67ckp-zhki7-xy56i-7bg6w-bgxpl-ioj7y-2uroc-6zd6l-dae + stake: 50_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: oi2r6-u7asr-qpkxw-5xoov-a5wgy-yp3vp-xtvbj-7oqoo-tla7n-fjzai-sqe + stake: 50_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: oi2r6-u7asr-qpkxw-5xoov-a5wgy-yp3vp-xtvbj-7oqoo-tla7n-fjzai-sqe + stake: 50_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: oi2r6-u7asr-qpkxw-5xoov-a5wgy-yp3vp-xtvbj-7oqoo-tla7n-fjzai-sqe + stake: 50_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: ymn5h-h57op-wbbl5-2da34-dczv4-s3t7t-udvqq-rlev3-yla2i-6ah2r-dae + stake: 50_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: ymn5h-h57op-wbbl5-2da34-dczv4-s3t7t-udvqq-rlev3-yla2i-6ah2r-dae + stake: 50_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: ymn5h-h57op-wbbl5-2da34-dczv4-s3t7t-udvqq-rlev3-yla2i-6ah2r-dae + stake: 50_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: hnjcn-zrdec-okgpn-mbbiw-gqdpp-r3scc-fipa4-z3lm4-4acer-6yctw-6qe + stake: 50_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: hnjcn-zrdec-okgpn-mbbiw-gqdpp-r3scc-fipa4-z3lm4-4acer-6yctw-6qe + stake: 50_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: hnjcn-zrdec-okgpn-mbbiw-gqdpp-r3scc-fipa4-z3lm4-4acer-6yctw-6qe + stake: 50_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: jlavd-6a7mt-y3keb-r2vvn-jkuux-iwvgv-2bzw6-ubkdm-6vruh-y7zvu-hae + stake: 50_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: jlavd-6a7mt-y3keb-r2vvn-jkuux-iwvgv-2bzw6-ubkdm-6vruh-y7zvu-hae + stake: 50_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: jlavd-6a7mt-y3keb-r2vvn-jkuux-iwvgv-2bzw6-ubkdm-6vruh-y7zvu-hae + stake: 50_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: jvmbm-qza6g-vonys-2vbf4-k3vrq-wgdua-ttzhp-hphiv-ie4to-yfgks-eae + stake: 83_334 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: jvmbm-qza6g-vonys-2vbf4-k3vrq-wgdua-ttzhp-hphiv-ie4to-yfgks-eae + stake: 83_333 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: jvmbm-qza6g-vonys-2vbf4-k3vrq-wgdua-ttzhp-hphiv-ie4to-yfgks-eae + stake: 83_333 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: vgqx3-iuzox-422y7-p7coi-liauu-7sdxn-56stn-4bejp-4yqp7-6m5g3-gqe + stake: 100_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: vgqx3-iuzox-422y7-p7coi-liauu-7sdxn-56stn-4bejp-4yqp7-6m5g3-gqe + stake: 100_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: vgqx3-iuzox-422y7-p7coi-liauu-7sdxn-56stn-4bejp-4yqp7-6m5g3-gqe + stake: 100_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: cbrhe-mwtxk-yty3q-72icc-dpn34-gtexr-f2glj-gt6a5-ezden-ph66f-wae + stake: 100_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: cbrhe-mwtxk-yty3q-72icc-dpn34-gtexr-f2glj-gt6a5-ezden-ph66f-wae + stake: 100_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: cbrhe-mwtxk-yty3q-72icc-dpn34-gtexr-f2glj-gt6a5-ezden-ph66f-wae + stake: 100_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: qawtt-csqpv-qvi42-fy25l-3cctk-v566r-wej37-ijccn-6nbvr-m324i-hqe + stake: 166_667 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: qawtt-csqpv-qvi42-fy25l-3cctk-v566r-wej37-ijccn-6nbvr-m324i-hqe + stake: 166_667 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: qawtt-csqpv-qvi42-fy25l-3cctk-v566r-wej37-ijccn-6nbvr-m324i-hqe + stake: 166_666 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: 4iimz-bvgkh-cv4v2-ayx3r-54pgk-cjcvf-jpfwu-m44ky-dj36t-ucswv-gae + stake: 50_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: 4iimz-bvgkh-cv4v2-ayx3r-54pgk-cjcvf-jpfwu-m44ky-dj36t-ucswv-gae + stake: 50_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: 4iimz-bvgkh-cv4v2-ayx3r-54pgk-cjcvf-jpfwu-m44ky-dj36t-ucswv-gae + stake: 50_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: 7cxuo-5loh4-zvovn-cg4b5-z6uwn-jmwfo-jjt4d-pbrgz-le7of-nitzo-wae + stake: 50_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: 7cxuo-5loh4-zvovn-cg4b5-z6uwn-jmwfo-jjt4d-pbrgz-le7of-nitzo-wae + stake: 50_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: 7cxuo-5loh4-zvovn-cg4b5-z6uwn-jmwfo-jjt4d-pbrgz-le7of-nitzo-wae + stake: 50_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: ysbfx-f7g5i-aijds-w7rw6-fggpa-hlhsp-53luk-47pvw-vq46y-zmkw4-kqe + stake: 500_000 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: ysbfx-f7g5i-aijds-w7rw6-fggpa-hlhsp-53luk-47pvw-vq46y-zmkw4-kqe + stake: 500_000 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: ysbfx-f7g5i-aijds-w7rw6-fggpa-hlhsp-53luk-47pvw-vq46y-zmkw4-kqe + stake: 500_000 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: lfvoe-mgffq-hr6u6-kaqlk-acymb-ir2hs-nxsqb-hhgjc-epwst-lqnqr-jqe + stake: 433_334 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: lfvoe-mgffq-hr6u6-kaqlk-acymb-ir2hs-nxsqb-hhgjc-epwst-lqnqr-jqe + stake: 433_333 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: lfvoe-mgffq-hr6u6-kaqlk-acymb-ir2hs-nxsqb-hhgjc-epwst-lqnqr-jqe + stake: 433_333 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + - principal: 3zzlu-rqy6e-wl6m2-tzgeb-3ilbx-ze3jq-5wz7n-f3gum-zgyzx-vuzei-uae + stake: 433_334 tokens + memo: 0 + dissolve_delay: 1 month + vesting_period: 0 months + - principal: 3zzlu-rqy6e-wl6m2-tzgeb-3ilbx-ze3jq-5wz7n-f3gum-zgyzx-vuzei-uae + stake: 433_333 tokens + memo: 1 + dissolve_delay: 1 month + vesting_period: 1 months + - principal: 3zzlu-rqy6e-wl6m2-tzgeb-3ilbx-ze3jq-5wz7n-f3gum-zgyzx-vuzei-uae + stake: 433_333 tokens + memo: 2 + dissolve_delay: 1 month + vesting_period: 2 months + InitialBalances: + treasury: 600_000_000 tokens + swap: 250_000_000 tokens + total: 1_000_000_000 tokens Swap: - # The minimum number of direct participants that must participate for the - # decentralization swap to succeed. If a decentralization swap finishes due - # to the deadline or the maximum target being reached, and if there are less - # than `minimum_participants` (here, only direct participants are counted), - # the swap will be committed. - minimum_participants: 57 - - # Minimum amount of ICP from direct participants. This amount is required for - # the swap to succeed. If this amount is not achieved, the swap will be - # aborted (instead of committed) when the due date/time occurs. - # Must be smaller than or equal than `maximum_direct_participation_icp`. - minimum_direct_participation_icp: 100_000 tokens - - # Maximum amount of ICP from direct participants. If this amount is achieved, - # the swap will finalize immediately, without waiting for the due date/time; - # in this case, the swap would be committed if and only if the number of - # direct participants (`minimum_participants`) is reached (otherwise, it - # would be aborted). - # Must be at least `min_participants * minimum_direct_participation_icp`. - maximum_direct_participation_icp: 1_000_000 tokens - - # The minimum amount of ICP that each participant must contribute - # to participate. This field is specified as a token. For instance, - # "1 token". - minimum_participant_icp: 100 tokens - - # The maximum amount of ICP that each participant may contribute - # to participate. This field is specified as a token. For instance, - # "1 token". - maximum_participant_icp: 10_000 tokens - - # The text that swap participants must confirm before they may participate - # in the swap. - # - # This field is optional. If set, must be within 1 to 1,000 characters and - # at most 8,000 bytes. - # confirmation_text: > - # I confirm my understanding of the responsibilities and risks - # associated with participating in this token swap. - - # A list of countries from which swap participation should not be allowed. - # - # This field is optional. By default, participants from all countries - # are allowed. - # - # Each list element must be an ISO 3166-1 alpha-2 country code. - restricted_countries: - - AQ # Antarctica - - # Configuration of the vesting schedule of the neuron basket, i.e., the SNS - # neurons that a participants will receive from a successful - # decentralization swap. - VestingSchedule: - # The number of events in the vesting schedule. This translates to how - # many neurons will be in each participant's neuron basket. Note that - # the first neuron in each neuron basket will have zero dissolve delay; - # the 2nd will have dissolve delay `interval`; if present, the 3rd will - # have dissolve delay `interval` × 2, etc. - # - # This value must be greater than or equal to `2` - # and must not exceed `10`. - events: 2 - - # The interval at which the schedule will be increased per event. The - # first neuron in the basket will be unlocked with zero dissolve delay. - # Each other neuron in the schedule will have its dissolve delay - # increased by `interval` compared to the previous one. For example, - # if `events` is set to `3` and `interval` is `1 month`, then each - # participant's neuron basket will have three neurons (with equal stake) - # with dissolve delays zero, 1 month, and 2 months. Note that the notion - # of `Distribution.neurons.vesting_period` applies only to developer - # neurons. While neuron basket neurons do not use `vesting_period`, they - # have a vesting schedule. This field is specified as a duration. For - # example: "1 month". - interval: 1 month - - # Absolute time of day when the decentralization swap is supposed to start. - # - # An algorithm will be applied to allow at least 24 hours between the time - # of execution of the CreateServiceNervousSystem proposal and swap start. - # For example, if start_time is 23:30 UTC and the proposal is adopted and - # executed at 23:20 UTC, then the swap start will be at 23:30 UTC the next - # day (i.e., in 24 hours and 10 min from the proposal execution time). - # - # WARNING: Swap start_time works differently on mainnet and in testing. - # - # On mainnet: - # - Setting start_time to some value (e.g., 23:30 UTC) will allow the swap - # participants to be prepared for the swap in advance, e.g., - # by obtaining ICPs that they would like to participate with. - # - If start_time is not specified, the actual start time of the swap will - # be chosen at random (allowing at least 24 hours and less than 48 hours, - # as described above). - # - # In testing: - # - Setting start_time to some value works the same as explained above. - # - If start_time is not specified, the swap will begin immediately after - # the CreateServiceNervousSystem proposal is executed. This facilitates - # testing in an accelerated manner. - # - # start_time: 23:30 UTC # Intentionally commented out for testing. - - # The duration of the decentralization swap. When `start_time` is calculated - # during CreateServiceNervousSystem proposal execution, this `duration` will - # be added to that absolute time and set as the swap's deadline. - duration: 7 days - - # Whether Neurons' Fund participation is requested. - neurons_fund_participation: true + minimum_participants: 10 + minimum_direct_participation_icp: 40_000 tokens + maximum_direct_participation_icp: 165_000 tokens + minimum_participant_icp: 1 tokens + maximum_participant_icp: 20_000 tokens + restricted_countries: + - US + - VN + - SY + - KR + - JP + VestingSchedule: + events: 5 + interval: 3 months + duration: 14 days + neurons_fund_participation: true diff --git a/logo.png b/logo.png index 2ebffc5..8786cab 100644 Binary files a/logo.png and b/logo.png differ diff --git a/settings.sh b/settings.sh index 11b16a9..d93a744 100755 --- a/settings.sh +++ b/settings.sh @@ -31,13 +31,13 @@ export SNS_AGGREGATOR_RELEASE="proposal-129614-agg" # $ ./gitlab-ci/src/artifacts/newest_sha_with_disk_image.sh origin/master # from the IC monorepo: https://github.com/dfinity/ic # if you change IC_COMMIT, then you need to rerun `source install.sh` -export IC_COMMIT="1f88ae12ac756a91901ec49b3506400ae55d6829" +export IC_COMMIT="25c1bb0227d9970f5673b908817d7c4962b29911" export TESTNET="local" -export DFX_VERSION="0.24.2" +export DFX_VERSION="0.24.3" export DFX_SNS_VERSION="0.4.1" export DFX_NNS_VERSION="0.4.1" export QUILL_VERSION="0.5.2" -export IC_WASM_VERSION="0.9.1" \ No newline at end of file +export IC_WASM_VERSION="0.9.1"