Testworld Mission 2.0: Protocol Performance Testing Program Terms and Conditions

Version 2.0

Last Revised: October 9, 2023

The Testworld Mission 2.0: Protocol Performance Testing program is here. The goal of this program is to stress test the protocol and network with Mina community members to have a high level of confidence for Mina’s upcoming mainnet upgrade that will enable easier zkApps on Mina Mainnet.

The Program gathers experienced node operators to provide the network backbone for the Testworld 2.0 testnet. Participants will perform various node operation testing tasks for different grants. Participants can perform multiple node operation tasks.

For more details, please carefully read the rest of this document.

Program Details

1- Node Operators Responsibilities

Node operators participating in the Protocol Performance Testing program can perform one or more of the following tasks:

  1. Block Production
  2. Load Testing
  3. SNARK Work
  4. Archive Node

Block Production

HIGH LEVEL RESPONSIBILITIES

  • Run 2 Mina nodes on a cloud provider or hosted solution of your choice from the start until the end of the protocol performance testing
  • Run the latest Mina Node version (the Latest Mina Node version will be shared on Discord before the protocol performance testing starts) with all the required flags
  • Upgrade to a new Mina Node version within 24 hours if required
  • Ensure a high uptime % during the testing (a minimum of 90% uptime is required) as monitored by the snark-work-based uptime system
  • The Mina Nodes should be configured to restart automatically on crash and to persist the configuration directory across restarts
  • The Block Producer is expected to raise any abnormal behaviour during the protocol performance testing on Github, using the labels “Testworld-2-0-protocol-performance-testing and “Testworld-2-0-block-producer
  • Configure the Mina Node correctly – configuration instructions will be shared before the protocol performance testing starts

CONFIGURATION SETUP:

  • The private keys will be shared before the protocol performance testing starts
  • The release notes with the latest software baseline and the configuration instructions will be provided to Block Producers in the dedicated Discord channel before the start of the program
  • The Block Producer runs 2 Mina nodes during the baseline load testing
  • The Block Producer node joins the P2P network using seeds for bootstrapping

LOGS COLLECTION:

  • The Block Producer will be notified about configuring Mina nodes for logging. Instructions about how to send the logs will be shared before the start of the program
  • The Block Producer may be requested to send these logs (to be able to debug abnormal behaviour)

UPDATE PROCESS:

  • The Block Producer will get a notification in advance in the dedicated Discord channel as to when a new version of the Mina Node will be available along with the Release Notes 
  • The Block Producer is required to upgrade within 24 hours of the announcement during the testing

SECURITY:

  • The Performance Testing Toolset is organized as a separate GraphQL interface that is included only in testnet builds (not available for mainnet build) and is activated with certain CLI flags (–itn-graphql-port, –itn-keys) provided to the node.
  • CLI flag –itn-keys specifies Ed25519 public keys that are allowed access to the Control GraphQL interface. An authentication mechanism will ensure that only requests signed by specified public keys are allowed and protect against a range of attacks (such as request replay attacks). This way, it will ensure that access to the GraphQL Control interface of a node will be granted only to engineers from the Mina ecosystem facilitating the testnet. Control GraphQL provides a way to:
    • Send transactions from a Mina node to the network.
      • Secret keys for transaction sending will be provided by the caller (wallet or Block Producer keys associated with the Mina node will not be used)
    • Configure a Mina node’s networking
      • E.g. ban communication to certain peers in the Mina network
    • Access a Mina node’s information (such as slot allocation)

NOTES:

  • GraphQL Control will only use the capabilities of Mina nodes and only in a limited way. It grants the caller no access to the file system, firewall configuration or any other system configuration. 
  • Any changes made or actions launched to a Mina node via GraphQL Control will not persist over a Mina node’s restart. The GraphQL Control interface allows the execution of large-scale experiments involving hundreds of Mina nodes without coordination by node operators.
  • There will be random node restarts via the orchestrator once every 6 hours.

 Load Testing

