remix-compile-sol.com Open in urlscan Pro
2606:4700:3034::6815:4eac  Public Scan

URL: https://remix-compile-sol.com/
Submission: On April 27 via api from US — Scanned from DE

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="sidePanel" 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="mainPanel" 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

REMIX IDE
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
Remix VM (London) Remix VM (Berlin) Injected Provider - Metamask Web3
Providercheck out docs to setup Environment

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)
Copy value to clipboard
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 Clear instances list and reset recorder
Currently you have no contract instances to interact with.

Zoom outZoom in
 * Home


Scroll to see all tabs
1





Enter to Rename, Shift+Enter to Preview


QUICKLINKS

Guidefor migrating the old File System

Migration tools:

Basic migrationDownload all Files as a backup zipRestore filesfrom backup zip

Help:

Gitter channel Report on Github


REMIX

The Native IDE for Web3 Development

FEATURED PLUGINS

SolidityOptimismLearnEthSolhint linterSourcify More

FILE

New File

Open Files

Connect to Localhost

LOAD FROM:

GistGitHubIpfshttps

RESOURCES

Documentation

Gitter channel

Featuring website

Old experience

23 Apr



REMIX RELEASE V0.48.0

Author: Rob Stupay


THE BIG NEWS

 * Remix now supports multiple browser wallets — EIP-6963
 * PLONK scripts now included in all ZKP templates
 * CREATE2 for contract deployment
 * Update for customizing Gas Limit


USING MULTIPLE BROWSER WALLETS — EIP 6963

Before this release, Remix only worked with a single active browser wallet; only
one wallet browser extension could be active at a time. Now with this release,
Remix displays your active browser wallets in the Environments section of Deploy
& Run Transactions:


PLONK SCRIPTS IN THE ZKP TEMPLATES

In the ZK department, Remix has three Zero Knowledge Proof templates and a
Circom compiler. In this release, we’ve added scripts for running the PLONK
proving system. Now you can choose GROTH16 or PLONK.


CREATE2 FOR DEPLOYING CONTRACTS

A Contract’s address can be precomputed, before it is deployed, by using
create2 opcode.

Deploying a contract with CREATE2 can be a great technique for onboarding new
users to a DApp because you can fund an address and then deploy a contract to
that same address.

In the File Explorer’s hamburger menu, we’ve added a link to Add Create2
Solidity factory contracts.

When you click on the link, a lib folder will be added in the contracts folder
of your workspace.

In create2-factory.sol are two contracts: Create2Factory for deploying in a
Solidity way and Create2FactoryAssembly for deploying in an Assembly way. Also
included is a dummy contract for deploying.

Thanks to the user who submitted this feature request and to
solidity-by-example — the source of the Solidity file. For more info about
deploying with CREATE2, see this video.


UPDATE TO INTERFACE OF GAS LIMIT

In the Deploy & Run Transactions module, we have updated the interface for
GAS LIMIT.

The Estimated Gas is set to 3,000,000. For customizing the Gas Limit, click the
Custom option and edit amount in the input box can be changed.


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.

Join our Discord server for community support. Or, send us an email at
remix@ethereum.org!

--------------------------------------------------------------------------------

Remix Release v0.48.0 was originally published in Remix Project on Medium, where
people are continuing the conversation by highlighting and responding to this
story.

More...
11 Apr



REMIX RELEASE V0.47.0

Author: Aniket


THE BIG NEWS

 1. New AI tools using Remix’s Solidity Copilot
 2. Pin your contracts deployed in the VM
 3. DAppDraft: a plugin for generating a front-end


NEW AI TOOL: REMIX’S SOLIDITY COPILOT

Solidity Copilot is built on top of our Large Language Model (LLM) called
SolCoder. Solidity Copilot helps by offering coding suggestions.

The switch to turn on Solidity Copilot

There are three new icons at the top of the Editor. When clicked:

 * The switch icon activates Solidity Copilot.
 * The robot icon explains a contract.
 * The book icon links to Remix’s AI product documentation.

As you probably know, we have already integrated ChatGPT into Remix.

CODE COMPLETION WITH SOLIDITY COPILOT

With the Solidity Copilot switch on, just start typing. When you put a space
after a word, the Copilot will make a suggestion.

NOTE: the suggestion will take into account everything that preceded it in this
contract.

Hit tab to accept the suggestion.

MORE AI OPTIONS IN EDITOR’S RIGHT-CLICK MENU

Both ChatGPT and Solidity Copilot are integrated into the Editor’s Right-click
popup menu.

In this release, we added Explain this code, which uses Solidity Copilot and
not ChatGPT.

In all cases, the answer will be printed out in Remix’s Terminal.

EDITOR: ASK SOLIDITY COPILOT WITH ///

In the Editor, when the Solidity Copilot is on, you can ask it a coding question
with the /// prompt. For example:

/// write a function that returns an array with 3 elements from the function's parameters


PINNED CONTRACTS COME TO THE REMIX VM

We have extended pinning to include contracts deployed to any flavor of the
RemixVM. This also means that the state of the VM will be saved!

When you click the pin icon, the contract will appear in the pinned section and
will be there after you refresh.

NOTE: The list of pinned contracts are specific to which chain is currently
selected. For example, pinned contracts in the Remix VM (Cancun) will not show
up if the Injected Provider is selected.

USING THE SAVED REMIX VM BLOCKCHAIN IN COLLABORATIONS

The state of the VM is saved in a file in the File Explorer, and it will be
saved in your remote repository when you push the workspace there. And that
means your co-workers can auto-load the state of your Remix VM when they pull
from that repo.


DAPPDRAFT: A PLUGIN FOR GENERATING A FRONT-END

DappDraft is a huge step forward for creating the first iteration — the first
draft of a DApp’s front-end.

This plugin takes all the functions of a contract, allows you to show the ones
you want, and then publishes the DApp on a platform called Surge at a subdomain
of your choice.

Here’s how it works:

 * Deploy a contract to a public chain
 * Open up the deployed instance by clicking on the caret, and then click on the
   edit icon.

Now DAppDraft will appear in the main panel:

ONLY SHOW FUNCTIONS THAT ARE USEFUL FOR YOUR PRESENTATION

If you mouse over a function, an X will appear, so you can hide the function.
You can also reorder the listed functions by dragging the icon to the right of
the function (circled in red in the image above).

Each function also has an input box so you can provide instructions for
the user.

PUBLISHING THE DAPP WITH SURGE

At this point you’ll need to sign up, or sign in to Surge. Both signing in and
signing up use the same interface.

Also you’ll need to come up with a unique subdomain.

After you hit the submit button the DApp’s front end will be published on Surge
and you’ll see something like this:

In upcoming releases, we will be making some updates to this tool. Please send
us comments about any adjustments you’d like to have.

A big thank you & shoutout to @drafish for making this plugin!


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.

Join our Discord server for community support. Or, send us an email at
remix@ethereum.org!

--------------------------------------------------------------------------------

Remix Release v0.47.0 was originally published in Remix Project on Medium, where
people are continuing the conversation by highlighting and responding to this
story.

More...
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...


Clear console
0
listen on network

- Welcome to Remix 0.20.0-dev -

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







WELCOME TO REMIX IDE

×
Click to launch the Home tab that contains links, tips, and shortcuts..
 *  
 *  
 *  



BackNext