Skip to content

Developing on the Oasis Devnet

This page provides an overview of developing smart contracts on the Oasis Devnet.

Devnet Overview

The Oasis Devnet has been created specifically for developers. In contrast to an open testnet, the Devnet is hosted by Oasis Labs, making it an easy-to-use, developer-friendly environment to preview a number of foundational features unique to Oasis.

Key features include:

  1. Confidentiality framework including libraries to develop and test confidential smart contracts.

  2. Contract Kit, a toolkit to develop and test smart contracts locally before they’re deployed on-chain. Includes support for both Rust and Solidity.

  3. Ethereum backwards compatibility with support for existing Ethereum smart contracts, wallets, and developer tools.

  4. Tutorials and resources, including a tutorial on building a secret ballot DApp.

Smart Contract Development

Oasis supports several different runtimes, allowing you to develop your smart contract in multiple languages. For example, you can develop in Solidity, a simple language designed for smart contracts, or Rust, a general-purpose language that provides more flexiblity.

The choice of language will determine the tools you will use to develop your smart contracts.

Which Language Should I Use?

Solidity

Solidity is a language designed specifically for Ethereum smart contracts. Solidity is a good choice when

  • You already know JavaScript and don't want to learn Rust
  • Your DApp is relatively simple and is not computation intensive
  • You want to benefit from a more stable platform of smart contract developer tools

Rust

Rust is a general-purpose language like C++ which offers great flexibility when writing smart contracts. Rust is a good choice when

  • You already know or want to learn Rust
  • Your DApp requires complicated data structures and general-purpose computation
  • You want to take advantage of the rich set of libraries that we will make available as part of our platform, including libraries for machine learning

If you are new to the Rust programming language we highly recommend you start with the official Rust tutorial. Once you are comfortable writing Rust code you can learn to develop smart contracts in Rust.

Compatibility with Ethereum

Oasis is fully compatible with Ethereum, which means you can migrate existing Ethereum smart contracts to Oasis with minimal modifications, and you can use existing Ethereum tools such as Remix and Truffle for development.

When using existing tools, be sure to specify the RPC URL https://web3.oasiscloud.io as your web3 provider so your contracts are deployed to the Oasis Devnet.

A WebSocket endpoint is also available at wss://web3.oasiscloud.io/ws. The WebSocket endpoint exposes a pub/sub interface similar to Parity's eth_pubsub module.

Feedback

We appreciate your feedback on the Devnet. As an early developer, your feedback is crucial for helping us build a successful community and platform.

Please report all bugs and feature requests using our issue tracker.

For other questions and feedback please email [email protected].

Additional Resources

Please check back frequently as the documentation is being continuously improved. More tutorials are coming soon including:

  • How to build a machine learning smart contract
  • How to develop a multiplayer game on Oasis

Next Steps

Ready to start building a DApp? We recommend you get started with the Oasis Contract Kit.