HIGH LEVEL RESPONSIBILITIES

  • Run 10 Mina nodes on a cloud provider or hosted solution of your choice – you will be asked to start and stop the load testing node in Discord  channel.
  • Run the latest Mina Node version (the Latest Mina Node version will be shared on Discord)
  • Upgrade to a new Mina Node version within 24 hours if required
  • Ensure a high uptime % during the testing (a minimum of 90% uptime is required) as monitored by the snark-work-based uptime system
  • The Mina Nodes should be configured to restart automatically on crash and to persist the configuration directory across restarts
  • The Load Tester expected to raise any abnormal behaviour during the protocol performance testing on Github, using the labels “Testworld-2-0-protocol-performance-testing and “Testworld-2-0-load-tester
  • Configure the Mina Node correctly – configuration instructions will be shared before the protocol performance testing starts

STRESS TESTING:

  • During the testing (on epochs 2 and 3), there will be stress tests of the network for 96h hours each time
  • The Load Testers will get a notification 24 hours in advance in the dedicated Discord channel
  • The Load Testing Block Producer spins up 10 extra nodes each during stress testing 
  • The 10 extra nodes must meet or exceed the minimum hardware requirements
  • The Load Tester runs the extra nodes in the same way as during the baseline load testing (same configuration, uptime, SW baseline, etc.) but without running consensus (no block production)

CONFIGURATION SETUP:

  • The release notes with the latest software baseline and the configuration instructions will be provided to Load Testers in the dedicated Discord channel before the start of the program
  • The Load Tester runs 10 non-consensus Mina nodes during the stress  testing windows, in addition to their 2 Block Producer nodes
  • The Load Tester spins down the 10 load testing nodes when asked to in Discord
  • The Load Testers nodes join the P2P network using seeds for bootstrapping

LOGS COLLECTION:

  • The Load Testers will be notified about configuring Mina nodes for logging. Instructions about how to send the logs will be shared before the start of the program
  • The Load Testers may be requested to send these logs (to be able to debug abnormal behaviour)

UPDATE PROCESS:

  • The Load Testers will get a notification in advance in the dedicated Discord channel as to when a new version of the Mina Node will be available along with the Release Notes 
  • The Load Tester is required to upgrade within 24 hours of the announcement during the testing

SECURITY:

  • The Performance Testing Toolset is organized as a separate GraphQL interface that is included only in testnet builds (not available for mainnet build) and is activated with certain CLI flags (–itn-graphql-port, –itn-keys) provided to the node.
  • CLI flag –itn-keys specifies Ed25519 public keys that are allowed access to the Control GraphQL interface. An authentication mechanism will ensure that only requests signed by specified public keys are allowed, as well as protect against a range of attacks (such as request replay attacks). This way, it will ensure that access to the GraphQL Control interface of a node will be granted only to engineers from the Mina ecosystem facilitating the testnet. Control GraphQL provides a way to:
    • Send transactions from a Mina node to the network
      • Secret keys for transaction sending will be provided by the caller (wallet or Block Producer keys associated with the Mina node will not be used)
    • Configure a Mina node’s networking
      • E.g. ban communication to certain peers in Mina network
    • Access a Mina node’s information (such as slot allocation)
    • Control block production

NOTES:

  • GraphQL Control will only use capabilities of Mina nodes and only in a limited way. It grants the caller no access to file system, firewall configuration or any other system configuration. 
  • Any changes made or actions launched to a Mina node via GraphQL Control will not persist over a Mina node’s restart. The GraphQL Control interface allows the execution of large scale experiments involving hundreds of Mina nodes without coordination by node operators.
  • There will be random node restarts via the orchestrator once every 6 hours.

SNARK Work

