From 6b0c800a29b40f7e68c66cf1a07d011736098868 Mon Sep 17 00:00:00 2001 From: flopez7 Date: Tue, 17 Mar 2026 17:21:49 +0100 Subject: [PATCH] remove obsolete GitHub workflows for contract deployment, job launcher server, and reputation oracle and update README.md links --- .github/workflows/cd-deploy-contracts.yaml | 146 ------------------ .github/workflows/cd-job-launcher-server.yaml | 57 ------- .github/workflows/cd-reputation-oracle.yaml | 57 ------- README.md | 34 ++-- 4 files changed, 18 insertions(+), 276 deletions(-) delete mode 100644 .github/workflows/cd-deploy-contracts.yaml delete mode 100644 .github/workflows/cd-job-launcher-server.yaml delete mode 100644 .github/workflows/cd-reputation-oracle.yaml diff --git a/.github/workflows/cd-deploy-contracts.yaml b/.github/workflows/cd-deploy-contracts.yaml deleted file mode 100644 index 5d51c20117..0000000000 --- a/.github/workflows/cd-deploy-contracts.yaml +++ /dev/null @@ -1,146 +0,0 @@ -name: Deploy contracts - -on: - workflow_dispatch: - inputs: - network: - description: "network" - required: true - escrowFactory: - description: "deploy escrow factory" - required: true - -jobs: - deploy-contracts: - name: Deploy contracts - runs-on: ubuntu-latest - environment: deploy-contracts - env: - ETH_SEPOLIA_TESTNET_URL: ${{ secrets.ETH_SEPOLIA_TESTNET_URL }} - ETH_POLYGON_URL: ${{ secrets.ETH_POLYGON_URL }} - ETH_POLYGON_AMOY_URL: ${{ secrets.ETH_POLYGON_AMOY_URL }} - ETH_BSC_URL: ${{ secrets.ETH_BSC_URL }} - ETH_BSC_TESTNET_URL: ${{ secrets.ETH_BSC_TESTNET_URL }} - ETH_MOONBEAM_URL: ${{ secrets.ETH_MOONBEAM_URL }} - ETH_MOONBASE_ALPHA_URL: ${{ secrets.ETH_MOONBASE_ALPHA_URL }} - ETH_MAINNET_URL: ${{ secrets.ETH_MAINNET_URL }} - ETH_FUJI_URL: ${{ secrets.ETH_FUJI_URL }} - ETH_AVALANCHE_URL: ${{ secrets.ETH_AVALANCHE_URL }} - ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }} - POLYGONSCAN_API_KEY: ${{ secrets.POLYGONSCAN_API_KEY }} - BSC_API_KEY: ${{ secrets.BSC_API_KEY }} - MOONSCAN_API_KEY: ${{ secrets.MOONSCAN_API_KEY }} - AVALANCHE_API_KEY: ${{ secrets.AVALANCHE_API_KEY }} - steps: - - uses: actions/checkout@v6 - with: - token: ${{ secrets.GH_TOKEN_CD_CONTRACTS }} - - uses: actions/setup-node@v6 - with: - node-version-file: .nvmrc - cache: yarn - - name: Install dependencies - run: yarn workspaces focus @human-protocol/core - - name: Build core package - run: yarn workspace @human-protocol/core build - - name: Networks list - id: networks - run: | - case ${{ github.event.inputs.network }} in - "sepolia") - echo "escrow_factory=0x5987A5558d961ee674efe4A8c8eB7B1b5495D3bf" >> $GITHUB_OUTPUT - echo "private_key=TESTNET_PRIVATE_KEY" >> $GITHUB_OUTPUT - ;; - "polygon") - echo "escrow_factory=0xBDBfD2cC708199C5640C6ECdf3B0F4A4C67AdfcB" >> $GITHUB_OUTPUT - echo "private_key=MAINNET_PRIVATE_KEY" >> $GITHUB_OUTPUT - ;; - "polygonAmoy") - echo "escrow_factory=0xAFf5a986A530ff839d49325A5dF69F96627E8D29" >> $GITHUB_OUTPUT - echo "private_key=TESTNET_PRIVATE_KEY" >> $GITHUB_OUTPUT - ;; - "bsc") - echo "escrow_factory=0x92FD968AcBd521c232f5fB8c33b342923cC72714" >> $GITHUB_OUTPUT - echo "private_key=MAINNET_PRIVATE_KEY" >> $GITHUB_OUTPUT - ;; - "bscTestnet") - echo "escrow_factory=0x2bfA592DBDaF434DDcbb893B1916120d181DAD18" >> $GITHUB_OUTPUT - echo "private_key=TESTNET_PRIVATE_KEY" >> $GITHUB_OUTPUT - ;; - "moonbeam") - echo "escrow_factory=0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a" >> $GITHUB_OUTPUT - echo "private_key=MAINNET_PRIVATE_KEY" >> $GITHUB_OUTPUT - ;; - "moonbaseAlpha") - echo "escrow_factory=0x5e622FF522D81aa426f082bDD95210BC25fCA7Ed" >> $GITHUB_OUTPUT - echo "private_key=TESTNET_PRIVATE_KEY" >> $GITHUB_OUTPUT - ;; - "mainnet") - echo "escrow_factory=0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a" >> $GITHUB_OUTPUT - echo "private_key=MAINNET_PRIVATE_KEY" >> $GITHUB_OUTPUT - ;; - "avalanche") - echo "escrow_factory=0xD9c75a1Aa4237BB72a41E5E26bd8384f10c1f55a" >> $GITHUB_OUTPUT - echo "private_key=MAINNET_PRIVATE_KEY" >> $GITHUB_OUTPUT - ;; - "avalancheFujiTestnet") - echo "escrow_factory=0x56C2ba540726ED4f46E7a134b6b9Ee9C867FcF92" >> $GITHUB_OUTPUT - echo "private_key=TESTNET_PRIVATE_KEY" >> $GITHUB_OUTPUT - ;; - *) - echo "Invalid network" - exit 1 - ;; - esac - - name: Upgrade Proxies - if: github.event.inputs.escrowFactory == 'true' - run: yarn upgrade:proxy --network ${{ github.event.inputs.network }} - working-directory: ./packages/core - env: - PRIVATE_KEY: ${{ secrets[steps.networks.outputs.private_key] }} - DEPLOY_ESCROW_FACTORY: ${{ github.event.inputs.escrowFactory }} - ESCROW_FACTORY_ADDRESS: ${{ steps.networks.outputs.escrow_factory }} - - - name: Verify Escrow Factory Proxy - if: always() && github.event.inputs.escrowFactory == 'true' - run: yarn hardhat verify --network ${{ github.event.inputs.network }} ${{ steps.networks.outputs.escrow_factory }} - working-directory: ./packages/core - #Commit changes to develop - - name: Check for Changes - if: always() - id: check_changes - run: | - git fetch - if [[ -n "$(git diff --name-only)" ]]; then - echo "Changes detected." - echo "::set-output name=changes::true" - else - echo "No changes detected." - echo "::set-output name=changes::false" - fi - - - name: stash - if: always() && steps.check_changes.outputs.changes == 'true' - run: | - git status - git stash --include-untracked - - name: Checkout develop - if: always() && steps.check_changes.outputs.changes == 'true' - uses: actions/checkout@v6 - with: - ref: develop - token: ${{ secrets.GH_TOKEN_CD_CONTRACTS }} - - name: pop - if: always() && steps.check_changes.outputs.changes == 'true' - run: | - git stash pop - git status - - name: Commit changes - if: always() && steps.check_changes.outputs.changes == 'true' - uses: EndBug/add-and-commit@v9 - with: - add: "['./packages/core/.openzeppelin']" - message: "Update upgrade file from CD" - default_author: github_actions - tag_push: "--force" - github_token: ${{ secrets.GH_TOKEN_CD_CONTRACTS }} diff --git a/.github/workflows/cd-job-launcher-server.yaml b/.github/workflows/cd-job-launcher-server.yaml deleted file mode 100644 index ec761f4ec7..0000000000 --- a/.github/workflows/cd-job-launcher-server.yaml +++ /dev/null @@ -1,57 +0,0 @@ -name: Deploy Job launcher server - -on: - push: - branches: [ develop, main ] - paths: - - 'packages/apps/job-launcher/server/**' - pull_request: - branches: [ develop, main ] - paths: - - 'packages/apps/job-launcher/server/**' - workflow_dispatch: - -permissions: - id-token: write - contents: read - -jobs: - pull-request-check: - runs-on: ubuntu-latest - if: ${{ github.event_name == 'pull_request' }} - steps: - - name: Checkout - uses: actions/checkout@v6 - - - name: PR check - run: | - if [[ $GITHUB_REPOSITORY_OWNER == 'humanprotocol' ]] && [[ $GITHUB_BASE_REF == 'main' ]] && [[ $GITHUB_HEAD_REF == 'develop' ]]; then - echo "LGTM. PR from $GITHUB_HEAD_REF to $GITHUB_BASE_REF." - elif [[ $GITHUB_BASE_REF != 'main' ]]; then - echo "LGTM. PR from $GITHUB_HEAD_REF to $GITHUB_BASE_REF." - else - echo "Check out the target branch. A PR to 'main' can only be from the 'develop' branch within the 'humanprotocol' organization." - exit 1 - fi - - trigger-build-and-deploy: - if: always() && github.repository_owner == 'humanprotocol' && (needs.pull-request-check.result == 'skipped' || needs.pull-request-check.result == 'success') - needs: pull-request-check - name: Trigger build and deploy image - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v6 - - - uses: convictional/trigger-workflow-and-wait@v1.6.5 - with: - owner: humanprotocol - repo: multi-repo-cicd - github_token: ${{ secrets.GH_TOKEN }} - workflow_file_name: docker_build_and_deploy.yml - ref: job-launcher - wait_interval: 15 - client_payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "repository": "${{ github.repository }}", "trigger": "${{ github.event_name }}", "app": "job-launcher"}' - propagate_failure: true - trigger_workflow: true - wait_workflow: true diff --git a/.github/workflows/cd-reputation-oracle.yaml b/.github/workflows/cd-reputation-oracle.yaml deleted file mode 100644 index e107727447..0000000000 --- a/.github/workflows/cd-reputation-oracle.yaml +++ /dev/null @@ -1,57 +0,0 @@ -name: Deploy Reputation oracle - -on: - push: - branches: [ develop, main ] - paths: - - 'packages/apps/reputation-oracle/server/**' - pull_request: - branches: [ develop, main ] - paths: - - 'packages/apps/reputation-oracle/server/**' - workflow_dispatch: - -permissions: - id-token: write - contents: read - -jobs: - pull-request-check: - runs-on: ubuntu-latest - if: ${{ github.event_name == 'pull_request' }} - steps: - - name: Checkout - uses: actions/checkout@v6 - - - name: PR check - run: | - if [[ $GITHUB_REPOSITORY_OWNER == 'humanprotocol' ]] && [[ $GITHUB_BASE_REF == 'main' ]] && [[ $GITHUB_HEAD_REF == 'develop' ]]; then - echo "LGTM. PR from $GITHUB_HEAD_REF to $GITHUB_BASE_REF." - elif [[ $GITHUB_BASE_REF != 'main' ]]; then - echo "LGTM. PR from $GITHUB_HEAD_REF to $GITHUB_BASE_REF." - else - echo "Check out the target branch. A PR to 'main' can only be from the 'develop' branch within the 'humanprotocol' organization." - exit 1 - fi - - trigger-build-and-deploy: - if: always() && github.repository_owner == 'humanprotocol' && (needs.pull-request-check.result == 'skipped' || needs.pull-request-check.result == 'success') - needs: pull-request-check - name: Trigger build and deploy image - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v6 - - - uses: convictional/trigger-workflow-and-wait@v1.6.5 - with: - owner: humanprotocol - repo: multi-repo-cicd - github_token: ${{ secrets.GH_TOKEN }} - workflow_file_name: docker_build_and_deploy.yml - ref: reputation-oracle - wait_interval: 15 - client_payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "repository": "${{ github.repository }}", "trigger": "${{ github.event_name }}", "app": "reputation-oracle"}' - propagate_failure: true - trigger_workflow: true - wait_workflow: true diff --git a/README.md b/README.md index e25fa2cf9b..8f604bc7dd 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,9 @@ | | | | | | --- | --- | --- | --- | -| [![Lint Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-lint.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-lint.yaml) | [![Protocol Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-core.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-core.yaml) | [![Python SDK Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-python-sdk.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-python-sdk.yaml) | [![Node.js SDK Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-node-sdk.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-node-sdk.yaml) | -| [![Subgraph Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-subgraph.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-subgraph.yaml) | [![Dashboard Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-dashboard.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-dashboard.yaml) | [![Faucet Server Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-faucet-server.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-faucet-server.yaml) | [![Contract Deploy](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-deploy-contracts.yaml/badge.svg?event=workflow_dispatch)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-deploy-contracts.yaml) | -| [![Core NPM Publish](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-core.yaml/badge.svg?event=release)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-core.yaml) | [![Python SDK Publish](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-python-sdk.yaml/badge.svg?event=release)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-python-sdk.yaml) | [![Node.js SDK Publish](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-node-sdk.yaml/badge.svg?event=release)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-node-sdk.yaml) | [![Subgraph Deploy](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-subgraph.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/cd-subgraph.yaml) | - +| [![Lint Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-lint.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-lint.yaml) | [![Protocol Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-core.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-core.yaml) | [![Node.js SDK Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-node-sdk.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-node-sdk.yaml) | [![Python SDK Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-python-sdk.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-python-sdk.yaml) | +| [![Human Protocol Subgraph Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-subgraph-human.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-subgraph-human.yaml) | [![HMT Subgraph Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-subgraph-hmt.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-subgraph-hmt.yaml) | [![Dashboard Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-dashboard.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-dashboard.yaml) | [![Human App Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-human-app.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-human-app.yaml) | +| [![Job Launcher Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-job-launcher.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-job-launcher.yaml) | [![Reputation Oracle Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-reputation-oracle.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-reputation-oracle.yaml) | [![Faucet Server Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-faucet-server.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-faucet-server.yaml) | [![Fortune Check](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-fortune.yaml/badge.svg?branch=main)](https://github.com/humanprotocol/human-protocol/actions/workflows/ci-test-fortune.yaml) | ## All work on-chain @@ -16,12 +15,12 @@ Join us on [Discord](http://hmt.ai/discord) **What is the HUMAN Network?** -HUMAN is a permissionless protocol to facilitate the exchange of HUMAN work, knowledge, and contribution. Using HUMAN, individuals, organizations or businesses can either create or complete tasks. These are tasks that cannot typically be automated or completed by a machine. The types of work that are currently being completed using the HUMAN Protocol are: +HUMAN is a permissionless protocol to facilitate the exchange of HUMAN work, knowledge, and contribution. Using HUMAN, individuals, organizations or businesses can either create or complete tasks. These are tasks that cannot typically be automated or completed by a machine. The types of work that are currently being completed using the HUMAN Protocol are: -* [Data labeling](https://app.humanprotocol.org/) - HUMAN is currently being used to label raw image data which can subsequently be used to train Machine Learning algorithms. Last month over 20 Million images were labeled by HUMAN workers: [HUMAN Escrow Scanner](https://dashboard.humanprotocol.org/) -* [IMOO](https://www.humanprotocol.org/imoo) - An on-chain oracle for decentralized prediction markets -* [POH](https://www.humanprotocol.org/proof-of-humanity) - A system that brings bot-blocking applications on-chain -* … +- [Data labeling](https://app.humanprotocol.org/) - HUMAN is currently being used to label raw image data which can subsequently be used to train Machine Learning algorithms. Last month over 20 Million images were labeled by HUMAN workers: [HUMAN Escrow Scanner](https://dashboard.humanprotocol.org/) +- [IMOO](https://www.humanprotocol.org/imoo) - An on-chain oracle for decentralized prediction markets +- [POH](https://www.humanprotocol.org/proof-of-humanity) - A system that brings bot-blocking applications on-chain +- … ### Documentation @@ -29,7 +28,7 @@ For a more detailed description of the HUMAN Protocol architecture and vision se ### Description -As part of our efforts to increase open source contributions we have consolidated all our codebase into a single monorepo. This monorepo provides an easy and reliable way to build applications that interact with the HUMAN Protocol. It has been designed so that it can be extended to meet the requirements of a wide variety of blockchain application use-cases involving human work or contribution. We have also included various example applications and reference implementations for the core infrastructure components that make up the HUMAN Protocol. +As part of our efforts to increase open source contributions we have consolidated all our codebase into a single monorepo. This monorepo provides an easy and reliable way to build applications that interact with the HUMAN Protocol. It has been designed so that it can be extended to meet the requirements of a wide variety of blockchain application use-cases involving human work or contribution. We have also included various example applications and reference implementations for the core infrastructure components that make up the HUMAN Protocol. ### Contributing to this repository @@ -58,16 +57,18 @@ The contribution guidelines are as per the CONTRIBUTING.MD file. │ │ │ ├── human-protocol-sdk # Node.js SDK to interact with Human Protocol │ │ │ ├── subgraph # Human Protocol Subgraph ``` + ### Smart contracts + To access comprehensive information about the smart contracts, please visit the following URL: https://docs.humanprotocol.org/architecture/contracts/escrow.sol. This resource provides detailed documentation that covers various aspects of the smart contracts used within the Human Protocol ecosystem. ### How To Use This Repo -If you would like to join the HUMAN network as an operator please see the [apps](https://github.com/humanprotocol/human-protocol/tree/main/packages/apps) folder. Users may participate as any of the following roles: +If you would like to join the HUMAN network as an operator please see the [apps](https://github.com/humanprotocol/human-protocol/tree/main/packages/apps) folder. Users may participate as any of the following roles: -* [Job Launcher Operator](https://github.com/humanprotocol/human-protocol/tree/main/packages/apps/job-launcher) -* [Exchange Oracle Operator](https://github.com/humanprotocol/human-protocol/tree/main/packages/apps/fortune/exchange-oracle) -* [Recording Oracle Operator](https://github.com/humanprotocol/human-protocol/tree/main/packages/apps/fortune/recording-oracle) +- [Job Launcher Operator](https://github.com/humanprotocol/human-protocol/tree/main/packages/apps/job-launcher) +- [Exchange Oracle Operator](https://github.com/humanprotocol/human-protocol/tree/main/packages/apps/fortune/exchange-oracle) +- [Recording Oracle Operator](https://github.com/humanprotocol/human-protocol/tree/main/packages/apps/fortune/recording-oracle) #### Building New Applications for HUMAN @@ -83,6 +84,7 @@ To improve `git blame` accuracy by ignoring non-functional commits (e.g., format **To enable this:** Run: + ```bash git config blame.ignoreRevsFile .git-blame-ignore-revs git config blame.markIgnoredLines true @@ -91,5 +93,5 @@ git config blame.markUnblamableLines true ## LEGAL NOTICE -The Protocol is an open-source, blockchain-based network that organizes, evaluates, and compensates human labor (the “Protocol”). Your use of the Protocol is entirely at your own risk. The Protocol is available on an “as is” basis without warranties of any kind, either express or implied, including, but not limited to, warranties of merchantability, title, fitness for a particular purpose and non-infringement. You assume all risks associated with using the Protocol, and digital assets and decentralized systems generally, including but not -limited to, that: (a) digital assets are highly volatile; (b) using digital assets is inherently risky due to both features of such assets and the potential unauthorized acts of third parties; (c) you may not have ready access to digital assets; and (d) you may lose some or all of your tokens or other digital assets. You agree that you will have no recourse against anyone else for any losses due to the use of the Protocol. For example, these losses may arise from or relate to: (i) incorrect information; (ii) software or network failures; (iii) corrupted digital wallet files; (iv) unauthorized access; (v) errors, mistakes, or inaccuracies; or (vi) third-party activities. The Protocol does not collect any personal data, and your interaction with the Protocol will solely be through your public digital wallet address. Any personal or other data that you may make available in connection with the Protocol may not be private or secure. +The Protocol is an open-source, blockchain-based network that organizes, evaluates, and compensates human labor (the “Protocol”). Your use of the Protocol is entirely at your own risk. The Protocol is available on an “as is” basis without warranties of any kind, either express or implied, including, but not limited to, warranties of merchantability, title, fitness for a particular purpose and non-infringement. You assume all risks associated with using the Protocol, and digital assets and decentralized systems generally, including but not +limited to, that: (a) digital assets are highly volatile; (b) using digital assets is inherently risky due to both features of such assets and the potential unauthorized acts of third parties; (c) you may not have ready access to digital assets; and (d) you may lose some or all of your tokens or other digital assets. You agree that you will have no recourse against anyone else for any losses due to the use of the Protocol. For example, these losses may arise from or relate to: (i) incorrect information; (ii) software or network failures; (iii) corrupted digital wallet files; (iv) unauthorized access; (v) errors, mistakes, or inaccuracies; or (vi) third-party activities. The Protocol does not collect any personal data, and your interaction with the Protocol will solely be through your public digital wallet address. Any personal or other data that you may make available in connection with the Protocol may not be private or secure.