Skip to main content

Develop on Sapphire

As Sapphire is EVM-compatible, you can use the same dev tooling as you would when building on Ethereum. Additionally, we build tools to support you in creating secure and confidential dApps.

Feel free to check out the Concepts page to get a better understanding of the transaction flow and the contract state.

Contract Development

Sapphire is programmable using any language that targets the EVM, such as Solidity, Fe or Vyper. If you prefer to use an Ethereum framework like Hardhat or Foundry, you can also use those with Sapphire; all you need to do is set your Web3 gateway URL. You can find the details of the Oasis Sapphire Web3 endpoints on the Network information page.

Features

Randomness, Subcalls and More Precompiles in the contracts API reference

Frontend Development

To connect your frontend to your smart contracts, see the Browser chapter.

More Frontend Frameworks

We support the common frontend libraries with the v2 client:

FrameworkPackageAPI ReferenceGitHub
Ethers v6@oasisprotocol/sapphire-ethers-v6APIGitHub
Viem@oasisprotocol/sapphire-viem-v2APIGitHub
Wagmi@oasisprotocol/sapphire-wagmi-v2APIGitHub

Backend Development

If you want to connect and execute transactions from your backend. Sapphire has three clients in different programming languages:

LanguagePackageAPI ReferenceGitHub
Javascript@oasisprotocol/sapphire-paratimeAPIGitHub
Go@oasisprotocol/sapphire-paratimeAPIGitHub
PythonAPIGitHub

Testing

Test confidential contracts with Hardhat or Ethers.

Examples

See our Examples page for demo dApps that bring all the above together.

Tools and Services

Should you have any questions or ideas to share, feel free to reach out to us on discord and other social media channels.