HIGH LEVEL RESPONSIBILITIES

  • Run a pool of SNARK workers and 1 SNARK Coordinator on a cloud provider or hosted solution of your choice from the start until the end of the protocol performance testing 
  • Run the latest Mina Node version (the Latest Mina Node version will be shared on Discord, before the protocol performance testing starts) with all the required flags
  • Upgrade to a new Mina Node version within 24 hours if required
  • Ensure a high uptime % during the testing (a minimum of 90% uptime is required) as monitored by the snark-work-based uptime system
  • The Mina Nodes should be configured to restart automatically on crash and to persist the configuration directory across restarts
  • The SNARK worker Operator is expected to raise any abnormal behaviour during the protocol performance testing on Github, using the labels “Testworld-2-0-protocol-performance-testing and “Testworld-2-0-snark-worker
  • Configure the Mina Node correctly – configuration instructions will be shared before the protocol performance testing starts

CONFIGURATION SETUP:

  • Each SNARK worker process should be allocated with 4 cores / 8 threads, bringing the number of SNARK worker processes to 4 per SNARK work server
  • All SNARK worker processes should be connected to one SNARK coordinator
  • Private keys will be shared before the protocol performance testing starts
  • The release notes with the latest software baseline and the configuration instructions will be provided to SNARK worker Operator in the dedicated Discord channel before the start of the program

LOGS COLLECTION:

  • The SNARK worker Operator will be notified about how to configure Mina nodes for logging. Instructions about how to send the logs will be shared before the start of the program
  • The SNARK worker Operator may be requested to send these logs (to be able to debug abnormal behaviour)

UPDATE PROCESS:

  • The SNARK worker Operator will get a notification in advance in the dedicated Discord channel as to when a new version of the Mina Node will be available along with the Release Notes
  • The SNARK worker Operator is required to upgrade within 24 hours of the announcement during the testing

Archive Node

HIGH LEVEL RESPONSIBILITIES

  • Run the latest Mina Node and Archive Processor version (the Latest Mina Node and Archive Processor version will be shared on Discord, before the protocol performance testing starts)
  • Run a PostgreSQL database connected to the Archive Processor
  • Upgrade to a new Mina Node and Archive Processor version within 24 hours if required
  • Ensure a high uptime % during the testing (a minimum of 90% uptime is required) as monitored by the snark-work-based uptime system
  • The Mina Node should be configured to restart automatically on crash and to persist the configuration directory across restarts
  • The Archive Node is expected to raise any abnormal behaviour during the protocol performance testing on Github, using the labels “Testworld-2-0-protocol-performance-testing and “Testworld-2-0-archive-node
  • Configure the Mina Node correctly – configuration instructions will be shared before the protocol performance testing starts

CONFIGURATION SETUP:

  • The release notes with the latest software baseline and the configuration instructions will be provided to Archive Node operators in the dedicated Discord channel before the start of the program
  • The Archive Node joins the P2P network using seeds for bootstrapping.

LOGS COLLECTION:

  • The Archive Node will be notified about how to configure Mina nodes for logging. Instructions about how to send the logs will be shared before the start of the program
  • The Archive Node may be requested to send these logs (to be able to debug abnormal behaviour)

UPDATE PROCESS:

  • The Archive Node will get a notification in advance in the dedicated Discord channel as to when a new version of the Mina Node will be available along with the Release Notes 
  • The Archive Node is required to upgrade within 24 hours of the announcement during the testing

2- Technical Requirements

Node type Minimum hardware requirements
Block Production
  • 8 core processor
  • 16 GB of RAM
  • 10 GB of free storage
  • 1 Mbps internet connection
Load Testing
  • 8 core processor
  • 16 GB of RAM
  • 10 GB of free storage
  • 1 Mbps internet connection
SNARK Work
  • 16 core/32 threads dedicated instance
  • 16 GB of RAM
  • 12 GB of free storage
  • 1 Mbps internet connection

Note: multiple SNARK Worker processes should run on the same SNARK Work server. 4 core/8 threads should be provisioned per SNARK worker process, giving a total of 4 workers per SNARK Work server.

SNARK Coordinator
  • 8 core processor
  • 16 GB of RAM
  • 10 GB of free storage
  • 1 Mbps internet connection
Archive Node
  • 8 core processor
  • 16 GB of RAM
  • 10 GB of free storage
  • 1 Mbps internet connection

3- Testworld 2.0 test plan

