Sapphire Contracts Lib

NPM npm

A library for privacy focused smart contract development.

  • Implementations of OPL smart contracts
  • Sapphire library precompiles and cryptographic primitives
  • Wrapped Rose example



$ pnpm install @oasisprotocol/sapphire-contracts


Once installed, you can import and use the Sapphire contracts as follows:

pragma solidity ^0.8.13;

import "@oasisprotocol/sapphire-contracts/contracts/Sapphire.sol";

contract RandomNumber {
  function generateNumber() public view returns (uint) {
    return uint(bytes32(Sapphire.randomBytes(32, "")));


See the user's guide for Sapphire and OPL.

The generated API reference is hosted at

Generating API docs locally requires Foundry and mdbook-pagetoc. To install them and generate the docs execute:

curl -L | bash
cargo install mdbook-pagetoc
pnpm doc

The API docs index will be located in sol/sapphire-contracts/book/index.html.


There are many ways you can participate and help build high quality software. Check out the contribution guide!