Home

Awesome

Pragma

Pragma, Starknet's native provable oracle.

What's Pragma ?

Pragma is a decentralized oracle built natively on Starknet. It leverages cairo to make data feeds computation fully trustless.

Overview

Testing

A few key testing features are missing such as fuzzing and proper hooks, mocking cheatcodes. This will come as cairo tooling matures and improves.

Documentation

More extensive documentation can be found on our official website.

Audit

Pragma Starknet has been peer-reviewed by many other key-projects in the industries. It has also been audited by Nethermind, you can find the full report under the <a href='/audits'>audits</a> folder.

Deployment addresses

This repo will gradually replace the previous Pragma implementation in Cairo 0 which you can find here.

Starknet Sepolia

Starknet Mainnet

Pragma Devnet

Local Deployment

Prerequisites:

  1. Compile contracts
cd pragma-oracle
scarb build
  1. Install dependencies
cd ../pragma-deployer
python -m venv .venv && source .venv/bin/activate
poetry install
  1. Setup env file
# Make sure you are in the pragma-deployer folder
cp .env.example .env

Populate the variables depending on where you wish to deploy.

  1. Deploy contracts & setup

Make sure your local devnet is running, see latest instructions here.

You can also specify a different network by setting STARKNET_NETWORK to a different value e.g sepolia, mainnet or pragma_devnet.


STARKNET_NETWORK=devnet poetry run deploy-pragma --port [DEVNET_PORT]
STARKNET_NETWORK=devnet poetry run deploy-summary-stats --port [DEVNET_PORT]
STARKNET_NETWORK=devnet poetry run register-publishers --port [DEVNET_PORT]

Once the contracts are declared/deployed you'll find them under the deployments/ folder at the root of the repo.

Questions and feedback

For any question or feedback you can send an email to matthias@pragma.build

License

The code is under the MIT LICENSE, see <a href="./LICENSE">LICENSE</a>.