Your role as node operators is paramount in ensuring the success of Testworld 2.0. Below are the revised instructions and test plan details for your reference.

  • Network Structure: The Testworld 2.0 network ledger mirrors the mainnet structure with approximately 200k accounts.
  • Participants: We have 250 community members managing various aspects of the network.

Epoch 1: Ensuring smooth onboarding

Goals:

  • Verify tooling functionality.
  • Resolve node setup and connection issues.
  • Conduct small experiments for validation.

Runbook:

Day 1:

  • Block Producers operators run 2 node replicas each with the same staking key to connect their nodes.
  • 10 SNARK work operators set up SNARK infrastructure with a total of 10 SNARK coordinators, 50 SNARK Worker servers and 200 SNARK worker processes (4 SNARK worker processes per server) with the following breakdown:
    • 2 operators will run 1 SNARK coordinator and 10 SNARK worker servers
    • 1 operator will run 1 SNARK coordinator and 7 SNARK worker servers
    • 3 operators will run 1 SNARK coordinator and 5 SNARK worker servers
    • 4 operators will run 1 SNARK coordinator and 2 SNARK worker servers

Day 5:

  • Verify all nodes are connected.

Day 10:

  • Run the transaction generator at half the goal throughput for 24 hours.

Epoch 2: Testing higher loads and scalability

Goals:

  • Test higher transaction loads.
  • Increase the number of nodes.
  • Test zkApps contracts from Mina builders.

Runbook:

Day 7:

  • zkApp builders deploy their contracts for testing.

Day 8:

  • Load-testing BPs spin up an additional 200 non-consensus nodes (10 nodes each).

Day 10:

  • Run transaction generator at goal throughput for 24 hours with increased node count.

Day 12:

  • Load-testing BPs spin down extra nodes.

Epoch 3: Testing higher loads and scalability with extra epoch complexity

Goals:

  • Test higher transaction loads with increased nodes.
  • Test load increases from being in the 3rd epoch.

Runbook:

Day 8:

  • Load-testing BPs increase the number of nodes on the network.

Day 10:

  • Run transaction generator at goal throughput for 24 hours with increased node count.

Day 12:

  • Load-testing BPs spin down extra nodes.

REPORTING OF BUGS

All participants are expected to raise any abnormal behaviour during the protocol performance testing on Github, using the label “Testworld-2-0-protocol-performance-testing

ESCALATING OTHER ISSUES

In dedicated Discord channel #testworld-2

QUESTIONS

In dedicated Discord channel #testworld-2

4- Timelines

The total duration of the protocol performance testing will last for about 3 epochs with a tentative start date of October 17, 2023 (we will notify successful applicants 1 week before the testnet launch to provide adequate time for renting servers). The Mina Foundation and its ecosystem partners will be conducting internal testing prior to the incentivized testnet start. It’s possible the October 17 start could move in the event of any security or stability related issues. The community will be informed with as much notice as possible if that occurs.

If testers uncover critical bugs and issues on the network, it may be necessary to pause the testing, fix the issues, and then restart the testing process. In that case, participants will be requested to pause the testing or participate for an extended testnet duration.

5- Incentives

We detail the incentives per category of participant. Please note that the incentives cover a period of 2 months of testing. Should the testing last longer, the incentives may be adapted to cover the operational costs (servers).

Node type

Grant and payout schedule

Block Production Grant: 850 USDC and 1,000 MINA tokens per Node Operator.

Payout schedule:

  • 425 USDC after confirmation of active participation on the testnet based on an uptime snapshot to determine nodes are online, which will be made around Oct 24, 2023. Payments are expected to be completed within 1 week after the snapshot.
  • 425 USDC after confirmation at the end of the testnet that the Protocol Performance Testing T&C have been met
  • 1,000 MINA tokens will be unlocked one year after Block Production’s successful completion of the testnet
  • Participants must fulfill KYC/AML requirements and remain in good-standing status during the testing to receive payments noted herein
Load Testing Grant: 1,600 USDC and 4,000 MINA tokens per Node Operator.

