# SUPRA > Supra is a full-stack, high-performance Layer 1 blockchain ecosystem with native oracles, verifiable randomness, automation, and cross-chain bridging. Supports both SupraMVM and SupraEVM smart contracts. Full documentation: https://docs.supra.com/llms-full.txt ## Supra Layer 1 - [Overview](https://docs.supra.com/network): One chain. Full developer stack. - [Network Information](https://docs.supra.com/network/network-information): Supra runs three public networks. Mainnet is the production network. Testnet and Devnet are test networks. Testnet keeps its state across upgrades... - [Devnet](https://docs.supra.com/network/devnet): Devnet is Supra's public development network. It runs development builds, and the node version is in the info.description of its /docs/api.json. An... - [Faucet](https://docs.supra.com/network/faucet): The faucet grants SUPRA to a Move account on Devnet and Testnet. There is no EVM faucet: an EVM address is funded by crossing SUPRA from a Move... - [Useful Links](https://docs.supra.com/network/useful-links): Quick access to official resources, developer tools, and community channels. - [Moonshot Consensus Algorithm](https://docs.supra.com/network/moonshot): Moonshot is a family of high-performance Byzantine Fault Tolerant (BFT) consensus protocols designed for blockchain systems. - [Performing Cross-VM Transfers](https://docs.supra.com/network/cross-vm-transfers): Native SUPRA can move between SupraMVM and SupraEVM. A transfer in either direction is called a crossing. This article describes how to submit one... - [Tracing Cross-VM Transfers](https://docs.supra.com/network/tracing-cross-vm-transfers): Native SUPRA can move between SupraMVM and SupraEVM. A transfer in either direction is called a crossing. This article describes how to find a... ## SupraMVM - [Overview](https://docs.supra.com/network/move): Welcome to the Supra Move Layer 1 network documentation. Supra's MoveVM is a high-performance blockchain designed to support secure and scalable... - [Getting Started](https://docs.supra.com/network/move/getting-started): Want to build on the Supra Move blockchain? You've come to the right place! - [Introduction to Docker](https://docs.supra.com/network/move/getting-started/docker): Before installing the Supra CLI, you will need to install Docker. It’s helpful to understand what Docker is, how it works, and why we use it for... - [Setup Supra CLI](https://docs.supra.com/network/move/getting-started/supra-cli-with-docker): Installation of the Supra CLI using Docker. Each network has its own image, which holds the CLI release that network runs, and its latest tag is... - [Create a Supra Account](https://docs.supra.com/network/move/getting-started/create-a-supra-account): A profile holds an account's keys and the network that the CLI sends the account's transactions to. The CLI keeps its profiles in the configs... - [Create a Move Package](https://docs.supra.com/network/move/getting-started/create-a-move-package): Create a Move package, write a module in it, publish it and call its functions. Run the supra commands in the shell of your network's container. - [Write a Module](https://docs.supra.com/network/move/getting-started/create-a-move-package/write-a-module): Write the hello_blockchain module. - [Compile and Publish](https://docs.supra.com/network/move/getting-started/create-a-move-package/compile-and-publish): Compile the package, fund your account and publish the package to your network. - [Interact with a Package](https://docs.supra.com/network/move/getting-started/create-a-move-package/interact-with-a-package): Call the published module's functions. - [Create a dApp with StarKey](https://docs.supra.com/network/move/getting-started/your-first-dapp-with-starkey): Create your first Dapp using StarKey wallet, the official wallet of Supra. For the full window.starkey.supra provider API, see the StarKey... - [Token Standards](https://docs.supra.com/network/move/token-standards) - [Learn Move 101](https://docs.supra.com/network/move/learn-move): Want to learn Move with real examples? Start building today! - [Getting Started with Move](https://docs.supra.com/network/move/learn-move/move-101): New to Move? Start here with the basics! - [Unsigned Integers in Move](https://docs.supra.com/network/move/learn-move/unsigned-integers-in-move): Learn how Move handles different unsigned integer types, their use cases, and how they impact storage, performance, and gas efficiency. - [Math Operations in Move](https://docs.supra.com/network/move/learn-move/math-operations-in-move): Move supports familiar math operations with integer-based precision, requiring typecasting for calculations between different unsigned integer types. - [Using Vectors in Move](https://docs.supra.com/network/move/learn-move/using-vectors-in-move): Vectors in Move are dynamic lists that can grow or shrink as needed, making them essential for managing collections of data, including structs. - [Reading Resource Data with borrow_global](https://docs.supra.com/network/move/learn-move/reading-resource-data-with-borrow_global): borrow_global allows you to read an existing resource struct from a specific address without needing a signer, but the function must declare that... - [Passing Data in Move: Value vs. Reference](https://docs.supra.com/network/move/learn-move/passing-data-in-move-value-vs.-reference): Move uses pass-by-value for copies and pass-by-reference (& for reading, &mut for modifying) to data handling. - [Adding Elements with vector::push_back](https://docs.supra.com/network/move/learn-move/adding-elements-with-vector-push_back): vector::push_back allows you to add elements to a vector by passing a mutable reference (&mut), enabling dynamic storage updates within a module. - [Emitting Events with event::emit](https://docs.supra.com/network/move/learn-move/emitting-events-with-event-emit): Events allow smart contracts to emit signals that external applications can listen for, making it possible to track blockchain actions in real time. - [Move Book](https://docs.supra.com/network/move/move-book): The Move Book, modified for the Supra blockchain. - [Getting Started](https://docs.supra.com/network/move/move-book/getting-started) - [Modules and Scripts](https://docs.supra.com/network/move/move-book/getting-started/modules-and-scripts): Move has two different types of programs: Modules and Scripts. Modules are libraries that define struct types along with functions that operate on... - [Move Tutorial](https://docs.supra.com/network/move/move-book/getting-started/move-tutorial): Please refer to the Move Core Language Tutorial. - [Primitive Types](https://docs.supra.com/network/move/move-book/primitive-types) - [Integers](https://docs.supra.com/network/move/move-book/primitive-types/integers): Move supports six unsigned integer types: u8, u16, u32, u64, u128, and u256. Values of these types range from 0 to a maximum that depends on the... - [Bool](https://docs.supra.com/network/move/move-book/primitive-types/bool): bool is Move's primitive type for boolean true and false values. - [Address](https://docs.supra.com/network/move/move-book/primitive-types/address): address is a built-in type in Move that is used to represent locations (sometimes called accounts) in global storage. An address value is a 256-bit... - [Vector](https://docs.supra.com/network/move/move-book/primitive-types/vector): vector is the only primitive collection type provided by Move. A vector is a homogenous\ collection of T's that can grow or shrink by... - [Signer](https://docs.supra.com/network/move/move-book/primitive-types/signer): signer is a built-in Move resource type. A signer is a capability that allows the holder to act on behalf of a particular address. You can think of... - [References](https://docs.supra.com/network/move/move-book/primitive-types/references): Move has two types of references: immutable & and mutable &mut. Immutable references are read only, and cannot modify the underlying value (or any... - [Tuples and Unit](https://docs.supra.com/network/move/move-book/primitive-types/tuples-and-unit): Move does not fully support tuples as one might expect coming from another language with them as a first-class value. However, in order to support... - [Basic Concepts](https://docs.supra.com/network/move/move-book/basic-concepts) - [Local Variables and Scope](https://docs.supra.com/network/move/move-book/basic-concepts/local-variables-and-scope): Local variables in Move are lexically (statically) scoped. New variables are introduced with the keyword let, which will shadow any previous local... - [Equality](https://docs.supra.com/network/move/move-book/basic-concepts/equality): Move supports two equality operations == and != - [Abort and Assert](https://docs.supra.com/network/move/move-book/basic-concepts/abort-and-assert): return and abort are two control flow constructs that end execution, one for\ the current function and one for the entire transaction. - [Conditionals](https://docs.supra.com/network/move/move-book/basic-concepts/conditionals): An if expression specifies that some code should only be evaluated if a certain condition is true. For example: - [While, For, and Loop](https://docs.supra.com/network/move/move-book/basic-concepts/while-for-and-loop): Move offers three constructs for looping: while, for, and loop. - [Functions](https://docs.supra.com/network/move/move-book/basic-concepts/functions): Function syntax in Move is shared between module functions and script functions. Functions inside of modules are reusable, whereas script functions... - [Structs and Resources](https://docs.supra.com/network/move/move-book/basic-concepts/structs-and-resources): A struct is a user-defined data structure containing typed fields. Structs can store any non-reference type, including other structs. - [Constants](https://docs.supra.com/network/move/move-book/basic-concepts/constants): Constants are a way of giving a name to shared, static values inside of a module or script. - [Generics](https://docs.supra.com/network/move/move-book/basic-concepts/generics): Generics can be used to define functions and structs over different input data types. This language feature is sometimes referred to as parametric... - [Type Abilities](https://docs.supra.com/network/move/move-book/basic-concepts/type-abilities): Abilities are a typing feature in Move that control what actions are permissible for values of a given type. This system grants fine-grained... - [Uses and Aliases](https://docs.supra.com/network/move/move-book/basic-concepts/uses-and-aliases): The use syntax can be used to create aliases to members in other modules. use can be used to create aliases that last either for the entire module... - [Friends](https://docs.supra.com/network/move/move-book/basic-concepts/friends): The friend syntax is used to declare modules that are trusted by the current module. A trusted module is allowed to call any function defined in... - [Packages](https://docs.supra.com/network/move/move-book/basic-concepts/packages): Packages allow Move programmers to more easily re-use code and share it\ across projects. The Move package system allows programmers to easily do... - [Package Upgrades](https://docs.supra.com/network/move/move-book/basic-concepts/package-upgrades): Move code (e.g., Move modules) on the Supra blockchain can be upgraded. This\ allows code owners and module developers to update and evolve their... - [Unit Tests](https://docs.supra.com/network/move/move-book/basic-concepts/unit-tests): Unit testing for Move adds three new annotations to the Move source language: - [Global Storage](https://docs.supra.com/network/move/move-book/global-storage) - [Structure](https://docs.supra.com/network/move/move-book/global-storage/structure): The purpose of Move programs is to read from and write to tree-shaped persistent global storage. Programs cannot access the filesystem, network, or... - [Operators](https://docs.supra.com/network/move/move-book/global-storage/operators): Move programs can create, delete, and update resources in global storage using the following five instructions: - [Reference](https://docs.supra.com/network/move/move-book/reference) - [Standard Library](https://docs.supra.com/network/move/move-book/reference/standard-library): Supra provides multiple useful libraries for developers. The complete up-to-date\ docs can be found here. - [Coding Conventions](https://docs.supra.com/network/move/move-book/reference/coding-conventions): This section lays out some basic coding conventions for Move that the Move team has found helpful. These are only recommendations, and you should... - [Aptos to Supra Cheatsheet](https://docs.supra.com/network/move/aptos-to-supra-cheatsheet): This quick-reference guide helps you take what you know from the Aptos framework and translate it into building Move modules with the Supra framework. - [Ethereum to Supra Move Cheatsheet](https://docs.supra.com/network/move/ethereum-to-supra-move-cheatsheet): The tests run with supra move tool test. my_address is a named address that the package declares in the [addresses] section of Move.toml. - [TypeScript SDK](https://docs.supra.com/network/move/typescript-sdk): The Supra L1 TypeScript SDK provides a convenient way to interact with and perform operations on Supra. It offers a set of utility functions... - [Guides](https://docs.supra.com/network/move/typescript-sdk/guides) - [Create Supra Accounts](https://docs.supra.com/network/move/typescript-sdk/guides/create-supra-accounts): How to create new and import existing accounts. - [Publish a Package](https://docs.supra.com/network/move/typescript-sdk/guides/publish-a-package): How to publish a package using the TypeScript SDK. - [Call a Function and Read Events](https://docs.supra.com/network/move/typescript-sdk/guides/call-functions-and-read-events): How to call an entry function, read a view function and read events with the TypeScript SDK. - [Python SDK](https://docs.supra.com/network/move/python-sdk): The supra-sdk package is a Python SDK for Supra L1. It builds, signs and submits MoveVM transactions and reads accounts, resources and transactions... - [Rest API](https://docs.supra.com/network/move/rest-api): Every Supra node serves a REST API on its RPC host. The SDKs and the Supra CLI call it, and so can any HTTP client. - [Supra Multisig Guide](https://docs.supra.com/network/move/supra-multisig-guide): The Supra Multisig module control to Multisig accounts unlike traditional Multisig systems that require users to specify public keys, this Module... - [Fungible Asset (FA) Module](https://docs.supra.com/network/move/supra-fungible-asset-fa-module): The Supra Framework's fungible asset module provides a comprehensive standard for creating, managing, and transferring fungible tokens on the... - [Binary Canonical Serialization (BCS)](https://docs.supra.com/network/move/binary-canonical-serialization-bcs-standard-guide): Binary Canonical Serialization (BCS) is the fundamental serialization format powering the Supra L1 ecosystem. BCS is a binary canonical... - [Sending Tokens & Account Initialization](https://docs.supra.com/network/move/sending-tokens-to-new-accounts): A Supra address can be generated before an on-chain Account resource exists at that address. For integrations that send SUPRA or other assets to... - [Move Native Randomness](https://docs.supra.com/network/move/move-native-randomness): Supra Move modules obtain synchronous randomness from supra_framework::randomness. The block prologue writes a per-block seed into PerBlockRandomness. - [Fungible Asset Allowances](https://docs.supra.com/network/move/fungible-asset-allowances): This article describes how an application lets one account spend a bounded amount of another account's fungible asset, using... - [Recognising Account Operations](https://docs.supra.com/network/move/recognising-account-operations): A Move entry function receives the sender's signer (&signer) and can pass it to any module it calls. Code holding the signer can perform operations... - [Tracking SUPRA and Fungible Asset Balances](https://docs.supra.com/network/move/tracking-balances): This article is for an exchange, custodian or indexer that must know every change to the SUPRA balance, and to the balances of other fungible... - [Dev](https://docs.supra.com/network/move/dev) - [Supra Move IDE](https://docs.supra.com/network/move/dev/supra-move-ide): Supra IDE is a browser-based development environment for writing, compiling, and deploying Move smart contracts on the Supra blockchain. This guide... - [Project & Files Management](https://docs.supra.com/network/move/dev/supra-move-ide/project-and-files-management): The IDE makes it easy to manage your projects directly in the browser. All project data is stored locally in your browser's IndexedDB. - [IDE Core Actions](https://docs.supra.com/network/move/dev/supra-move-ide/ide-core-actions): These action buttons in the Explorer tab allow you to interact with your Move code and the Supra blockchain. - [Contract Interactions & Transaction History](https://docs.supra.com/network/move/dev/supra-move-ide/contract-interactions-and-transaction-history): This tab is used to execute view or run functions for your created addresses. Steps: - [Accounts and Balance](https://docs.supra.com/network/move/dev/supra-move-ide/accounts-and-balance) - [Supra Move VS Code Extension](https://docs.supra.com/network/move/dev/supra-move-vs-code-extension): Welcome to the official documentation for the Supra Move VS Code Extension, a comprehensive developer tool designed to streamline development on... - [Supra Dapp Templates](https://docs.supra.com/network/move/dev/supra-dapp-templates): Welcome to @supranpm/supra-dapp-templates, your go-to starter kit for dapp development on the Supra network. This npm package allows developers to... ## SupraEVM - [Overview](https://docs.supra.com/network/evm): SupraEVM is the Ethereum-compatible execution environment of the Supra L1. It runs in the same node as Supra's Move execution environment... - [Getting Started](https://docs.supra.com/network/evm/getting-started): SupraEVM is an Ethereum-compatible execution environment running on the Supra blockchain, alongside the chain's Move environment, SupraMVM. It... - [StarKey](https://docs.supra.com/network/evm/starkey): StarKey is Supra's wallet. A StarKey account holds a Move address and a SupraEVM address, and signs for both. To install StarKey and create an... - [Foundry](https://docs.supra.com/network/evm/foundry): This page sets up a Foundry project for SupraEVM on Devnet, deploys a contract and calls it. The deploying address must hold SUPRA; see Funding an... - [Hardhat](https://docs.supra.com/network/evm/hardhat): This page sets up a Hardhat 3 project for SupraEVM on Devnet, deploys a contract with a script and calls it. Hardhat 3 needs Node.js 22.13 or... - [Remix IDE](https://docs.supra.com/network/evm/remix): This page compiles a contract in Remix and deploys it to SupraEVM on Devnet through StarKey. Before starting: - [Getting Started with Automation](https://docs.supra.com/network/evm/automation/getting-started): This page registers an automation task on Devnet end to end with Foundry: a contract whose counter the chain increments on its own, in every block... - [How Automation Works](https://docs.supra.com/network/evm/automation/how-automation-works): EVM automation lets a contract be called without anyone sending a transaction. A user registers a task naming a target call and a condition gating... - [Automated Transactions over RPC](https://docs.supra.com/network/evm/automation/automated-transactions-over-rpc): Executing an automation task produces on-chain activity that nobody submitted. Supra exposes that activity through both RPC surfaces, so a client... - [Differences from Ethereum](https://docs.supra.com/network/evm/differences-from-ethereum): A Supra node serves the Ethereum JSON-RPC API at /rpc/v1/eth, with Ethereum's transaction envelopes, address format and log format; on Devnet that... - [Gas and Fees](https://docs.supra.com/network/evm/gas-and-fees): Supra prices EVM execution from the same gas schedule that prices Move execution. This page states the figures a transaction has to satisfy, how to... - [SupraEVM Precompiles](https://docs.supra.com/network/evm/precompiles): SupraEVM serves two sets of precompiles: the standard Ethereum set in force at Osaka, at the usual addresses, and a set of its own in a reserved... - [Predeployed Contracts](https://docs.supra.com/network/evm/predeployed-contracts): Some contracts are present on SupraEVM from its first block, placed there by SupraEVM's genesis rather than deployed by anyone. This page lists the... - [System Contracts](https://docs.supra.com/network/evm/system-contracts): Genesis deploys three system contracts that the chain itself calls or that govern it: BlockMeta, the foundation MultiSignatureWallet, and the... - [BlockMeta](https://docs.supra.com/network/evm/system-contracts/block-meta): BlockMeta runs a fixed list of contract calls at the start of every block. It holds an ordered list of (target contract, selector, gas limit)... - [MultiSignatureWallet](https://docs.supra.com/network/evm/system-contracts/multi-signature-wallet): MultiSignatureWallet holds funds and executes calls that require approval from several owners. A transaction is submitted, confirmed by owners... - [AutomationRegistry](https://docs.supra.com/network/evm/system-contracts/automation-registry): The automation registry lets a contract be called on a schedule without anyone sending a transaction. A user registers a task describing a call to... - [Native Randomness](https://docs.supra.com/network/evm/native-randomness): Supra gives EVM contracts randomness synchronously: you call a precompile and it returns a fresh value inside the same transaction. The oracle... - [Block Timestamp in Microseconds](https://docs.supra.com/network/evm/block-timestamp): Supra blocks carry a timestamp with microsecond resolution. block.timestamp reports it in whole seconds, as it does on every EVM chain, and a... - [Solidity Resources](https://docs.supra.com/network/evm/solidity-resources): Explore tools, frameworks, tutorials, and advanced guides to level up your Solidity development. ## Node Operations - [Overview](https://docs.supra.com/network/node): Welcome to the Supra Node Operation Program documentation. - [Node Operator FAQ](https://docs.supra.com/network/node/node-operator-faq) - [Node Upgrade Guide - Mainnet](https://docs.supra.com/network/node/node-upgrade-guide-mainnet): You can follow the step-by-step process for upgrading your Supra Validator Node to version v9.1.10 with minimal downtime. Keeping your Supra... - [Upgrade Checklist (Pre-Upgrade Verification)](https://docs.supra.com/network/node/node-upgrade-guide-mainnet/upgrade-checklist-pre-upgrade-verification): Before upgrading, please complete the following steps. - [Download the Node Management Scripts](https://docs.supra.com/network/node/node-upgrade-guide-mainnet/download-the-node-management-scripts): Before proceeding with the upgrade, download the latest node management scripts. - [Update the Supra Node Docker Image](https://docs.supra.com/network/node/node-upgrade-guide-mainnet/update-the-supra-node-docker-image): The following commands will enable you to update the Docker image for your Validator Node and RPC node. - [Download the Node Management Scripts for RPC](https://docs.supra.com/network/node/node-upgrade-guide-mainnet/download-the-node-management-scripts-for-rpc): Before proceeding with the upgrade, download the latest node management scripts. - [Starting the Supra Nodes](https://docs.supra.com/network/node/node-upgrade-guide-mainnet/starting-the-supra-nodes): After migration, you can restart the node. - [Monitor Node Synchronization](https://docs.supra.com/network/node/node-upgrade-guide-mainnet/monitor-node-synchronization): You can follow the steps below to Monitor your Validator Node. - [CLI Improvements](https://docs.supra.com/network/node/node-upgrade-guide-mainnet/cli-improvements): The following changes have been made in CLI v0.5.0: - [Recovery Guide](https://docs.supra.com/network/node/node-upgrade-guide-mainnet/recovery-guide): First, stop your node: - [Node Upgrade Guide - Testnet](https://docs.supra.com/network/node/node-upgrade-guide-testnet): You can follow the step-by-step process for upgrading your Supra Validator Node to version 9.0.12 with minimal downtime. Keeping your Supra... - [Upgrade Checklist (Pre-Upgrade Verification)](https://docs.supra.com/network/node/node-upgrade-guide-testnet/upgrade-checklist-pre-upgrade-verification): Before upgrading, please complete the following steps. - [Download the Node Management Scripts](https://docs.supra.com/network/node/node-upgrade-guide-testnet/download-the-node-management-scripts): Before proceeding with the upgrade, download the latest node management scripts. - [Update the Supra Node Docker Image](https://docs.supra.com/network/node/node-upgrade-guide-testnet/update-the-supra-node-docker-image): The following commands will enable you to update the Docker image for your Validator Node and RPC node. - [Validator Migration to 9.x.x](https://docs.supra.com/network/node/node-upgrade-guide-testnet/validator-migration-to-9.x.x): To migrate your Validator Node, run the following command: - [RPC Migration to 9.x.x](https://docs.supra.com/network/node/node-upgrade-guide-testnet/rpc-migration-to-9.x.x): Run the following command to migrate the database and configuration files of your RPC node to the latest version. - [Starting the Supra Node](https://docs.supra.com/network/node/node-upgrade-guide-testnet/starting-the-supra-nodes): After migration, you can restart the node. - [Monitor Node Synchronization](https://docs.supra.com/network/node/node-upgrade-guide-testnet/monitor-node-synchronization): You can follow the steps below to Monitor your Validator Node. - [CLI Improvements](https://docs.supra.com/network/node/node-upgrade-guide-testnet/cli-improvements): The following changes have been made in CLI v0.5.0: - [Recovery Guide](https://docs.supra.com/network/node/node-upgrade-guide-testnet/recovery-guide): If your node falls too far behind the rest of the network or its database becomes corrupted then you will need to recover it from the latest state... - [Node Relocation Guide](https://docs.supra.com/network/node/node-relocation-guide) - [Summary](https://docs.supra.com/network/node/node-relocation-guide/summary): The sync process is diff-based, so performing this sync before updating the network address of your Validator and syncing again, will enable it to... - [Step 1](https://docs.supra.com/network/node/node-relocation-guide/step-1): Generate an SSH Key Pair on the Old Instance: - [Step 2](https://docs.supra.com/network/node/node-relocation-guide/step-2) - [Step 3](https://docs.supra.com/network/node/node-relocation-guide/step-3): Execute the following Docker command to initialize the container with the latest Supra Validator Docker image for your target environment on the... - [Step 4](https://docs.supra.com/network/node/node-relocation-guide/step-4): Run the following command to configure rclone, which allows secure transfer and synchronization of files between your system and remote storage. - [Step 5](https://docs.supra.com/network/node/node-relocation-guide/step-5): If you are utilizing the same DNS name for your new instance: - [Step 6](https://docs.supra.com/network/node/node-relocation-guide/step-6): If you are using a different DNS name or IP address, follow the steps outlined below on the new instance: - [Step 7](https://docs.supra.com/network/node/node-relocation-guide/step-7) - [Step 8](https://docs.supra.com/network/node/node-relocation-guide/step-8): Run the following command to start the Supra Validator Node for your target environment on the new instance. - [Creating SupraDesk Tickets via Email](https://docs.supra.com/network/node/creating-supradesk-tickets-via-email): This document outlines the steps to create tickets in the application through both Slack and email. ## Automation - [Overview](https://docs.supra.com/automation): Supra Automation is a native execution engine that transforms how smart contracts operate. Traditional smart contracts are passive, they require... - [Getting Started](https://docs.supra.com/automation/getting-started): Supra’s Automation Network is built to be developer-friendly. It provides multiple interfaces for registering tasks, managing them, and observing... - [API Reference](https://docs.supra.com/automation/api-reference): Supra provides APIs for interacting with automation services, monitoring execution, and retrieving registry data. The sections below cover the... - [Smart Contract Integration](https://docs.supra.com/automation/smart-contract-integration): Supra’s Automation Network is designed to work with any Move-based smart contract that exposes callable entry functions. To make a contract... - [Your First Automation Task](https://docs.supra.com/automation/your-first-automation-task): Automation is second nature in Web2 (cron jobs, schedulers, CI/CD), but in Web3, it’s still uncommon. Most on-chain functions still need manual input. - [Prerequisites & Cycle Timing](https://docs.supra.com/automation/your-first-automation-task/prerequisites-and-epoch-timing): registered to receive SUPRA. - [Create the Move Smart Contract](https://docs.supra.com/automation/your-first-automation-task/create-the-move-smart-contract): For this guide we'll create an automation contract that will increment a default value with each automated transaction once the automation task... - [Calculate task-expiry-time & task-automation-fee](https://docs.supra.com/automation/your-first-automation-task/calculate-task-expiry-time-and-task-automation-fee): All amounts are in quants (1 SUPRA = 100,000,000 quants). - [Register your Automation Task](https://docs.supra.com/automation/your-first-automation-task/register-your-automation-task): Make sure the contract is published before registering automation — otherwise, the system won’t be able to find your function. - [Canceling Your Automation Task](https://docs.supra.com/automation/your-first-automation-task/canceling-your-automation-task): Canceling an active task stops it running after the current cycle ends. A cancelled pending task never runs. To stop an active task at once, use... - [Using --type-args in Automation](https://docs.supra.com/automation/using-type-args): When registering automation tasks for functions that use generic types, you must specify the concrete types using the --type-args parameter. - [Use Cases of AutoFi](https://docs.supra.com/automation/use-cases): AutoFi represents the real-world application layer of Supra’s Automation Network. With native automation built into the chain, developers can... - [Glossary](https://docs.supra.com/automation/glossary) - [FAQs](https://docs.supra.com/automation/faqs): Supra’s automation is built into the validator layer. There are no off-chain agents, bots, or centralized relayers. All task evaluation and... ## Oracles - [Oracles](https://docs.supra.com/oracles): Welcome to the Supra Oracles documentation. Supra Oracles delivers a decentralized, high-performance oracle infrastructure that connects real-world... - [Overview](https://docs.supra.com/oracles/overview): Welcome to the Supra Oracles documentation. Supra Oracles delivers a decentralized, high-performance oracle infrastructure that connects real-world... - [Data Feeds](https://docs.supra.com/oracles/data-feeds): Oracle feeds play a pivotal role in delivering dependable and precise real-world data to blockchain networks, unlocking a multitude of valuable use... - [Data Feeds List](https://docs.supra.com/oracles/data-feeds/data-feeds-index): Welcome to our data feeds catalog, the gateway to seamlessly integrating real-world data on-chain. This will help you empower your smart contracts... - [Pull Oracle](https://docs.supra.com/oracles/data-feeds/pull-oracle): DORA V2, our latest version of data feeds protocol, uses a combination of Web2 and Web3 methods to achieve ultra-low latency when sending data from... - [Data Pair Conversion](https://docs.supra.com/oracles/data-feeds/pull-oracle/data-pair-conversion): The list of data pairs offered by Supra is getting longer every day, but sometimes you might not find the exact pair that you have been looking... - [Available Networks](https://docs.supra.com/oracles/data-feeds/pull-oracle/networks): Default contract for pull oracle is "Pull contract". Storage contract would be required for data pair conversion (derived pairs). - [Push Oracle](https://docs.supra.com/oracles/data-feeds/push-oracle): Supra's Push oracle publishes price pairs on-chain regularly and at high frequencies, enabling consumers to get near real-time prices for their... - [Available Networks](https://docs.supra.com/oracles/data-feeds/push-oracle/networks): Push oracles usually require network foundation support for gas for sustainable maintenance of the feeds. The frequencies and deviation thresholds... - [APIs - Real Time & Historical](https://docs.supra.com/oracles/apis-real-time-and-historical-data): Welcome to the Supra Price Feeds API! - [REST API](https://docs.supra.com/oracles/apis-real-time-and-historical-data/rest-api): Rest API enables users to request the latest price update for multiple data pairs or historical prices up to 1 month for a single data pair. We... - [WebSocket API](https://docs.supra.com/oracles/apis-real-time-and-historical-data/websocket-api): WebSocket API streams price feeds data real time. Users can configure the query based on the preferred resolution to receive OHLC( Open price, High... - [Price Widgets](https://docs.supra.com/oracles/apis-real-time-and-historical-data/price-widgets): Supra provides embeddable widgets for displaying cryptocurrency data on websites. These widgets can be customised and be integrated using HTML... - [Indices](https://docs.supra.com/oracles/indices): Supra Indices serve as a powerful tool for creating fully transparent cryptocurrency indices on the Supra blockchain, similar to traditional equity... - [Creating a New On-Chain Index](https://docs.supra.com/oracles/indices/creating-a-new-on-chain-index): Below contracts facilitate index creation and modification on Supra L1. - [Read On-Chain Indices](https://docs.supra.com/oracles/indices/read-on-chain-indices): Reading index values is permissionless in Supra L1. Any user or dApp can calculate and read the latest values of any index available in Supra... - [Technical Indicators](https://docs.supra.com/oracles/technical-indicators): Technical indicators are mathematical calculations based on historical price data that help traders and automated systems analyze market trends... - [Developer Guide](https://docs.supra.com/oracles/technical-indicators/developer-guide): This guide shows you how to integrate on-chain technical indicators (SMA, EMA, RSI) into your Supra L1 smart contracts. All indicators are... - [Simple Moving Average (SMA)](https://docs.supra.com/oracles/technical-indicators/developer-guide/simple-moving-average-sma): SMA calculates the arithmetic mean of closing prices over a specified number of periods. It smooths out price volatility to reveal underlying trends. - [Exponential Moving Average (EMA)](https://docs.supra.com/oracles/technical-indicators/developer-guide/exponential-moving-average-ema): EMA is a weighted moving average that gives more importance to recent prices. It responds faster to price changes than SMA, making it useful for... - [Relative Strength Index (RSI)](https://docs.supra.com/oracles/technical-indicators/developer-guide/relative-strength-index-rsi): RSI is a momentum oscillator that measures the speed and magnitude of price changes. It oscillates between 0 and 100, helping identify overbought... - [Example1 : Market Analysis with TI](https://docs.supra.com/oracles/technical-indicators/example1-market-analysis): Below examples have been added just to showcase what could be potentially done with this new form of information on chain. Possibilities are... - [Example2: Complete Trading Bot with TI](https://docs.supra.com/oracles/technical-indicators/example2-trading-bot): This is a sample trading bot made with technical indicators - [Oracle Value Capture (OVC)](https://docs.supra.com/oracles/oracle-value-capture-ovc): Oracle Value Capture (OVC) is Supra's mechanism for enabling DeFi protocols to reclaim liquidation fees that are currently captured by external MEV... - [The Problem](https://docs.supra.com/oracles/oracle-value-capture-ovc/the-problem): In the current DeFi landscape, oracles provide the price data that triggers liquidations, but the protocols consuming that data rarely capture any... - [How OVC Works](https://docs.supra.com/oracles/oracle-value-capture-ovc/how-ovc-works): OVC bridges oracle data with on-chain actions, turning price feeds into monetizable execution pathways. The system operates through a structured... - [Revenue Model](https://docs.supra.com/oracles/oracle-value-capture-ovc/revenue-model): OVC converts liquidation events into a recurring revenue stream for partner protocols. The economics are straightforward: liquidation fees that... - [The SupraEVM Advantage](https://docs.supra.com/oracles/oracle-value-capture-ovc/the-supraevm-advantage): OVC works today as an off-chain execution layer on any chain where Supra Oracles are integrated. But for protocols seeking the best possible... - [Risks & Mitigations](https://docs.supra.com/oracles/oracle-value-capture-ovc/risks-and-mitigations): Like any system operating at the intersection of oracle infrastructure, MEV, and DeFi protocol economics, OVC faces real-world risks. Below is an... - [Getting Started](https://docs.supra.com/oracles/oracle-value-capture-ovc/getting-started): OVC is designed for fast onboarding with minimal integration effort. The adoption path moves from initial conversation through to live revenue... ## dVRF (Verifiable Randomness) - [dVRF (Verifiable Randomness)](https://docs.supra.com/dvrf): On-chain and off-chain applications connected to gaming, lottery, and sampling rely heavily on entropy. It could be a dynamic NFT mint, loot boxes... - [Overview](https://docs.supra.com/dvrf/overview): On-chain and off-chain applications connected to gaming, lottery, and sampling rely heavily on entropy. It could be a dynamic NFT mint, loot boxes... - [Learn Supra dVRF](https://docs.supra.com/dvrf/learn-supra-dvrf) - [Available Versions and Networks](https://docs.supra.com/dvrf/learn-supra-dvrf/networks): Please refer below for the Supra Contract addresses of each network. - [Supra dVRF: Architecture Guide](https://docs.supra.com/dvrf/learn-supra-dvrf/supra-dvrf-architecture-guide): Supra's decentralized Verifiable Random Function (dVRF) provides a secure, tamper-proof solution for generating random numbers in Web3... - [Build - Third Party EVM Networks](https://docs.supra.com/dvrf/build-third-party-evm-networks): Before diving into the technical details, let's understand how dVRF works and how to subscribe to consume random numbers. - [Getting Started](https://docs.supra.com/dvrf/build-third-party-evm-networks/getting-started): Before diving into the technical details, let's understand how dVRF works and how to subscribe to consume random numbers. - [Create your Subscription](https://docs.supra.com/dvrf/build-third-party-evm-networks/create-your-subscription): To start using dVRF, you need to create a subscription that will manage your random number requests and handle gas payments for callbacks. You can... - [Gas Configurations](https://docs.supra.com/dvrf/build-third-party-evm-networks/gas-configurations): Now that you understand how dVRF works and have created your subscription, it's time to configure gas settings properly. Gas configuration is... - [Add Contracts to subscription](https://docs.supra.com/dvrf/build-third-party-evm-networks/add-contracts-to-subscription): After creating your subscription and configuring gas settings, you need to whitelist your consumer contracts. Only whitelisted contracts can... - [Deposit & Withdraw Funds](https://docs.supra.com/dvrf/build-third-party-evm-networks/deposit-and-withdraw-funds): After adding contracts, you need to ensure your subscription has sufficient funds to pay for callback gas fees. You can deposit funds through the... - [Request Random Numbers](https://docs.supra.com/dvrf/build-third-party-evm-networks/request-random-numbers): Supra dVRF uses a two-contract system: - [Other Functions](https://docs.supra.com/dvrf/build-third-party-evm-networks/other-functions): Beyond requesting random numbers, Supra dVRF provides additional functions for managing your account, monitoring balances, and configuring contract... - [Migration to dVRF 3.0 on EVM (thirdparty)](https://docs.supra.com/dvrf/build-third-party-evm-networks/migration-to-dvrf-3.0): This page introduces the new features of Supra dVRF 3.0 and provides migration steps. Clients are encouraged to migrate at their convenience before... - [VRF Subscription FAQ](https://docs.supra.com/dvrf/build-third-party-evm-networks/vrf-subscription-model): Supra dVRF is a prepaid subscription model that provides enhanced controls for consumers. This document will walk you through the key features and... - [Build - Supra L1](https://docs.supra.com/dvrf/build-supra-l1): Before diving into the technical details, let's understand how dVRF works and how to subscribe to consume random numbers. - [Getting Started](https://docs.supra.com/dvrf/build-supra-l1/getting-started): Before diving into the technical details, let's understand how dVRF works and how to subscribe to consume random numbers. - [Create Subscription](https://docs.supra.com/dvrf/build-supra-l1/create-your-subscription): To start using dVRF, you need to create a subscription that will manage your random number requests and handle gas payments for callbacks. You can... - [Gas Configurations](https://docs.supra.com/dvrf/build-supra-l1/gas-configurations): Now that you understand how dVRF works and have created your subscription, it's time to configure gas settings properly. Gas configuration is... - [Add Contracts to Subscription](https://docs.supra.com/dvrf/build-supra-l1/add-contracts-to-subscription): After creating your subscription and configuring gas settings, you need to whitelist your consumer contracts. Only whitelisted contracts can... - [Deposit and Withdraw Funds](https://docs.supra.com/dvrf/build-supra-l1/deposit-and-withdraw-funds): After adding contracts, you need to ensure your subscription has sufficient funds to pay for callback gas fees. You can deposit funds through the... - [Request Random Numbers](https://docs.supra.com/dvrf/build-supra-l1/request-random-numbers): Ready to get random? Follow these four simple steps to integrate Supra dVRF into your Move module and start requesting verifiable random numbers. - [Legacy VRF - V2 Developer Guide](https://docs.supra.com/dvrf/build-supra-l1/v2-guide): Supra dVRF requires a whitelisted subscription to the service with a customer-controlled wallet address to act as the main reference. Once your... ## SupraNova (Bridge) - [SupraNova Bridge - Bridging between Ethereum and Supra](https://docs.supra.com/supranova): SupraNova is a cross-chain communication framework developed by Supra. It enables the transfer of assets and messages across blockchains by... - [Bridging Flow](https://docs.supra.com/supranova/bridging-flow): This section explains how to use the SupraNova Bridge dApp in both directions: bridging ETH from Ethereum to supETH on Supra, and bridging assets... - [Standard Two-Layer Approach in SupraNova](https://docs.supra.com/supranova/standard-two-layer-approach): SupraNova organizes its bridging infrastructure into clearly separated functional layers, each responsible for a distinct part of the cross-chain... - [Workflow of HyperNova Bridging within SupraNova](https://docs.supra.com/supranova/workflow-of-hypernova-bridging): SupraNova uses the HyperNova trustless bridging protocol in both directions. The components are the same in each case; what changes is which chain... - [Proof Validation Structure](https://docs.supra.com/supranova/proof-validation-structure): SupraNova uses HyperNova, a trustless bridge protocol in which the destination-chain verifier trusts no off-chain actor and re-derives validity... - [SupraNova Security](https://docs.supra.com/supranova/security): SupraNova is designed not just for operational efficiency, but also for deep, protocol-level security through its modular components like... - [Fee Structure in SupraNova](https://docs.supra.com/supranova/fee-structure): SupraNova’s fee model is designed to sustain a permissionless, decentralized bridging ecosystem while incentivizing critical actors like relayers... - [Modular Relayer Architecture](https://docs.supra.com/supranova/modular-relayer-architecture): SupraNova’s architecture relies on a relayer framework built using a modular design that separates concerns for better scalability and resilience... - [Token Bridge Smart Contract Interface](https://docs.supra.com/supranova/token-bridge-smart-contract-interface): SupraNova’s Token Bridge is a service layer contract deployed on both chains. There is no separate "reverse" contract: the same deployments serve... - [Token Bridging Models](https://docs.supra.com/supranova/token-bridging-models): SupraNova picks a bridging model per asset, based on where that asset originates. Every model preserves the same invariant: the representation in... - [Future Roadmap](https://docs.supra.com/supranova/future-roadmap): SupraNova’s architecture is designed to evolve beyond one-way bridging into a fully decentralized cross-chain communication framework. - [SupraNova Bridge Admin Functionalities](https://docs.supra.com/supranova/supranova-bridge-admin-functionalities): To ensure robust governance, security, and operational control, SupraNova employs a multi-signature (MultiSig) administration model. This model... ## iAssets (Proof of Efficient Liquidity) - [iAssets (Proof of Efficient Liquidity)](https://docs.supra.com/proof-of-efficient-liquidity-poel): Supra has developed the Multi-Asset Liquid Staking framework, which implements the Proof of Efficient Liquidity (PoEL) protocol. Within the Supra... - [Overview](https://docs.supra.com/proof-of-efficient-liquidity-poel/overview): Supra has developed the Multi-Asset Liquid Staking framework, which implements the Proof of Efficient Liquidity (PoEL) protocol. Within the Supra... - [Workflow](https://docs.supra.com/proof-of-efficient-liquidity-poel/workflow): The application logic is built on two main components: - [iAsset Minting Flow](https://docs.supra.com/proof-of-efficient-liquidity-poel/iasset-minting-flow): This section explains how to mint iAsset on the Supra network, with each step of the minting process. - [Add iAssets to Starkey Wallet](https://docs.supra.com/proof-of-efficient-liquidity-poel/add-iassets-to-starkey-wallet): 🔗 Supra Docs – Token Integration Guide - [Reward Claiming Flow](https://docs.supra.com/proof-of-efficient-liquidity-poel/reward-claiming-flow): Make sure your Starkey Wallet is connected, Rewards will be calculated based on the connected wallet’s iAsset holding history, and any withdrawn... - [Key Concepts](https://docs.supra.com/proof-of-efficient-liquidity-poel/key-concepts): The lifecycle of assets supplied as liquidity to create iAssets is as follows: upon deposit, users are credited with pre-minted iAssets that are... - [Integration Guide](https://docs.supra.com/proof-of-efficient-liquidity-poel/integration-guide): Please find the currently supported iAsset addresses in testnet below: - [Smart Contract Integration](https://docs.supra.com/proof-of-efficient-liquidity-poel/smart-contract-integration): The system is composed of two main modules: iAsset and PoEL. - [Roles with special permissions](https://docs.supra.com/proof-of-efficient-liquidity-poel/roles-with-special-permissions): Currently The PoEL system spans two networks: ## AI Agents - [Your First AI Agent on Supra](https://docs.supra.com/ai-agents): In this guide, you’ll learn how to build and run your first Supra AI Agent, an interactive agent that communicates with the Supra Network and... - [Setting Up Your Agent](https://docs.supra.com/ai-agents/setting-up-your-agent): Before getting started, make sure you have the following installed: - [Interacting with the Agent](https://docs.supra.com/ai-agents/interacting-with-the-agent): Congratulations on building your first Supra Agent! This guide serves as a starting point in your journey into the Supra ecosystem. ## Audit Reports - [Audit Reports](https://docs.supra.com/audit-reports): We treat security as a continuous journey of monitoring, testing, and improvement not a destination. We ensure the integrity and safety of our...