{"id":20629547,"url":"https://github.com/tangle-network/protocol-solidity","last_synced_at":"2025-07-26T00:14:36.854Z","repository":{"id":36992249,"uuid":"378022961","full_name":"tangle-network/protocol-solidity","owner":"tangle-network","description":"Cross chain shielded pool infrastructure / protocols.","archived":false,"fork":false,"pushed_at":"2024-08-13T19:17:21.000Z","size":360172,"stargazers_count":36,"open_issues_count":39,"forks_count":13,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-28T06:40:46.241Z","etag":null,"topics":["blockchain","bridge","ethereum","evm","solidity","zero-knowledge"],"latest_commit_sha":null,"homepage":"https://webb-tools.github.io/protocol-solidity/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tangle-network.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.Apache-2.0","code_of_conduct":null,"threat_model":null,"audit":"audits/VAR_Webb_Tools.pdf","citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-18T03:25:05.000Z","updated_at":"2025-03-06T11:04:13.000Z","dependencies_parsed_at":"2023-01-17T11:46:41.247Z","dependency_job_id":"c907946d-fe0f-4abf-b740-b3189cb27ee0","html_url":"https://github.com/tangle-network/protocol-solidity","commit_stats":{"total_commits":624,"total_committers":17,"mean_commits":"36.705882352941174","dds":0.6057692307692308,"last_synced_commit":"a95c256b2c4f5766066139a89d41bac7c733f456"},"previous_names":["tangle-network/protocol-solidity","webb-tools/protocol-solidity"],"tags_count":811,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangle-network%2Fprotocol-solidity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangle-network%2Fprotocol-solidity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangle-network%2Fprotocol-solidity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tangle-network%2Fprotocol-solidity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tangle-network","download_url":"https://codeload.github.com/tangle-network/protocol-solidity/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252458831,"owners_count":21751114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","bridge","ethereum","evm","solidity","zero-knowledge"],"created_at":"2024-11-16T14:05:14.181Z","updated_at":"2025-05-07T15:46:11.866Z","avatar_url":"https://github.com/tangle-network.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://www.webb.tools/\"\u003e\n\n  ![Webb Logo](./.github/assets/webb_banner_light.png#gh-light-mode-only)\n  ![Webb Logo](./.github/assets/webb_banner_dark.png#gh-dark-mode-only)\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp align=\"left\"\u003e\n    \u003cstrong\u003e🚀 Webb's Solidity Smart Contract Implementation 🚀\u003c/strong\u003e\n\u003c/p\u003e\n\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/webb-tools/protocol-solidity/check.yml?branch=main\u0026style=flat-square)](https://github.com/webb-tools/protocol-solidity/actions) [![License Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square)](https://www.apache.org/licenses/LICENSE-2.0) [![Twitter](https://img.shields.io/twitter/follow/webbprotocol.svg?style=flat-square\u0026label=Twitter\u0026color=1DA1F2)](https://twitter.com/webbprotocol) [![Telegram](https://img.shields.io/badge/Telegram-gray?logo=telegram)](https://t.me/webbprotocol) [![Discord](https://img.shields.io/discord/833784453251596298.svg?style=flat-square\u0026label=Discord\u0026logo=discord)](https://discord.gg/cv8EfJu3Tn)\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003ch2 id=\"table-of-contents\" style=border:0!important\u003e 📖 Table of Contents\u003c/h2\u003e\n\n\u003cdetails open=\"open\"\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"#start\"\u003e Getting Started\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#compile\"\u003eInstall and Compile\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#nix\"\u003eUsing Nix with Flakes\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#test\"\u003eTesting\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#fixtures\"\u003eFixtures\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contribute\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e  \n\u003c/details\u003e\n\n\u003ch2 id=\"start\"\u003e Getting Started  🎉 \u003c/h2\u003e\n\nThis repository contains the Solidity smart contracts for Webb's Anchor System and single asset shielded pool protocols. The Anchor System is a bridging protocol for connecting cryptographic accumulators between chains and can be used, as is implemented in this repo, to build interoperable shielded pool protocols. These shielded pool protocols enable cross-chain private asset transfers and liquidity pools.\n\nFor additional information, please refer to the official [Webb docs site](http://docs.webb.tools/) 📝. Have feedback on how to improve protocol-solidity? Or have a specific question to ask? Checkout the [Anchor System Feedback Discussion](https://github.com/webb-tools/feedback/discussions/categories/anchor-protocol) 💬.\n\n\n\u003ch2 id=\"compile\"\u003e Installation \u0026 Compile 💻 \u003c/h2\u003e\n\nInstall dependencies: \n\n```\nyarn install \n```\n\nUpdate submodules:\n\n```\ngit submodule update --init --recursive\n```\n\nTo populate fixtures from the submodules, you'll need to install DVC: https://dvc.org/doc/install. Then run:\n\n```\nyarn fetch:fixtures\n```\n\nTo compile contracts and build typescript interfaces\n\n```\nyarn build\n```\n\nTo run the test suite:\n\n```\nyarn test\n```\n\nTo fix the formatting:\n\n```\nyarn format\n```\n\nTo run TypeScript checks:\n\n```\nyarn ts-check\n```\n\n**Note:** If you push new fixtures to remote storage\n\n```\ncd solidity-fixtures\ndvc add solidity-fixtures\ndvc push --remote aws\n```\n\u003ch2 id=\"nix\"\u003e Using Nix with Flakes ❄️ \u003c/h2\u003e\n\n1. Install [Nix](https://nixos.org/download.html)\n2. Enable Flakes (if you are not already see here: [Flakes](https://nixos.wiki/wiki/Flakes))\n3. If you have [`direnv`](https://github.com/nix-community/nix-direnv#installation) installed, everything should work out of the box.\n4. Alternatively, you can run `nix develop` in the root of this repo to get a shell with all the dependencies installed.\n5. Happy hacking!\n\n\u003ch2 id=\"fixtures\"\u003e Generating Fixtures \u003c/h2\u003e\n\nFirst install and configure `rustup`:\n\n```bash\n# Install\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n# Configure\nsource ~/.cargo/env\n```\n\nConfigure the Rust toolchain to default to the latest nightly version, and add the nightly wasm target:\n\n```bash\nrustup default nightly\nrustup update\nrustup update nightly\nrustup target add wasm32-unknown-unknown\n```\n\nTo generate fixtures you will need Circom 2.0 and snarkjs installed. To install from source, clone the circom repository:\n\n```\ngit clone https://github.com/iden3/circom.git\n```\n\nEnter the circom directory and use the cargo build to compile:\n```\ncargo build --release\n```\n\nThe installation takes around 3 minutes to be completed. When the command successfully finishes, it generates the circom binary in the directory `target/release`. You can install this binary as follows:\n```\ncargo install --path circom\n```\nThe previous command will install the circom binary in the directory `$HOME/.cargo/bin`.\n\n#### Installing snarkjs\n\nsnarkjs is a npm package that contains code to generate and validate ZK proofs from the artifacts produced by circom.\n\nYou can install snarkjs with the following command:\n```\nnpm install -g snarkjs\n```\n\n\u003ch2 id=\"contribute\"\u003e Contributing \u003c/h2\u003e\n\nIf you have a contribution in mind, please check out our [Contribution Guide](./.github/CONTRIBUTING.md) for information on how to do so. We are excited for your first contribution!\n\n\u003ch2 id=\"license\"\u003e License \u003c/h2\u003e\n\nLicensed under \u003ca href=\"LICENSE\"\u003eApache 2.0 / MIT license\u003c/a\u003e.\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the MIT OR Apache 2.0 license, shall be licensed as above, without any additional terms or conditions.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangle-network%2Fprotocol-solidity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftangle-network%2Fprotocol-solidity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftangle-network%2Fprotocol-solidity/lists"}