Payout schedule:

  • 800 USDC after confirmation of active participation on the testnet based on an uptime snapshot, to determine nodes are online, which will be made around Oct 24, 2023. Payments are expected to be completed within 1 week after the snapshot.
  • 800 USDC after confirmation at the end of the testnet that the Protocol Performance Testing T&C have been met
  • 4,000 MINA tokens will be unlocked one year after Load Testing’s successful  completion of the testnet
  • Participants must fulfill KYC/AML requirements and remain in good-standing status during the testing to receive payments noted herein
SNARK Work Grant: 

  1. 400 USDC for the single SNARK Work coordinator
  2. 600 USDC and 200 MINA tokens per SNARK worker

Note: there will be 50 SNARK workers in total, spread over 10 Node Operators who will additionally run 1 SNARK Coordinator each. The number of SNARK workers per Node Operator will vary.

Payout schedule:

  • 300 USDC per SNARK worker run + 200 USDC for the SNARK Work coordinator after confirmation of fulfilling KYC/AML requirements. The intention is for the grant to be disbursed before the launch of the testnet
  • 300 USDC per SNARK worker run + 200 USDC for the SNARK Work coordinator is intended to be disbursed prior to the second month of the testnet
  • 200 MINA tokens per SNARK worker run will be unlocked one year after SNARK Work’s successful completion of the testnet

Participants must fulfill KYC/AML requirements and remain in good-standing status during the testing to receive payments noted herein

Archive Node Grant : 500 USDC and 1,000 MINA tokens per Node Operator.

Payout schedule:

  • 250 USDC after confirmation of fulfilling KYC/AML requirements. The intention is for the grant to be disbursed before the launch of the testnet.
  • 250 USDC after confirmation at the end of the testnet that the Protocol Performance Testing T&C have been met.
  • 1,000 MINA tokens will be unlocked one year after Archive Node’s successful  completion of the testnet.
  • Participants must fulfill KYC/AML requirements and remain in good-standing status during the testing to receive payments noted herein

Please note:

If applicable, the Program might be paused or its duration might be extended upon participants uncovering critical bugs or issues on the network. Participants might be required to pause or extend their server rental in such circumstances.

TERMS AND CONDITIONS

These terms and conditions (“Terms”) govern the Testworld Mission 2.0 (the “Program”) and form a binding agreement between you and Mina Foundation (the “Foundation”). By participating in the Program, you agree to be bound by these Terms and the Privacy Policy.

 

1. To participate as a Tester you must:

      1. be at least 18 years of age and not be prohibited from participating in the Program by any applicable law or regulation;
      2. not be a citizen or resident of any jurisdiction subject to sanctions as enforced by the Office of Foreign Assets Control, including without limitation, Crimea and Sevastopol, Cuba, Iran, Iraq, North Korea, Syria, and you must not be named by Office of Foreign Assets Control as a Specially Designated National or Blocked Person; 
      3. not be an employee, contractor, shareholder, investor or other related party of Foundation;
      4. not be an employee, contractor, shareholder, investor or other related party of any company, organization or entity that operates a business as a miner, staker or other validator on a public blockchain, if another Tester shares the same affiliation(s) – i.e. only one person per company can be a Tester;
      5. be willing and able to pass KYC checks and other verification required under applicable law by proving your identity, or if you represent an entity, by also providing the required corporate documents and proving the identity and other status of the ultimate beneficial owner(s) of the entity. If you are unable to pass KYC/AML verification during the Duration, or determined to pose KYC concerns by any one of the designated AML verification provider platforms, you will be removed as a Tester immediately and the grants will be forfeited as a result. In such an event, you agree to return any grants you have received from the Program. 
      6. warrant that you have read and fully understand the Program Details as set forth above, and agree to complete testing with the role that you are assigned.

2. To the extent that the grant of tokens under the Terms would involve an issuance of securities, the parties acknowledge that Foundation has relied on Rule 701 adopted pursuant to Section 3(b) of the Securities Act of 1933 as an offer of securities made pursuant to the terms of this written contract relating to compensation.

