--- myst: html_meta: "description": "Find Remix IDE URLs, deep links, and URL parameters for loading workspaces, files, and plugins directly." "keywords": "remix ide url, remix links, remix parameters, remix ethereum org" --- # Remix URLs & Links with Parameters ## Main Remix URLs - Remix IDE Online is located at [https://remix.ethereum.org](https://remix.ethereum.org). - The alpha version of Remix is located at [https://alpha.remix.live](https://alpha.remix.live). This is not a stable version. - GitHub repository: [https://github.com/remix-project-org](https://github.com/remix-project-org). The README contains instructions for running Remix-IDE locally. - Remix Desktop is an Electron App. Here is the [release page](https://github.com/remix-project-org/remix-desktop/releases). - The Remix X account is [EthereumRemix](https://x.com/EthereumRemix). - The Remix Project Blog for release notes and articles is: [https://ethereumremix.substack.com](https://ethereumremix.substack.com). - Remix blog used to be: [https://medium.com/remix-ide](https://medium.com/remix-ide). Older release notes are here. - The [Remix Project](https://remix.live) is our info site about the tool and the project. Remix is an open source project. Other projects have forked our codebase. The forked versions of Remix sites will look like Remix but are not Remix. So be careful! Forked sites are not maintained by us nor endorsed by us. ## Remix with URL parameters Using Remix with URL parameters will load the tool in the following ways: Remix URL parameters follow these conventions: - **`?#param=value`**: a query string (`?`) immediately followed by a hash fragment (`#`). `value` can be a plugin name, a comma-separated list of plugin names, a boolean (`true`/`false`), a theme name, a base64-encoded string, or a compiler version string. Used to activate or deactivate plugins, set a theme, minimize panels, load a base64-encoded file, and set a specific compiler build version. - **`#param=value`**: a hash fragment only, with no preceding query string. `value` can be a URL, an Ethereum address, a boolean, or a language name. Used to load a file via URL, load a verified contract from Etherscan, enable auto-compile, select the compiler language, and load a custom compiler from a URL. - **`?param=value`**: a plain query string with no hash fragment. `value` is a Gist ID. Used to load a GitHub Gist into the File Explorer. - **`//`**: a double slash delimiter used within `call` and `calls` values to separate a plugin's name, function, and arguments (e.g. `fileManager//open//contracts/3_Ballot.sol`). - **`///`**: a triple slash delimiter used within `calls` to separate multiple plugin API calls from one another. ### Plugin management #### Activate a list of plugins The following example contains the URL parameter **activate** followed by **a comma separated list of plugins**. ```text https://remix.ethereum.org/?#activate=LearnEth,noir-compiler ``` **The last plugin in the list will gain the focus.** When you use the activate list, all other plugins that a user had loaded will be deactivated. This does not apply to the File Explorer, Solidity Compiler, Deploy & Run, the Plugin Manager, and the Settings modules. ```{note} In a Remix URL parameter, a plugin is referred to by its **name** as specified in its profile in the [Remix Plugins Directory repository](https://github.com/remix-project-org/remix-plugins-directory). To quickly get a plugin's name go to {doc}`Plugin List page ` of the docs and search for the plugin you want. There will be a link with the urls to activate the plugin. ``` To deactivate a list of plugins: ```text https://remix.ethereum.org/?#deactivate=debugger ``` #### Pass commands to a plugin's API via a URL param The URL parameter to issue a command is `call`. Following the `call` is a // (double slash) separated list of arguments. ```text call=plugin_name//function//parameter1//parameter2 ``` The URL below uses `activate` & `call`. It **activates** a number of plugins and **calls** the File Explorer to tell it to load one of the default Remix files: ```text https://remix.ethereum.org/?#activate=defiexplorer,solidity&call=fileManager//open//contracts/3_Ballot.sol ``` To load a specific tutorial in the LearnEth plugin: ```text https://remix.ethereum.org/?#activate=solidityUnitTesting,solidity,LearnEth&call=LearnEth//startTutorial//ethereum/remix-workshops//master//proxycontract ``` #### Make calls to a number of different plugins' APIs Use `calls` instead of `call` when you need to issue commands to multiple plugins in sequence. Where `call` targets a single plugin, `calls` chains multiple commands together, each separated by `///`. For example, the URL below activates a list of plugins, then calls the LearnEth plugin's API and the File Explorer's API in sequence: ```text https://remix.ethereum.org/?#activate=solidityUnitTesting,solidity,LearnEth&calls=LearnEth//startTutorial//ethereum/remix-workshops//master//proxycontract///fileManager//open//contracts/3_Ballot.sol ``` ### Loading content #### Load a file via a URL param into the Editor The `url` parameter takes a URL, loads it into the Editor and saves it in a Workspace called **code-sample**: ```text https://remix.ethereum.org/#url=https://github.com/remix-project-org/remix-project/blob/master/apps/remix-ide/contracts/app/solidity/mode.sol ``` ```{important} The **code-sample** workspaces are ephemeral and will not be persisted on a reload. To save a loaded **code-sample** workspace, rename the workspace. ``` #### Load a Solidity file in the Editor via an encoded base64 string The `code` parameter takes a base64-encoded string of Solidity source code and loads it into the Editor as a `.sol` file, saving it in a Workspace called **code-sample**. To generate the base64 string, use `btoa()` in the browser console or any online base64 encoder. ```text https://remix.ethereum.org/?#code=Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAoKcHJhZ21hIHNvbGlkaXR5IDAuOC40OwoKLyoqCiAqIEB0aXRsZSBXb25kZXJmdWxDb2RlCiAqIEBkZXYgV2VsY29tZSB0byBSZW1peAogKi8KY29udHJhY3QgWW91IHsKCiAgICBhZGRyZXNzIHByaXZhdGUgb3duZXI7CiAgICAKICAgIC8qKgogICAgICogQGRldiBTZXQgY29udHJhY3QgZGVwbG95ZXIgYXMgeW91QW5kWW91cldvbmRlcmZ1bFNlbGYKICAgICAqLwogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgeW91QW5kWW91cldvbmRlcmZ1bFNlbGYgPSBtc2cuc2VuZGVyOwoKICAgIH0KCiAgICAvKioKICAgICAqIEBkZXYgQ2hhbmdlIG1vb2QKICAgICAqIEBwYXJhbSBuZXdPd25lciBhZGRyZXNzIG9mIG5ldyBvd25lcgogICAgICovCiAgICBmdW5jdGlvbiBjaGFuZ2VNb29kKGFkZHJlc3MgbmV3TW9vZEFkZHIpIHB1YmxpYyB7CiAgICAgICAgb3duZXJNb29kID0gbmV3TW9vZEFkZHI7CiAgICB9Cn0= ``` #### Load contracts from Etherscan via address The `address` parameter takes an address and loads the **verified contract** found for the address on Ethereum mainnet and saves it into the `etherscan-code-sample` workspace of the File Explorer: ```text https://remix.ethereum.org/#address=0xdac17f958d2ee523a2206206994597c13d831ec7 ``` #### Load a Solidity contract from GitHub With a GitHub URL of a Solidity contract like this one: ```text https://github.com/remix-project-org/remix-project/blob/master/apps/remix-ide/contracts/app/solidity/mode.sol ``` Then delete the **GitHub** part and type `remix.ethereum.org` in its place, like this: ```text https://remix.ethereum.org/ethereum/remix-project/blob/master/apps/remix-ide/contracts/app/solidity/mode.sol ``` Remix will fetch the Solidity file and open it up in the File Explorer in a Workspace named **code-sample**. #### Load a GIST The `gist` parameter fetches all files from a GitHub Gist and saves them into a workspace named `gist-` in the File Explorer. ```text https://remix.ethereum.org/?gist=0fe90e825327ef313c88aedfe66ec142 ``` To also have the GIST visible in the Editor, use both `gist` & `call`: ```text https://remix.ethereum.org/?#activate=solidity,fileManager&gist=0fe90e825327ef313c88aedfe66ec142&call=fileManager//open//gist-0fe90e825327ef313c88aedfe66ec142/gridMix4.sol ``` To load the GIST, have it visible in the Editor, and activate a list of plugins: ```text https://remix.ethereum.org/?#activate=solidity,LearnEth&gist=0fe90e825327ef313c88aedfe66ec142&call=fileManager//open//gist-0fe90e825327ef313c88aedfe66ec142/gridMix4.sol ``` ### Compiler settings #### Load a specific version of the Solidity Compiler The `version` parameter pins the compiler to a specific build, which is useful for reproducibility or working with contracts that require a particular version. The version string follows the format `soljson-v+commit.`, where both the version number and commit hash are required. ```text https://remix.ethereum.org/?#version=soljson-v0.6.6+commit.6c089d02 ``` ```{note} You need to specify both the Solidity version and the commit. ``` To load a custom compiler from a URL instead: ```text https://remix.ethereum.org/#version=https://solidity-blog.s3.eu-central-1.amazonaws.com/data/08preview/soljson.js ``` To enable autoCompile: ```text https://remix.ethereum.org/#autoCompile=true ``` #### Select the language for the Solidity Compiler The `language` parameter sets the compiler language. Valid values are `Solidity` (the default) and `Yul`. Yul is an intermediate language used for low-level EVM programming and compiler development. ```text https://remix.ethereum.org/#language=Yul ``` ### UI / Appearance #### Minimize Remix panels The following URL will **close everything except the Main Panel & the icon panel** (the side and terminal are minimized). ```text https://remix.ethereum.org/?#embed=true ``` To minimize just the Side Panel, use this URL: ```text https://remix.ethereum.org/?#minimizesidepanel=true ``` To minimize just the terminal, use this URL: ```text https://remix.ethereum.org/?#minimizeterminal=true ``` #### Specify a theme The `theme` parameter accepts `Dark` or `Light`. To link to Remix with a theme specified, use this URL: ```text https://remix.ethereum.org/?#theme=Dark ``` ### Combine multiple parameters Multiple parameters can be combined in a single URL by chaining them with `&`. The example below uses the following parameters: - `activate=solidity,solidityUnitTesting,LearnEth` — activates three plugins; LearnEth gains the Side Panel focus as the last in the list - `theme=Light` — sets the Light theme - `minimizeterminal=true` — minimizes the terminal panel - `optimize=false` — disables compiler optimization - `evmVersion=null` — uses the default EVM version - `version=soljson-v0.6.6+commit.6c089d02.js` — loads a specific compiler version ```text https://remix.ethereum.org/?#activate=solidity,solidityUnitTesting,LearnEth&theme=Light&minimizeterminal=true&optimize=false&evmVersion=null&version=soljson-v0.6.6+commit.6c089d02.js ```