remixcompilers.site
Open in
urlscan Pro
2a06:98c1:3120::3
Public Scan
Submitted URL: http://remixcompilers.site/
Effective URL: https://remixcompilers.site/
Submission: On March 29 via api from FI — Scanned from NL
Effective URL: https://remixcompilers.site/
Submission: On March 29 via api from FI — Scanned from NL
Form analysis
2 forms found in the DOM<form class="remixui_permissionForm" data-id="pluginManagerSettingsPermissionForm">
<div class="p-2"></div>
</form>
<form id="local-plugin-form">
<div class="form-group"><label for="plugin-name">Plugin Name <small>(required)</small></label><input class="form-control" id="plugin-name" data-id="localPluginName" placeholder="Should be camelCase" value=""></div>
<div class="form-group"><label for="plugin-displayname">Display Name</label><input class="form-control" id="plugin-displayname" data-id="localPluginDisplayName" placeholder="Name in the header" value=""></div>
<div class="form-group"><label for="plugin-methods">Api (comma separated list of method names)</label><input class="form-control" id="plugin-methods" data-id="localPluginMethods" placeholder="Methods" value=""></div>
<div class="form-group"><label for="plugin-methods">Plugins it can activate (comma separated list of plugin names)</label><input class="form-control" id="plugin-canactivate" data-id="localPluginCanActivate" placeholder="Plugin names" value="">
</div>
<div class="form-group"><label for="plugin-url">Url <small>(required)</small></label><input class="form-control" id="plugin-url" data-id="localPluginUrl" placeholder="ex: https://localhost:8000" value=""></div>
<h6>Type of connection <small>(required)</small></h6>
<div class="form-check form-group">
<div class="radio"><input class="form-check-input" type="radio" name="type" id="iframe" data-id="localPluginRadioButtoniframe" value="iframe" checked=""><label class="form-check-label" for="iframe">Iframe</label></div>
<div class="radio"><input class="form-check-input" type="radio" name="type" id="ws" data-id="localPluginRadioButtonws" value="ws"><label class="form-check-label" for="ws">Websocket</label></div>
</div>
<h6>Location in remix <small>(required)</small></h6>
<div class="form-check form-group">
<div class="radio"><input class="form-check-input" type="radio" name="location" id="none" data-id="localPluginRadioButtonsidePanel" value="sidePanel" checked=""><label class="form-check-label" for="sidePanel">Side Panel</label></div>
<div class="radio"><input class="form-check-input" type="radio" name="location" id="none" data-id="localPluginRadioButtonmainPanel" value="mainPanel"><label class="form-check-label" for="mainPanel">Main Panel</label></div>
<div class="radio"><input class="form-check-input" type="radio" name="location" id="none" data-id="localPluginRadioButtonnone" value="none"><label class="form-check-label" for="none">None</label></div>
</div>
</form>
Text Content
loading compiler... FILE EXPLORERS GENERAL SETTINGS Generate contract metadata. Generate a JSON file in the contract folder. Allows to specify library addresses the contract depends on. If nothing is specified, Remix deploys libraries automatically. Always use Javascript VM at load Word wrap in editor Enable Personal Mode for web3 provider. Transaction sent over Web3 will use the web3.personal API. Be sure the endpoint is opened before enabling it. This mode allows a user to provide a passphrase in the Remix interface without having to unlock the account. Although this is very convenient, you should completely trust the backend you are connected to (Geth, Parity, ...). Remix never persists any passphrase Enable Matomo Analytics. We do not collect personally identifiable information (PII). The info is used to improve the site’s UX & UI. See more about Analytics in Remix IDE & Matomo GITHUB ACCESS TOKEN Manage the access token used to publish to Gist and retrieve Github contents. Go to github token page (link below) to create a new token and save it in Remix. Make sure this token has only 'create gist' permission. https://github.com/settings/tokens TOKEN: Remove THEMES Dark (dark) Light (light) Midcentury (light) Black (dark) Candy (light) Cerulean (light) Flatly (light) Spacelab (light) Cyborg (dark) Connect to a Local Plugin Active Modules1 SOLIDITY COMPILER DEACTIVATE Compile solidity contracts Inactive Modules30 BUILDBEAR ACTIVATE Create a Private Sandbox for various EVM and EVM-compatible blockchain networks, complete with a Faucet and Explorer. CELOBETA ACTIVATE Deploy and Run Transactions with Celo. CODE BY WELLDONE STUDIOBETA ACTIVATE Multi-Chain Deploy and Run Transactions CONTRACT DEPLOYERALPHA ACTIVATE Deploy a compiled contract to the same address on multiple networks CONTRACT VERIFICATION - SOURCIFY ACTIVATE Solidity contract and metadata verification service COOKBOOK.DEV ACTIVATE Find any smart contract, protocol, and library. DAPP DRAFT ACTIVATE Edit and deploy your own dapp! DEBUGGER ACTIVATE Debug transactions DEPLOY & RUN JS ON XINGHUO BIF ACTIVATE Deploy JS Contracts & Run Transactions on Xinghuo BIF DEPLOY & RUN SOLIDITY ON XINGHUO BIF ACTIVATE Deploy Solidity contracts & Run Transactions on Xinghuo BIF DGIT ACTIVATE Manage workspaces in a git repository. DGIT DIFF ACTIVATE Diff viewer for the DGIT plugin. HARDHAT PROVIDER ACTIVATE Hardhat provider KLAYTN ACTIVATE Deploy and Run Transactions with Klaytn. LEARNETHBETA ACTIVATE Learn Ethereum with Remix! LEXONALPHA ACTIVATE Compile Lexon contracts MYTHX SECURITY VERIFICATION ACTIVATE Perform Static and Dynamic Security Analysis using the MythX Cloud Service NAHMII COMPILER ACTIVATE Compiler for Nahmii 2.0. ONE CLICK DAPP ACTIVATE A free tool to generate smart contract interfaces. REMIXD ACTIVATE Using Remixd daemon, allow to access file system RESTORE BACKUP ZIP ACTIVATE Use this to restore your Remix backup zip files to the new workspaces. SOLHINT LINTER ACTIVATE Linter for Solidity SOLIDITY COMPILER (XINGHUO BIF) ACTIVATE Compile Solidity Contracts (Xinghuo BIF) SOLIDITY STATIC ANALYSIS ACTIVATE Checks the contract code for security vulnerabilities and bad practices. SOLIDITY UNIT TESTING ACTIVATE Fast tool to generate unit tests for your contracts STARKNET ACTIVATE Compile and deploy contracts with Cairo, a native smart contract language for Starknet. TENDERLY ACTIVATE Remix & Tenderly Project Integration. Verify Contracts. Import To Remix From your Tenderly project. WALLET CONNECT ACTIVATE Use an external wallet for transacting ZKSYNC ACTIVATE Compile and deploy smart contracts for zkSync Era. ZOKRATESBETA ACTIVATE ZoKrates toolbox for zkSNARKs on Ethereum PLUGIN MANAGER PERMISSIONS Close NO PERMISSION REQUESTED YET. OKCancel Permissions LOCAL PLUGIN Close Plugin Name (required) Display Name Api (comma separated list of method names) Plugins it can activate (comma separated list of plugin names) Url (required) TYPE OF CONNECTION (REQUIRED) Iframe Websocket LOCATION IN REMIX (REQUIRED) Side Panel Main Panel None OKCancel WorkspacesCreateRenameDeletedefault_workspace - connect to localhost - * Create New FileCreate New FolderPublish all the current workspace files (only root) to a github gistLoad a local file into current workspace * contracts * scripts * tests * README.txt Close Close Close CompilerAdd a custom compiler with URLlatest local version - soljson-v0.8.7+commit.e28d00a7.js0.8.25+commit.b61c2a910.8.24+commit.e11b9ed90.8.23+commit.f704f3620.8.22+commit.4fc1097e0.8.21+commit.d9974bed0.8.20+commit.a1b79de60.8.19+commit.7dd6d4040.8.18+commit.87f61d960.8.17+commit.8df45f5f0.8.16+commit.07a7930e0.8.15+commit.e14f27140.8.14+commit.80d49f370.8.13+commit.abaa5c0e0.8.12+commit.f00d73080.8.11+commit.d7f039430.8.10+commit.fc4108300.8.9+commit.e5eed63a0.8.8+commit.dddeac2f0.8.7+commit.e28d00a70.8.6+commit.11564f7e0.8.5+commit.a4f2e5910.8.4+commit.c7e474f20.8.3+commit.8d00100c0.8.2+commit.661d11030.8.1+commit.df193b150.8.0+commit.c7dfd78e0.7.6+commit.7338295f0.7.5+commit.eb77ed080.7.4+commit.3f05b7700.7.3+commit.9bfce1f60.7.2+commit.51b20bc00.7.1+commit.f4a555be0.7.0+commit.9e61f92b0.6.12+commit.27d517650.6.11+commit.5ef660b10.6.10+commit.00c0fcaf0.6.9+commit.3e3065ac0.6.8+commit.0bbfe4530.6.7+commit.b8d736ae0.6.6+commit.6c089d020.6.5+commit.f956cc890.6.4+commit.1dca32f30.6.3+commit.8dda95210.6.2+commit.bacdbe570.6.1+commit.e6f7d5a40.6.0+commit.26b700770.5.17+commit.d19bba130.5.16+commit.9c3226ce0.5.15+commit.6a57276f0.5.14+commit.01f1aaa40.5.13+commit.5b0b510c0.5.12+commit.7709ece90.5.11+commit.22be85920.5.11+commit.c082d0b40.5.10+commit.5a6ea5b10.5.9+commit.c68bc34e0.5.9+commit.e560f70d0.5.8+commit.23d335f20.5.7+commit.6da8b0190.5.6+commit.b259423e0.5.5+commit.47a71e8f0.5.4+commit.9549d8ff0.5.3+commit.10d17f240.5.2+commit.1df8f40c0.5.1+commit.c8a2cb620.5.0+commit.1d4f565a0.4.26+commit.4563c3fc0.4.25+commit.59dbf8f10.4.24+commit.e67f01470.4.23+commit.124ca40d0.4.22+commit.4cb486ee0.4.21+commit.dfe3193c0.4.20+commit.3155dd800.4.19+commit.c4cbbb050.4.18+commit.9cf6e9100.4.17+commit.bdeb9e520.4.16+commit.d7661dd90.4.15+commit.8b45bddb0.4.15+commit.bbb8e64f0.4.14+commit.c2215d460.4.13+commit.0fb4cb1a0.4.12+commit.194ff0330.4.11+commit.68ef58100.4.10+commit.f0d539ae0.4.9+commit.364da4250.4.8+commit.60cc16680.4.7+commit.822622cf0.4.6+commit.2dabbdf00.4.5+commit.b318366e0.4.4+commit.4633f3de0.4.3+commit.2353da710.4.2+commit.af6afb040.4.1+commit.4fc6fc2c0.4.0+commit.acd334c90.3.6+commit.3fc68da50.3.5+commit.5f97274a0.3.4+commit.7dab89020.3.3+commit.4dc1cb140.3.2+commit.81ae2a780.3.1+commit.c492d9be0.3.0+commit.11d673690.2.2+commit.ef92f5660.2.1+commit.91a6b35f0.2.0+commit.4dc2445e0.1.7+commit.b4e666cc0.1.6+commit.d41f8b7c0.1.5+commit.23865e390.1.4+commit.5f6c3cdf0.1.3+commit.028f561d0.1.2+commit.d0d36e30.1.1+commit.6ff4cd6 Include nightly builds LanguageSolidityYul EVM Versioncompiler defaultlondonberlinistanbulpetersburgconstantinoplebyzantiumspuriousDragontangerineWhistlehomestead Compiler Configuration Auto compile Enable optimization Hide warnings compiler is loading, please wait a few moments.Compile <no file selected> No Contract Compiled Yet Close OK Close Close Close Environment JavaScript VM (London) JavaScript VM (Berlin) Injected Web3 Web3 Providercheck out docs to setup Environment VM Account 0x5B3...eddC4 (100 ether)0xAb8...35cb2 (100 ether)0x4B2...C02db (100 ether)0x787...cabaB (100 ether)0x617...5E7f2 (100 ether)0x17F...8c372 (100 ether)0x5c6...21678 (100 ether)0x03C...D1Ff7 (100 ether)0x1aE...E454C (100 ether)0x0A0...C70DC (100 ether)0xCA3...a733c (100 ether)0x147...C160C (100 ether)0x4B0...4D2dB (100 ether)0x583...40225 (100 ether)0xdD8...92148 (100 ether) Sign a message using this account key Gas limit Value WeiGweiFinneyEther Contract No contract compiled yet or compilation failed. Please check the compile tab for more information.ABI file selected No compiled contracts or At Address * Transactions recorded 0 Deployed Contracts Currently you have no contract instances to interact with. Close Close Close Close OK Zoom outZoom in * Home Scroll to see all tabs 1 Enter to Rename, Shift+Enter to Preview IMPORT FROM Close Import Close Close Remix IDE FEATURED PLUGINS Solidity StarkNetL2 Solhint linter LearnEth Sourcify More FILE New File Open Files Connect to Localhost Download Backup Restore Backup LOAD FROM: GistGitHubIpfshttps RESOURCES Documentation Gitter channel Featuring website Old experience TwitterMedium blogs 27 Mar REMIX RELEASE V0.46.0 Author: Aniket THE BIG NEWS * Functionality of the Cancun fork works in Remix VM * Latest Solidity compiler version set to 0.8.25 with Cancun as default EVM version CANCUN FORK IN THE REMIX VM So you want to practice you use of transient storage or other Cancun fork features? Well now you can! The default EVM version of the Remix VM is now Cancun. DEFAULT SOLIDITY VERSION IS NOW 0.8.25 The Solidity compiler’s default version is now 0.8.25. When you open the Advanced setting’s panel, you’ll see the EVM choices. The default selection is Cancun. You could also specify Cancun version — but the default version is Cancun. THANK YOU REMIX USERS! Please report any problems you find in Remix. And, as always, please send us any suggestions about changes you’d like to see in Remix, or any functionality you think would be useful to add. For future releases, we are looking for more Beta Testers. If you are interested in helping this effort please fill out this form. We no longer follow the discussions on Gitter, so we encourage you to move over to our Discord server for community support. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.46.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 15 Mar REMIX RELEASE V0.45.0 Author: Rob Stupay THE BIG NEWS * Saved contracts are now called pinned contracts * Remix VM state can be saved * Fetch verified contracts from Blockscout PINNING CONTRACTS Contracts deployed to any network, except the Remix VM, can be now be pinned. Pinning to the Remix VM is coming soon. Also note that we have altered the name from “Saved” to “Pinned”. Clicking the pin icon in the Deployed/Unpinned section will… for lack of a better word, pin it in the Pinned Contracts section. When you reload Remix, and select the same network and the same workspace as the pinned contracts, those contracts will be loaded and ready for you. When a contract is pinned, Remix saves it in the File Explorer. > The network in the image above with the ID 39438118 is the Ephermery network. > It’s a test net that refreshes every seven days — so their faucet is easy and > generous. REMIX VM STATE IS NOW SAVED Now, by default, when you refresh the IDE, the Remix VM — the in-browser test chain—will maintain its state rather than refreshing. The state is stored in the File Explorer — which itself is stored in indexedDB —when using Remix without Remixd. To turn off the saving of the Remix VM’s state, uncheck the Save environment state in the Settings panel. FETCH A VERIFIED CONTRACT FROM ANY CHAIN ON A BLOCKSCOUT EXPLORER A verified contract from any Blockscout chain explorer can be opened in Remix using some URL parameters. Use these URL params: #address={contract_address}&blockscout={blockscout_domain} For example, with a Blockscout URL like this one: https://optimism.blockscout.com/address/0x73d5C2f4EB0E4EB15B3234f8B880A10c553DA1ea?tab=contract Open the contract in Remix with this url: https://remix.ethereum.org#address=0x73d5C2f4EB0E4EB15B3234f8B880A10c553DA1ea&blockscout=optimism.blockscout.com FETCH BLOCKSCOUT VERIFIED CONTRACTS ON ETHEREUM MAINNET Do you know about the trick for fetching verified contracts on Etherscan?We’ve implemented the same trick for Blockscout! Try it out: * Go to Blockscout.com and select a verified contract on Ethereum. * Take a URL like this one: https://eth.blockscout.com/address/0x03FF864F65A69E6C025F68F5695fA243F8d2d61B?tab=contract * Swap the eth.blockscout.com for remix.ethereum.org and the contract will load in Remix! https://remix.ethereum.org/address/0x03FF864F65A69E6C025F68F5695fA243F8d2d61B?tab=contract THANK YOU LOVELY REMIX USERS - WE PIN YOU! Please report any problems you find in Remix. And, as always, please send us any suggestions about changes you’d like to see in Remix, or any functionality you think would be useful to add. For future releases, we are looking for more Beta Testers. If you are interested in helping this effort please fill out this form. We no longer follow the discussions on Gitter, so we encourage you to move over to our Discord server for community support. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.45.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 28 Feb REMIX RELEASE V0.44.0 Author: Rob Stupay THE BIG NEWS * Save deployed contracts * Sindri integration * Vyper compiler updates SAVING DEPLOYED CONTRACTS Did you remember the address of that contract you recently deployed? Now, when deploying to a public chain (using the Injected Provider), Remix has a save button. Deploy a contract with the Injected Provider Environment, and the next time you come back to Remix and select Injected Provider, your contract will be there! You just need to connect to the same chain using Injected Provider. SINDRI INTEGRATION Sindri is a service for computing ZK Proofs remotely. To try out this integration, load a Circom template and then in the hamburger menu at the top of the File Explorer choose Add Sindri ZKScripts. A Readme file will open with more information about this service. VYPER UPDATES Hey Vyper fans, have you tried the Vyper plugin yet? We’ve put the choice of Remote or Local compiler in the Advanced Settings accordion box. The default choice is the remote compiler. THANK YOU INDUSTRIOUS REMIX USERS YOU CLEAN THE DUST OUT OF INDUSTRIOUS! Please report any problems you find in Remix. And, as always, please send us any suggestions about changes you’d like to see in Remix, or any functionality you think would be useful to add. We no longer follow the discussions on Gitter, so we encourage you to move over to our Discord server for community support. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.44.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 14 Feb REMIX RELEASE V0.43.0 Author: Rob Stupay THE BIG NEWS * File Explorer: hover icons and right-click compile Vyper * Vyper compiler updates * Indication for external plugins * WalletConnect updated FILE EXPLORER UPDATES HOVER ICONS IN FILE EXPLORER Now in the File Explorer, when you hover over a file or folder to the right there will be some tool icons. RIGHT-CLICK COMPILE VYPER FILE So you’ve got a Vyper file in Remix and want to compile it AND you are lazy… what are you going to do? With this release, right-click the file: The Vyper compiler plugin will automatically load, and you can see your compiler errors there (if you have any). VYPER COMPILER UPDATES The Vyper compiler now shows compiler errors in cards below the Compile button. INDICATION FOR EXTERNAL PLUGINS Remix has plugins that the Remix team maintains, and plugins that external teams develop and maintain. The Remix team plugins have a green check mark, and now external ones have a warning symbol. WALLETCONNECT PLUGIN UPDATED * Updated Web3Modal SDK to v3.5.7 * Added support for EIP-6963 * Added support for more chains Thanks so much to glitch-txs for contributing this PR! BUG FIXES * Flattening now works with Solidity remappings. Thanks to nakul1010 for reporting this issue. * We fixed a bug for copying an address when using the External Http Provider. Thanks, EthanBlockson THANK YOU, DEAR REMIX USERS Please report any problems you find in Remix. And, as always, please send us any suggestions about changes you’d like to see in Remix, or any functionality you think would be useful to add. We no longer follow the discussions on Gitter, so we encourage you to move over to our Discord server for community support. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.43.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 01 Feb REMIX RELEASE V0.42.0 Author: Rob Stupay THE BIG NEWS * Ask GPT for Circom ZKP compiler errors/warnings * Default Solidity compiler set to 0.8.24 with support of ‘Cancun’ EVM * Workspace Template ‘Uniswap v4 Periphery’ renamed to ‘Uniswap v4 Template’ GPT HELP FOR THE ERRORS IN CIRCOM Have you tried the Circom compiler in Remix? If not click here to load Remix with the Circom plugin. If you have tried it but don’t understand anything about it, check this article article with an intro to ZK Proof terms and this article about how to use the Circom plugin. And finally for you dear ZK Dev or ZK Dev wannabe who has tried it out but doesn’t understand the error messages, you can now click ASK GPT for help. NEW DEFAULT SOLIDITY VERSION AND NEW DEFAULT EVM VERSION Is it my fault or your fault? No, its just the default! OK stop groaning…and notice that Remix is up to date with the coming network upgrade. The default compiler is Cancun and the default Solidity version is 0.8.24. UNISWAP V4 TEMPLATE We have had the Uniswap v4 template in Remix — but it was previously called Uniswap v4 Periphery. So now we have renamed it to something that you can identify more easily. To load this template in the File Explorer, click the hamburger menu and then select Create. You’ll see it in the Uniswap V4 section. THANK YOU LUSCIOUS REMIX USERS AND V4 HACKERS Please report any problems you find in Remix. And, as always, please send us any suggestions about changes you’d like to see in Remix, or any functionality you think would be useful to add. We no longer follow the discussions on Gitter, so we encourage you to move over to our Discord server for community support. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.42.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 11 Jan REMIX RELEASE V0.40.0 Author: Aniket THE BIG NEWS * A Revamped Vyper compiler that compiles the latest version and more! * Circom v2.1.6 support * Uniswap v4 templates VYPER VYPER AND VYPER -> A NEW VYPER COMPILER FOR REMIX! Remix has teamed up with ApeWorX for a new Vyper compiler. This means you can compile Vyper contracts in Remix and use not only the latest version but nearly all Vyper versions! Compiling is either done remotely or locally. And to compile a file you need to have a Vyper file as the active file in the File Explorer, which you can get by clicking the Clone Vyper examples repository button. REMOTE COMPILER The remote compilation is done using our remote containerized service that supports the official Vyper plugin for the Ape framework that ApeWorX maintains. LOCAL COMPILER The local compilation can be done by connecting Remix Online IDE to your file system with Remixd and then running a docker container that runs the Ape framework. Click here for more info about this setup. In the near future, (spoiler alert!!!) a major update is coming to Remix Desktop, you’ll be able to run everything locally — both Remix, and the new Vyper compilers (still in Docker, of course). SPECIFYING VYPER & EVM VERSIONS To specify the version of Vyper or the EVM version, add a comment at the top of your .vy code like in the example below: HERPETOLOGICALLY* CURIOUS? LEARN VYPER! (*the study of snakes, not herpes) Don’t know about Vyper? Check out some Vyper files by hitting the clone button. This will load a repo full of Vyper files, so slither over to the File Explorer to check them out. Take note: this repo could take up to a minute to load, so take a deep breath or two, they’ll load. To learn more about Vyper, read through the Vyperlang Readthedocs, check Snekmate, and join the Vyper discord server! A URL TO LOAD REMIX WITH THE VYPER COMPILER ACTIVATED Want to send someone to Remix with the Vyper plugin loaded and active? Use this url: https://remix.ethereum.org/#activate=vyper VIEWING COMPILER ERRORS When there are compiler errors in the Vyper plugin, the icon will have a warning icon. Mouseover the icon to get the error with its line number. SCARED OF UNISWAP V4?? If you want to start playing with Uniswap v4, come check out our new Uniswap v4 templates. Check them out, and if you get confused, ask ChatGPT for help. Tip: you can ask ChatGPT in the Remix console by starting with “gpt”. For example: gpt when would you use a uniswap multisigswap contract? LOADING UNISWAP TEMPLATES Go to the hamburger menu to create a new Workspace. In the Create Workspace modal’s template select box, choose one under the Uniswap V4 section. To load these templates, Remix clones them from their repos, so it can take 10–60 seconds for them to load, depending on your connection speed. These Uniswap v4 files are coming from Cookbook.dev. As such, the Remix COOKBOOK.DEV plugin is activated, and it will write the template files into the File Explorer. But because these files are coming from outside Remix, you will need to agree to the Cookbook.dev plugin writing files into the File Explorer. Its a bit easier to check the Remember this choice checkbox. HOOKBOOK MULTISIGSWAPHOOK The MultiSigSwapHook contract can be used when you want to ensure a swap operation on Uniswap (or a similar platform) has been approved by multiple parties before it can be executed. BREAKTHROUGH LABS UNISWAP V4 HOOKS for more info about these files see: https://github.com/Breakthrough-Labs/Uniswapv4Hooks UNISWAP V4 PERIPHERY Uniswap v4 is a new automated market maker protocol that provides extensibility and customizability to pools. v4-periphery hosts the logic that builds on top of the core pool logic like hook contracts, position managers, and even possibly libraries needed for integrations. The v4-periphery contracts in this repository are still in development, and further periphery contracts have not yet been built. see: https://github.com/Uniswap/v4-periphery CIRCOM V2.1.6 In Remix you can now run the latest Circom compiler. So take your ellyptic curves through Circom’s latest. THANK YOU REMIX USERS — WITH OR WITHOUT HERPETOLOGICAL KNOWLEDGE Please report any problems you find in Remix. And, as always, please send us any suggestions about changes you’d like to see in Remix, or any functionality you think would be useful to add. We no longer follow the discussions on Gitter, so we encourage you to move over to our Discord server for community support. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.40.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 19 Dec CIRCOM IN REMIX PART 2: HOW TO USE Author: Rob Stupay The Remix Circom plugin is a great tool for getting started with writing ZK circuits in Circom. The Remix innovation here is that we’ve got the Circom compiler working in the browser. This makes playing with Circom easier because… well, because it’s Remix, so no setup is needed. Just keep in mind that the plugin is in alpha, so it’s not for production use yet. Under the hood, the Remix Circom plugin’s GUI (graphical user interface) organizes your data into the correct parameters for the methods in snarks.js, so you don’t need to dig too deep there unless you want to. And if you want to, we also have scripts you can adapt that use snarks.js and ethers.js. LINK TO PART 1 Part 1 Circom in Remix article (the definitions) COMPONENTS OF THE PROOF At a high level, to make a proof with a ZK system, you need: 1. The inputs — both private and public 2. The circuit 3. The witness 4. The constraint system 5. The signals ( the inputs, outputs, and intermediary steps of the circuit) 6. A special set of random numbers (from the trusted setup- the Perpetual Powers of Tau ceremony) If these components don’t make sense, please see Part 1 of this series. The proof can be generated and verified, and it can be submitted for on-chain verification via a Solidity file which we will be generating later in this article. Let’s take a walk through the Circom compiler plugin. REMIX’S SIMPLEST ZK SNARK EXAMPLE Let’s choose a very basic example to start with. Remix has added some Workspace Templates for Circom. When you choose one of these templates, the Circom compiler will automatically activate. To see these templates, create a new Workspace by clicking on the hamburger menu in the File Explorer and choosing the Create option. Then, in the modal that comes up, click the Choose a template pulldown menu, and the following list will come up: The most basic Circom example file is the simple.circom file which is located in the Semphore template. So to start, choose this template. Here’s the compiler: In order to use the plugin you will need to have a .circom file active in the File Explorer, so choose simple.circom. Then go to the Circom compiler and the compile button can be used. > Note: If the active file in the Editor is not a Circom file, the compile > button in the plugin cannot be clicked. You can either hit the Compile button or use the Ctrl+S keyboard shortcut as shown above in the tool-tip. The compilation result will be stored in a .wasm file in the .bin directory that is inside the circuits folder. Next, create the R1CS constraint file by clicking the button. Generate R1CS button with tooltip This creates the simple.r1cs file in the .bin directory. Generating the R1CS file can take longer than compiling the .circom file. COMPUTE WITNESS The prover inputs their private info for the circuit in this section. Now dial down the Compute Witness caret. I’ve input the following: So my private info is 3 & 4. When I hit the compute button, a .wtn file is created in the .bin folder. FILES GENERATED SO FAR We now have: * simple.wasm (the compilation result) * simple.r1cs (the constraint file) * simple.wtn (the witness file) Notice there is no proof file, nor have we generated a Solidity file for doing an on-chain verification of the proof. Currently in the Remix Circom plugin, these steps can only be done by running scripts. USING THE SCRIPTS IN THE CIRCOM COMPILER Let’s switch to a different Workspace Template to go through the run_setup and run_verification scripts. Hash Checker template has fewer parameters in its scripts than the Semphore template does. So load this template up. BEFORE RUNNING A SCRIPT Scripts need a compiled circom file to work with. So before running a script in this plugin, compile calculate_hash.circom (by making it the active file in the Editor and then in the Circom plugin’s GUI, by clicking the compile button). This will generate the file calculate_hash.wasm in the ./circuits/.bin folder. RUNNING RUN_SETUP.TS 1. MAKES THE R1CS FILE The run_setup.ts script creates the .r1cs file in the circuits/.bin directory, just like the Generate R1CS button did. The setup script will then take the special randomness of the Powers of Tau ceremony, and will contribute to it and then will add its phase2 as described in the snarks.js docs and in the Circom docs. > The trusted setup consists of two parts: > • The powers of tau, which is independent of the circuit > • The phase 2, which depends on the circuit > - from Circom Docs 2. MAKES THE VERIFICATION KEYS The verification keys will be used for verifying the proof. The script generates and stores them in this file: zk/build/verification_key.json 3. MAKES THE FILE FOR ONCHAIN VERIFICATION The run_setup.ts script will also generate the Solidity file for verifying the proof. It will also be saved in this directory. 4. MAKES ZK_SETUP.TXT Finally the zk_setup.txt will be generated and saved in this directory, which will be used for getting the zkey_final parameter when running run_verification.ts. Here’s what the build folder will contain after running run_setup.ts: RUNNING RUN_VERIFICATION.TS This script makes the proof and then will run the verification. The inputs for the proof include: 1. The private information: these are hard coded on lines 31–34 2. The other preliminary files that were created in run_setup.ts, including: calculate_hash.r1cs, calculate_hash.wasm, zk_setup.txt, verification_key.json It will create the proof as well as the public signals with this line: const { proof, publicSignals } = await snarkjs.groth16.prove(zkey_final, wtns); And then, it will take the proof, the public Signals, and will verify them with this line: const verified = await snarkjs.groth16.verify(vKey, publicSignals, proof, logger); From here, see if you can use the zk_verifier.sol file. Also, try inputting a wrong value into the proof (see line 36) to see what will happen. COMMENTS WELCOME AND NEEDED The Remix Circom plugin is in Alpha, so please send your comments. One of our next updates to the plugin will a button for generating a proof. More Remix Circom Workspace templates are also coming. Join our Discord server and comment there, or send us an email to remix@ethereum.org! We will have articles about each of the Circom Remix Workspaces: Semaphore, Hash Checker, and the Rate Limiting Nullifier later in this series. -------------------------------------------------------------------------------- Circom in Remix Part 2: How to use was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 19 Dec CIRCOM IN REMIX PART 1: DEFINITIONS Author: Rob Stupay Remix now has a Circom Compiler for running circuits and generating ZK Proofs. This is Part 1 of a 2-part series about Circom in Remix. This article goes through ZKProof vocabulary and concepts so you can understand the interface of the Remix Circom compiler. But, if you want to jump ahead, here’s the link to Part 2. In order to work with Circom, you should go through their docs and their ZK Background page. Many of the definitions contained in this article are from this excellent video, Arithmetic Circuits in Circom v2.0 by Darth Cy. BASIC ELEMENTS OF A ZK-SNARK A ZKProof, contains these elements: * Public inputs that are known to everyone * Private inputs that are only known to the prover, who claims that these are the right inputs for solving the problem. * Problem: a function that takes private and public inputs. It is also the circuit, which we will get into below. * Prover: a person who knows the solution (the private inputs) for the problem. The prover runs the program that executes the circuit and generates a proof. * Verifier: a program or a person that takes a proof (with the public inputs), and can verify its validity without needing the private inputs. ZK PROOF IS IN A MATHEMATICAL CONTEXT The prover wants to prove to the verifier that they have a piece of information —while hiding this information. In the context of Circom (and most ZK Proofs), the information is a number or an encoding — like a hash of some text. And in this mathematical context, the private input will need to satisfy a criteria — like an equation. THE MECHANISM OF A ZK PROOF In a proof, there is the original, private input which is encoded and used in a polynomial equation let’s call it f(x). Then a prover comes along and says they have the same private input which is also encoded and used in another polynomial equation g(x) , let’s call this the expected polynomial equation. The verification system is a way of comparing the two equations by feeding them arbitrary data and checking that the results are the same. The arbitrary data must indeed be random, otherwise the proof of the private input could be faked. Now let’s get into a technical glossary of the basics. CIRCOM Circom is a low-level language that describes mathematical procedures by simplifying complex mathematical operations into circuits. CIRCUITS In the context of Circom, a circuit is a mathematical equation — a polynomial equation. It is written with a series of logic gates. The logic gates of Circom can either be where two numbers are multiplied, or where an arbitrary set of numbers are added. So this equation: is rewritten as steps, where x is multiplied by x, and then the result of that is multiplied by y, and that result is added to 6. This is also referred to as “flattening” the equation. Then, each step of the equation is a multiplication or summation logic gate. By breaking down a complex equation into smaller steps, there will be intermediary outputs. These intermediary outputs in the formula above are m1 and m2. SIGNALS Signals can be the original inputs, the intermediate outputs, or the final output. TEMPLATES Templates are the building blocks of the Circom language. They take signals as their inputs, and their outputs are also signals. In other languages, templates are known as classes. But take note that in Remix, templates, used in the context of Workspaces, are the files that load with a new Workspace. WITNESS The witness is generated from the signals which includes all inputs, outputs and intermediary signals. The intermediary signals are an ingredient in the witness to show that the circuit went through an honest execution. To generate the proof, only the witness is needed. CONSTRAINTS These are the individual steps in the computation of an equation. R1CS — RANK 1 CONSTRAINT SYSTEM R1CS is a protocol for organizing the constraints. For more, see this article. Basically, R1CS flattens the equation and organizes the arrangement. GROTH16 Groth16 is a proving system. As described above, verification is done by sending a set of arbitrary data to the circuit and checking that it returns the same results as the circuit derived from the original private input. RANDOMNESS It is essential that the arbitrary data fed into the circuits are truly random, otherwise a proof could be forged. The process of getting the random points is the Trusted Setup. Also see Darth Cy’s video about Groth16, as well as Vitalik Buterin’s 2016 article. TRUSTED SETUP The trusted setup is the process of creating a dataset of random numbers. It involves any number of parties contributing randomness (also called “entropy”) to a dataset. The trusted setup is called a ceremony, and the specific one for Groth16 is the Powers of Tau ceremony. Once the randomness from the ceremony is encapsulated into a randomness file, it is prepared for phase2. PHASE2 Groth16 needs two types of random number sets: * a set from a trusted setup and that have nothing to do with a specific circuit * Phase2 number sets which are specific to a circuit The preparation the Phase2 dataset is a process that first involves the creation of a final ceremony file. Then the circuit you are working with is “intertwine” and a ZKEY file is produced. The ZKEY file is required every time you want to generate a proof for a particular circuit. Typically, additional randomness is added to the ZKEY file. Like French cooks who always add butter, ZKP chefs are always adding randomness to their recipes. Read more about Phase2 in the snarksjs docs. GENERATING A PROOF To generate the proof you need: 1. Circuit-specific witness calculator — a program, which calculates witness from input signals (private and public) 2. ZKey file which is a representation of the circuit 3. input.json — a file with public and private signals. THE BASIC BACKGROUND IS DONE! …there’s more to study, but that’s will get you familiar with most of the terms in the Circom compiler So it’s time to find the proof in the pudding. And by the way, the proof in this pudding is not in the eating, it is in evaluating the polynomials. So get your hands out of the dessert and into some honestly random data and circuits. Learn about how to use Remix’s Circom compiler in Part 2 , which you will find here. -------------------------------------------------------------------------------- Circom in Remix Part 1: Definitions was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 04 Dec REMIX RELEASE V0.38.0 Author: Aniket THE BIG NEWS * New Circom ZKP workspace templates: Hash Checker & Rate Limiting Nullifier * Define Solidity remappings in remappings.txt file * Alpha release for Solidity co-pilot * Run free function for any selection environment HASH CHECKER & RATE LIMITING NULLIFIER TEMPLATES FOR CIRCOM Building on our previous release that included a Semaphore template, we added more templates for Circom. To get to these templates, go to the hamburger menu in the File Explorer and make a new workspace and in the modal that comes up choose Now I realize Rate-Limiting Nullifier sounds like school yard epithet. > “You’re so boring!” > “Well you‘re a Rate-Limiting Nullifier” But Rate Limiting Nullifiers are used for limiting the number of “something” that a user can do — for example the number of allowable post to a form and once that number is exceeded then the offending person’s identity is revealed. It’s used in Zero Knowledge Proofs and it gets at the algebraic nature of Circom. Check out these new templates! SOLIDITY REMAPPINGS IN REMIX Create a file called remappings.txt in the root of your workspace and place your Solidity Remappings there. This will be especially familiar to you Foundry users. SOLIDITY COPILOT PLUGIN (ALPHA RELEASE) Check out our first forays into a version of Copilot for Solidity so you can get code suggestions in the editor. Then start coding away and see the suggestions. Adjust the Copilot settings in the Settings panel: THIS PLUGIN IN ALPHA Please join our discord and send us your comments about this plugin. THANK YOU KNOWLEDGEABLE REMIX USERS Please report any problems you find in Remix. And, as always, please send us any suggestions about changes you’d like to see in Remix, or any functionality you think would be useful to add. We no longer follow the discussions on Gitter, so we encourage you to move over to our Discord server for community support. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.38.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 08 Nov REMIX RELEASE V0.37.0 Author: Rob Stupay THE BIG NEWS * Circom plugin and ZKP Circom Semaphore template * ERC auto-complete will load the file * The Remix UI now translated into Spanish, French, Italian, and Simplified Chinese * Load Recent Workspaces * Start Coding Button * Updates for compatibility with OpenZeppelin v5.0 contracts CIRCOM PLUGIN AND ZKP CIRCOM SEMAPHORE TEMPLATE We’ve added a Semaphore Circom template which you can load by creating a new Workspace. When the template loads, our new Circom compiler plugin will load. Start playing with ZK Proofs in Remix! ERC AUTO-COMPLETE AND FILE LOADING Remix now auto-completes all the ERC files when typing “erc”. The selected ERC file will load in the Editor. Try this out in an empty file: And when you select one, the ERC file will be printed out, like this: THE REMIX IS NOW TRANSLATED INTO SPANISH, FRENCH, ITALIAN, AND SIMPLIFIED CHINESE The language can be chosen in three places: * At the top right of the Home Tab: * At the bottom of the Settings Panel * Via a URL by using the lang parameter with the language abbreviation: Big shout-out to our Spanish (Juan David), French (Mehdi Amari), Italian (matlemad). And another huge shout-out to @drafish who contributed the original i18n PRs as well as doing the Chinese translations along with Mocca. (Actually the Chinese translations have been around for a few months now). In case you didn’t know, the Remix docs are available in Chinese, Spanish, French, and Italian. To contribute to the translation of documentation, go to CrowdIn — Remix Translation our translation management platform. To contribute to the translation of the Remix UI go to CrowdIn-Remix UI. HOME TAB: RECENT WORKSPACES Your recent workspaces are now listed: HOME TAB: START CODING The Start Coding button will open up a new Workspace called Playground and will load a HelloWorld file in the Editor. SUPPORTING OPENZEPPELIN V5 We’ve updated our OpenZeppelin templates and have made the necessary updates to support the latest release of OpenZeppelin. THANK YOU WONDEROUS REMIX USERS Please report any problems you find in Remix. And, as always, please send us any suggestions about changes you’d like to see in Remix, or any functionality you think would be useful to add. For future releases, we are looking for more Beta Testers. If you are interested in helping this effort please fill out this form. We no longer follow the discussions on Gitter, so we encourage you to move over to our Discord server for community support. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.37.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... Clear console 0 listen on network - Welcome to Remix 0.21.4 - You can use this terminal to: * Check transactions details and start debugging. * Execute JavaScript scripts: - Input a script directly in the command line interface - Select a Javascript file in the file explorer and then run \`remix.execute()\` or \`remix.exeCurrent()\` in the command line interface - Right click on a JavaScript file in the file explorer and then click \`Run\` The following libraries are accessible: * web3 version 1.5.2 * ethers.js * remix (run remix.help() for more info) > Close Close Close Close WELCOME TO REMIX IDE × Click to launch the Home tab that contains links, tips, and shortcuts.. * * * BackNext