3. You accept and acknowledge that Foundation does not control the market price or value of the tokens and the price of the token may fluctuate at any time. You accept and acknowledge that the Token may not be listed or may be de-listed from any exchange, brokerage or trading venue, and that Foundation may not be able to prevent this from occurring. 

4. You accept and acknowledge that there are risks associated with using any cryptocurrency network, including, but not limited to, the risk of unknown vulnerabilities in or unanticipated changes to the network protocol. You acknowledge and accept the risks of future changes to the open-source, public Mina blockchain (the “Blockchain”) and agree that Foundation is not responsible for such operating changes and is not liable for any loss of value you may experience as a result of such changes in operating rules. You accept and acknowledge that Foundation will not be responsible for any losses, failures, disruptions, errors, distortions or delays you may experience when using Tokens or participating in the Blockchain and activities related to the Blockchain, however caused. 

5. Foundation will not be responsible or liable to you for any loss and takes no responsibility for and will not be liable to you for any reason, including but not limited to any losses, damages or claims arising from: (i) user error such as forgotten passwords, lost or missing private keys, incorrectly constructed transactions, or mistyped addresses; (ii) server failure; (iii) corrupted wallet files; (iv) unauthorized access to applications; or (v) any unauthorized third party activities, including without limitation the use of viruses, phishing, brute forcing or other means of attack.

6. Foundation makes no warranty that the Blockchain or any version or aspect of it including wallets, nodes or any other software released by Foundation, are free of viruses or errors, will be uninterrupted, or that defects will be corrected. Foundation will not be responsible or liable to you for any loss of any kind, from action taken, or taken in reliance on material, or information, contained or made available through the program.

7. All programs, applications, software, documentation and other materials related to the Blockchain are provided on an “as is” and “as available” basis without any representation or warranty, whether express, implied or statutory. to the maximum extent permitted by applicable law, Foundation specifically disclaims any implied warranties of title, merchantability, fitness for a particular purpose and/or non-infringement. Foundation does not make any representations or warranties that access to and part of the Blockchain or any of the materials contained therein, will be continuous, uninterrupted, timely, or error-free. except for the express statements set forth in this agreement, you hereby acknowledge and agree that you have not relied upon any other statement or understanding, whether written or oral, with respect to your application to or participation in the Program.

8. You represent and warrant that you are not a “Prohibited Person”, meaning that you are not (i) a citizen or resident of a geographic area in which use of tokens is prohibited by applicable law, decree, regulation, treaty, or administrative act, (ii) a citizen or resident of, or located in, a geographic area that is subject to U.S. or other applicable comprehensive country sanctions or embargoes, or (iii) an individual, or an individual employed by or associated with an entity, identified on the U.S. Department of Commerce’s Denied Persons, Unverified, or Entity List, the U.S. Department of Treasury’s Specially Designated Nationals or Blocked Persons or Foreign Sanctions Evaders Lists, or the U.S. Department of State’s Debarred Parties List  or the sanctions lists adopted by the United Nations and the European Union to such extent such sanctions are extended by the UK Government to its Overseas Territories, as such lists may be amended from time to time; or (iv) a person who acts, directly or indirectly, for a senior foreign political figure, any member of a senior foreign political figure’s immediate family or any close associate of a senior foreign political figure. No person or entity that controls, is controlled by or under common control with, the you are a Prohibited Person.

9. You will

  • a. execute and deliver to the Foundation any and all documents related to the delivery of the tokens, as are reasonably requested by the Foundation;
  • b. provide to the Foundation wallet address(es) controlled by you and/or account information that you have access to which the rewards will be sent;
  • c. do and perform, or cause to be done and performed, all such further acts and things, and shall execute and deliver all such other agreements, certificates, instruments and documents, as the Foundation may reasonably request to comply with then applicable laws and regulations; and
  • d. complete and deliver any and all forms, documents, processes and procedures which the Foundation determines, in its reasonable discretion, are reasonably necessary for the Foundation to comply with any applicable “anti-money laundering” and “know your customer” laws.

10. It is your sole responsibility to determine whether, and to what extent, any taxes apply as a result of your participation in the Program, including as a result of acquiring or staking tokens, and to withhold, collect, report and remit the correct amounts of taxes to the appropriate tax authorities. For the avoidance of doubt, Foundation does not provide investment, tax, or legal advice. You should consult with a professional tax adviser regarding your specific situation.

11. During the term of this Agreement and thereafter You (i) will not use or permit the use of Foundation’s Confidential Information in any manner or for any purpose not expressly set forth in the Terms, (ii) will hold such Confidential Information in confidence and protect it from unauthorized use and disclosure, and (iii) will not disclose such Confidential Information to any third parties except as set forth in this section and in Section 13 below. You will protect Foundation’s Confidential Information from unauthorized use, access or disclosure in the same manner as you protect your own confidential information of a similar nature, but in no event will it exercise less than reasonable care. Notwithstanding the foregoing or anything to the contrary in the Terms or any other agreement between Foundation and you, nothing in the Terms shall limit your right to report possible violations of law or regulation with any federal, state, or local government agency. “​Confidential Information​” as used in the Terms means all information disclosed by Foundation to you, whether during or before the term of this Terms, that is not generally known in the Foundation’s trade or industry and will include, without limitation: (a) concepts and ideas relating to the development and distribution of content in any medium or to the current, future and proposed products or services of Foundation or its subsidiaries or affiliates; (b) trade secrets, drawings, inventions, know-how, software programs, and software source documents; (c) information regarding plans for research, development, new service offerings or products, marketing and selling, business plans, business forecasts, budgets and unpublished financial statements, licenses and distribution arrangements, prices and costs, suppliers and customers; (d) existence of any business discussions, negotiations or agreements between the parties; and (e) any information regarding the skills and compensation of employees, contractors or other agents of Foundation or its subsidiaries or affiliates. Confidential Information also includes proprietary or confidential information of any third party who may disclose such information to Foundation or you in the course of Foundation’s business. Confidential Information does not include information that (x) is or becomes a part of the public domain through no act or omission of yours, (y) is disclosed to you by a third party without restrictions on disclosure, or (z) was in your lawful possession without obligation of confidentiality prior to the disclosure and was not obtained by you either directly or indirectly from Foundation. In addition, this section will not be construed to prohibit disclosure of Confidential Information to the extent that such disclosure is required by law or valid order of a court or other governmental authority; ​provided, however​, that you will first have given notice to Foundation and will have made a reasonable effort to obtain a protective order requiring that the Confidential Information so disclosed be used only for the purposes for which the order was issued. All Confidential Information furnished to you by Foundation is the sole and exclusive property of Foundation or its suppliers or customers. Upon request by Foundation, you agree to promptly deliver to Foundation the original and any copies of the Confidential Information.

12. You shall have the right to disclose Confidential Information only to those of your employees, consultants, and agents who have a need to know such information for the purpose of performing in the Program and who have entered into a binding written agreement that is expressly for the benefit of Foundation and protects Foundation’s rights and interests in and to the Confidential Information to at least the same degree as this Agreement. Foundation reserves the right to refuse or limit your use of any employee, consultant or agent or to require you to remove any employee, consultant or agent already engaged in the performance of the Services.  Foundation’s exercise of such right will in no way limit your obligations under this Agreement.

13. You will indemnify and hold harmless Foundation, its affiliates, and their respective officers, directors, employees and agents (together, the “Released Parties”), from and against any claims, disputes, demands, liabilities, damages, losses, and costs and expenses, including, without limitation, reasonable legal and accounting fees arising out of or in any way connected with your participation in the Program, including any rewards accrued thereunder.

14. NEITHER THE RELEASED PARTIES NOR ANY OTHER PARTY INVOLVED IN THE PROGRAM WILL BE LIABLE FOR ANY INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOST PROFITS, LOST REVENUES, LOST SAVINGS, LOST BUSINESS OPPORTUNITY, LOSS OF DATA OR GOODWILL, SERVICE INTERRUPTION, COMPUTER DAMAGE OR SYSTEM FAILURE OR THE COST OF SUBSTITUTE ACTIVITIES OF ANY KIND ARISING OUT OF OR IN CONNECTION WITH THESE TERMS OR YOUR PARTICIPATION IN, OR INABILITY TO PARTICIPATE IN, THE PROGRAM, WHETHER BASED ON WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR ANY OTHER LEGAL THEORY, AND WHETHER OR NOT FOUNDATION OR ANY OTHER PARTY HAS BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGE, EVEN IF A LIMITED REMEDY SET FORTH HEREIN IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU.

15. THE EXCLUSIONS AND LIMITATIONS OF DAMAGES SET FORTH ABOVE ARE FUNDAMENTAL ELEMENTS OF THE BASIS OF THE BARGAIN BETWEEN FOUNDATION AND YOU.

16. These Terms and any action related thereto will be governed and construed and enforced in accordance with the laws of the State of New York, without regard to its conflict of laws rules or principles that would cause application of the laws of any jurisdiction. 

17. You and we agree that any dispute arising out of or relating to the Program or these Terms, including, without limitation, federal and state statutory claims, common law claims, and those based in contract, tort, fraud, misrepresentation, or any other legal theory, shall be resolved through binding arbitration, on an individual basis. Subject to applicable jurisdictional requirements, you may elect to pursue your claim in your local small claims court rather than through arbitration so long as your matter remains in small claims court and proceeds only on an individual (non-class and non-representative) basis. Arbitration shall be conducted in accordance with the American Arbitration Association’s rules for arbitration of consumer-related disputes. This agreement to arbitrate includes, without limitation, disputes arising out of or related to the interpretation or application of the Arbitration Agreement, including the enforceability, revocability, scope, or validity of the Arbitration Agreement or any portion of the Arbitration Agreement. All such matters shall be decided by an arbitrator and not by a court or judge.

18. The place of arbitration shall be in New York State. The language of arbitration shall be English. The arbitral award shall be final and binding upon both parties. TO THE EXTENT PERMISSIBLE BY LAW, ALL CLAIMS MUST BE BROUGHT IN A PARTY’S INDIVIDUAL CAPACITY, AND NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED CLASS, COLLECTIVE ACTION, OR REPRESENTATIVE PROCEEDING. THE ARBITRATOR MAY NOT CONSOLIDATE MORE THAN ONE PERSON’S CLAIMS OR ENGAGE IN ANY CLASS ARBITRATION. YOU ACKNOWLEDGE THAT, BY AGREEING TO THESE TERMS, YOU ARE WAIVING THE RIGHT TO A TRIAL BY JURY AND THE RIGHT TO PARTICIPATE IN A CLASS ACTION.

19. These Terms constitute the entire and exclusive understanding and agreement between Foundation and you regarding the Program, and the Terms supersede and replace any and all prior oral or written understandings or agreements between Foundation and you. To the extent of any conflict or inconsistency between these Terms and any other documents or materials provided by Foundation, these Terms prevail. If any provision of the Terms is held invalid or unenforceable by an arbitrator or a court of competent jurisdiction, that provision will be enforced to the maximum extent permissible and the other provisions of the Terms will remain in full force and effect. You may not assign or transfer the Terms, by operation of law or otherwise, without Foundation’s prior written consent. Any attempt by you to assign or transfer the Terms, without such consent, will be null and void. Foundation may freely assign or transfer these Terms without restriction. Subject to the foregoing, these Terms will bind and inure to the benefit of the parties, their successors and permitted assigns.

20. Foundation’s failure to enforce any right or provision of these Terms will not be considered a waiver of such right or provision. The waiver of any such right or provision will be effective only if in writing and signed by a duly authorized representative of Foundation. Except as expressly set forth in these Terms, the exercise by either party of any of its remedies under these Terms will be without prejudice to its other remedies under these Terms or otherwise.

21. With or without prior notice and at any time, any or all parts of the Program, including its Duration, may be modified or terminated, temporarily or permanently. Any notices or other communications provided under the Terms, including those regarding modifications to the Terms, will be directly communicated to Testers through Discord and email communications.