# Mina Protocol Documentation > Mina is a lightweight blockchain powered by zero-knowledge proofs (zk-SNARKs). Unlike traditional blockchains, Mina maintains a constant ~22KB chain size. Developers build privacy-preserving smart contracts called zkApps using o1js, a TypeScript-based zk framework. The protocol uses Ouroboros Samasika proof-of-stake consensus. This file is auto-generated from `sidebars.js` and the frontmatter of each documentation page. It indexes the docs for AI agents and other automation. The full content of every page is at [llms-full.txt](https://docs.minaprotocol.com/llms-full.txt). ## Network Upgrades - [Network Upgrades](https://docs.minaprotocol.com/network-upgrades): History of Mina Protocol mainnet network upgrades (hard forks), including Berkeley and Mesa. - [Berkeley Upgrade](https://docs.minaprotocol.com/network-upgrades/berkeley): Overview of the Berkeley network upgrade for Mina Protocol — the transition to the Berkeley proof system with zkApp support. - [Requirements](https://docs.minaprotocol.com/network-upgrades/berkeley/requirements): Berkeley upgrade is a major upgrade that requires all nodes in a network to upgrade to a newer version. It is not backward compatible. - [Archive Migration](https://docs.minaprotocol.com/network-upgrades/berkeley/archive-migration): Berkeley upgrade is a major upgrade that requires all nodes in a network to upgrade to a newer version. It is not backward compatible. - [Understanding archive migration](https://docs.minaprotocol.com/network-upgrades/berkeley/archive-migration/understanding-archive-migration): Overview of the migration tools and requirements to successfully migrate Devnet/Mainnet archive database. - [Archive migration prerequisites](https://docs.minaprotocol.com/network-upgrades/berkeley/archive-migration/archive-migration-prerequisites): Overview of the migration tools and requirements to successfully migrate the Devnet/Mainnet archive database. - [Installing the archive migration package](https://docs.minaprotocol.com/network-upgrades/berkeley/archive-migration/archive-migration-installation): Satisfying the archive migration prerequisites. - [Migrating Devnet/Mainnet Archive to Berkeley Archive](https://docs.minaprotocol.com/network-upgrades/berkeley/archive-migration/migrating-archive-database-to-berkeley): Steps to properly migrate archives from Devnet/Mainnet to Berkeley. - [Devnet/Mainnet database maintenance](https://docs.minaprotocol.com/network-upgrades/berkeley/archive-migration/mainnet-database-maintenance): Steps to properly maintain correctness of archive database. - [Example of Devnet Archive Migration (Debian)](https://docs.minaprotocol.com/network-upgrades/berkeley/archive-migration/debian-example): A copy-paste example of how to do a Devnet migration. - [Example of Mainnet Archive Migration (Docker)](https://docs.minaprotocol.com/network-upgrades/berkeley/archive-migration/docker-example): A copy-paste example of how to do a Mainnet migration. - [Appendix](https://docs.minaprotocol.com/network-upgrades/berkeley/archive-migration/appendix): archive node schema changes between Mainnet and Berkeley - [Upgrade Steps](https://docs.minaprotocol.com/network-upgrades/berkeley/upgrade-steps): Detailed upgrade steps and operators' tasks - [Post-Upgrade Flags and Configurations for Mainnet](https://docs.minaprotocol.com/network-upgrades/berkeley/flags-configs): Post-Upgrade Flags and Configurations for Mainnet - [Appendix](https://docs.minaprotocol.com/network-upgrades/berkeley/appendix): Berkeley Upgrade Appendix - [Mesa Upgrade](https://docs.minaprotocol.com/network-upgrades/mesa): Overview of the Mesa mainnet upgrade for Mina Protocol — expanded zkApp state, automode upgrades, and protocol improvements. - [Requirements](https://docs.minaprotocol.com/network-upgrades/mesa/requirements): Hardware requirements and pre-upgrade checklist for all node operator types upgrading to Mesa — block producers, SNARK coordinators, archive nodes, Rosetta API, and exchanges. - [Upgrade Modes](https://docs.minaprotocol.com/network-upgrades/mesa/upgrade-modes): Automode and Manual upgrade paths for the Mesa hard fork. Automode handles the transition automatically for daemon nodes; Manual gives operators full control. - [Mesa Fork Schedule](https://docs.minaprotocol.com/network-upgrades/mesa/fork-schedule): Concrete fork-schedule values for the Mesa upgrade — Mesa genesis timestamp, stop-transaction-slot (slot_tx_end), stop-network-slot (slot_chain_end), and pre-fork / Mesa release versions per network. - [Upgrade Steps](https://docs.minaprotocol.com/network-upgrades/mesa/upgrade-steps): Step-by-step Mesa upgrade instructions with per-role timelines and examples for block producers, SNARK workers, archive nodes, and exchanges. - [State Finalization](https://docs.minaprotocol.com/network-upgrades/mesa/upgrade-steps/state-finalization): State finalization phase of the Mesa upgrade — stabilization period between stop-transaction-slot and stop-network-slot. - [Upgrade](https://docs.minaprotocol.com/network-upgrades/mesa/upgrade-steps/upgrade): Upgrade phase of the Mesa hard fork — network halt, state export, and Mesa build publication. - [Post-Upgrade](https://docs.minaprotocol.com/network-upgrades/mesa/upgrade-steps/post-upgrade): Post-upgrade verification, health checks, and monitoring for the Mesa mainnet network. - [Examples](https://docs.minaprotocol.com/network-upgrades/mesa/upgrade-steps/examples): End-to-end Mesa upgrade walkthroughs by role and deployment style — block producer (automode/manual), archive node, zkApp developer, and exchange. - [Verify the Release](https://docs.minaprotocol.com/network-upgrades/mesa/verify-the-release): Independently verify that the published Mesa packages were built from the final pre-fork chain state, using mina-verify-packaged-fork-config. - [Archive Upgrade](https://docs.minaprotocol.com/network-upgrades/mesa/archive-upgrade): General guide for upgrading a Mina archive database to the Mesa schema — applies to Mesa Trail, devnet, and mainnet. - [Mesa Trail Network](https://docs.minaprotocol.com/network-upgrades/mesa/mesa-trail): Build matrix and connection guide for Mesa Trail, the current Mesa upgrade test network — Docker images, Debian packages, compatible SDK releases, and node setup. - [Archived Networks](https://docs.minaprotocol.com/network-upgrades/mesa/archived-networks): Historical reference for retired Mesa test networks — the preflight and MUT networks, their release versions, Docker tags, Debian channels, and fork values. - [Troubleshooting](https://docs.minaprotocol.com/network-upgrades/mesa/troubleshooting): Troubleshooting the Mesa upgrade — checking which binary your node is running, dispatcher behavior, and debug mode for automode operators. - [Archive Node Schema Changes](https://docs.minaprotocol.com/network-upgrades/mesa/appendix/archive-node-schema-changes): Reference of database schema changes applied to the Mina archive node during the Mesa hard fork — new columns, modified tables, and the SQL applied by the upgrade script. - [Upgrade Modes - Details](https://docs.minaprotocol.com/network-upgrades/mesa/appendix/upgrade-modes-details): In-depth technical details of the Mesa upgrade mechanism, including automode internals, the dispatcher, stop-slot system, and manual upgrade flow. - [Automode Docker Compose Quickstart](https://docs.minaprotocol.com/network-upgrades/mesa/appendix/automode-docker-compose-quickstart): Run a Mina node with automode enabled for the Mesa upgrade using Docker Compose. - [Glossary](https://docs.minaprotocol.com/network-upgrades/mesa/glossary): Definitions of key terms used throughout the Mesa upgrade documentation — stop-slots, automode, dispatcher, trustless/trustful upgrades, and more. ## zkApp Developers - [zkApps Development Frameworks](https://docs.minaprotocol.com/zkapps/zkapp-development-frameworks): zkApps (zero knowledge apps) are Mina Protocol smart contracts powered by zero knowledge proofs, specifically using zk-SNARKs. - [Introduction to o1js](https://docs.minaprotocol.com/zkapps/o1js): o1js is a general-purpose zk framework with the tools to create zk proofs. o1js is a TypeScript library for writing general-purpose zk programs and writing zk smart contracts for Mina. - [Introduction to o1js](https://docs.minaprotocol.com/zkapps/o1js): o1js is a general-purpose zk framework with the tools to create zk proofs. o1js is a TypeScript library for writing general-purpose zk programs and writing zk smart contracts for Mina. - [o1js Basic Concepts](https://docs.minaprotocol.com/zkapps/o1js/basic-concepts): Field elements are the basic unit of data in zero knowledge proof programming. Learn about built-in data types, functions, and common methods. - [Circuit-Writing Primer](https://docs.minaprotocol.com/zkapps/o1js/circuit-writing-primer): Overview of the circuit-writing features in o1js - [Gadgets](https://docs.minaprotocol.com/zkapps/o1js/gadgets): How gadgets work in o1js. - [Bitwise Operations](https://docs.minaprotocol.com/zkapps/o1js/bitwise-operations): Bitwise operations in o1js are implemented as gadgets. - [Foreign Field Arithmetic](https://docs.minaprotocol.com/zkapps/o1js/foreign-fields): Foreign field arithmetic in o1js. - [ECDSA](https://docs.minaprotocol.com/zkapps/o1js/ecdsa): ECDSA in o1js. - [zkApps Overview](https://docs.minaprotocol.com/zkapps/writing-a-zkapp): zkApps (zero knowledge apps) are Mina Protocol smart contracts powered by zero knowledge proofs, specifically using zk-SNARKs. Use this quickstart guide to deploy zkApps and resources for learning TypeScript. - [zkApps Overview](https://docs.minaprotocol.com/zkapps/writing-a-zkapp): zkApps (zero knowledge apps) are Mina Protocol smart contracts powered by zero knowledge proofs, specifically using zk-SNARKs. Use this quickstart guide to deploy zkApps and resources for learning TypeScript. - [zkApps Getting Started](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/getting-started-zkapps): How to get started writing zkApps (zero knowledge apps). - [Install zkApp CLI](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/install-zkapp-cli): Prerequisites and installation steps for the zkApp CLI. - [zkApps Getting Started](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/getting-started-zkapps): How to get started writing zkApps (zero knowledge apps). - [How to Write a zkApp](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/how-to-write-a-zkapp): Guided steps to write a zkApp that includes a smart contract and a UI. Create a smart contract with o1js for Mina Protocol. - [Testing zkApps with Lightnet](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/testing-zkapps-lightnet): Use lightweight Mina blockchain network (Lightnet) for testing on a local blockchain before you test with a live network. - [How to Deploy a zkApp](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/how-to-deploy-a-zkapp): Guided steps to configure your zkApp project, request funds from the Faucet and deploy zkApp to the Devnet. - [How to Write a zkApp UI](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/how-to-write-a-zkapp-ui): Guides steps to write a user interface for a zkApp that includes a smart contract and a UI to interact with it. - [Interacting With Mina](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/interact-with-mina): How to create zero knowledge proofs and how users can call zkApp methods. An account update can have proof, signature, or none authorizations. - [Security and zkApps](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/introduction-to-zkapps/secure-zkapps): An introduction to security considerations for zkApps, including common pitfalls and best practices. - [Off-Chain Storage](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/feature-overview/offchain-storage): An in-depth look at using offchain storage in o1js to extend your zkApp's storage. - [Off-Chain Storage](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/feature-overview/offchain-storage): An in-depth look at using offchain storage in o1js to extend your zkApp's storage. - [How to Fetch Events and Actions](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/feature-overview/fetch-events-and-actions): Use o1js to retrieve previously emitted events and actions from Mina archive node. Connect your zkApp smart contract to an archive node API endpoint and fetch and use events and actions. - [Time-Locked Accounts](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/feature-overview/time-locked-accounts): Use time-locking in Mina to implement vesting schedules. Practical examples of setting up a time-lock for MINA tokens using o1js. - [Custom Tokens](https://docs.minaprotocol.com/zkapps/writing-a-zkapp/feature-overview/custom-tokens): Learn how to use o1js for common token operations like minting, burning, and sending tokens. How to implement custom tokens on Mina and use the TokenContract class. - [Experimental features](https://docs.minaprotocol.com/zkapps/advanced/experimental): Experimental features are not considered production-ready. - [Experimental features](https://docs.minaprotocol.com/zkapps/advanced/experimental): Experimental features are not considered production-ready. - [zkApps for Ethereum Developers](https://docs.minaprotocol.com/zkapps/advanced/zkapps-for-ethereum-developers): How zkApps and Ethereum smart contracts compare, differences in language, execution environment, transaction costs, application storage, developer tooling, scaling, and consensus. - [Angular and GitHub Pages](https://docs.minaprotocol.com/zkapps/front-end-integration-guides/angular): Getting started with Angular - [Angular and GitHub Pages](https://docs.minaprotocol.com/zkapps/front-end-integration-guides/angular): Getting started with Angular - [Next JS and Vercel](https://docs.minaprotocol.com/zkapps/front-end-integration-guides/next): Getting started with Next JS and o1js, and deployments to Vercel - [zkApp Developer Tutorials](https://docs.minaprotocol.com/zkapps/tutorials): zkApp developer tutorials provide a hands-on walk-through of use cases that teach you how to achieve a defined goal. - [zkApp Developer Tutorials](https://docs.minaprotocol.com/zkapps/tutorials): zkApp developer tutorials provide a hands-on walk-through of use cases that teach you how to achieve a defined goal. - [Example: Anonymous Message Board Tutorial](https://docs.minaprotocol.com/zkapps/tutorials/anonymous-message-board): Steps to design and implement a semi-anonymous messaging protocol. - [Interacting with zkApps Server-Side](https://docs.minaprotocol.com/zkapps/tutorials/interacting-with-zkapps-server-side): Interact with a zkApp server-side or from your machine. - [zkApps and o1js Roadmap](https://docs.minaprotocol.com/zkapps/roadmap): zkApps and o1js roadmap, features, enhancements, and future development plans. - [zkApps and o1js FAQ](https://docs.minaprotocol.com/zkapps/faq): Answers to common questions about zkApps (zero knowledge apps) and o1js, a TypeScript library for writing zk smart contracts. - [Standards](https://docs.minaprotocol.com/zkapps/standards): This page lists established and upcoming standards for the mina ecosystem ## Mina Protocol - [Mina Protocol](https://docs.minaprotocol.com/mina-protocol): This section describes how the Mina Protocol works - [Proof of Stake (PoS)](https://docs.minaprotocol.com/mina-protocol/proof-of-stake): The proof of stake (PoS) consensus mechanism implemented in Mina. - [What's in a Block?](https://docs.minaprotocol.com/mina-protocol/whats-in-a-block): Description of a block in the Mina blockchain - [Block Producers](https://docs.minaprotocol.com/mina-protocol/block-producers): The role of a block producer in Mina is to achieve consensus and provide security to the blockchain. - [SNARK Workers](https://docs.minaprotocol.com/mina-protocol/snark-workers): What are snark workers - [Scan State](https://docs.minaprotocol.com/mina-protocol/scan-state): A data structure that allows decoupling the production of transaction SNARKs from block producers to snark workers. - [Time-Locked Accounts](https://docs.minaprotocol.com/mina-protocol/time-locked-accounts): What are time-locked accounts and how to use them. - [Sending a Payment](https://docs.minaprotocol.com/mina-protocol/sending-a-payment): How to send a MINA payment using the Mina CLI. - [Lifecycle of a Payment](https://docs.minaprotocol.com/mina-protocol/lifecycle-of-a-payment): An overview of a single payment lifecycle on the Mina Blockchain. In Mina, payments pass through several steps before they are verified and complete. ## Node Operators - [Node Operators](https://docs.minaprotocol.com/node-operators): Node operators participate in consensus and help compress data by generating zk-SNARKs. - [Validator Node](https://docs.minaprotocol.com/node-operators/validator-node): The essentials for running a Mina validator node — hardware requirements, key generation, staking, querying data, and logging. - [Requirements](https://docs.minaprotocol.com/node-operators/validator-node/requirements): Berkeley upgrade is a major upgrade that requires all nodes in a network to upgrade to a newer version. It is not backward compatible. - [Installation](https://docs.minaprotocol.com/node-operators/validator-node/installing-on-ubuntu-and-debian): Install the Mina daemon on Ubuntu, Debian, macOS, Windows, or Docker. - [Wallet Key Pair](https://docs.minaprotocol.com/node-operators/validator-node/generating-a-keypair): Generate and validate a wallet key pair that consists of a public key and a private key. - [Connect to Mainnet or Devnet](https://docs.minaprotocol.com/node-operators/validator-node/connecting-to-the-network): Steps to install Mina and connect a validator node to Mainnet or Devnet. - [Interacting with the Node via GraphQL API](https://docs.minaprotocol.com/node-operators/validator-node/querying-data): How to interact with a Mina node via GraphQL to query blockchain data and submit transactions. - [Delegating MINA](https://docs.minaprotocol.com/node-operators/validator-node/staking-and-snarking): Earn block rewards by delegating your MINA stake to a block producer. - [Logging](https://docs.minaprotocol.com/node-operators/validator-node/logging): Mina daemon log files, levels, formats, and export options. - [Block Producers](https://docs.minaprotocol.com/node-operators/block-producer-node): The role of a block producer in Mina is to achieve consensus and provide security to the blockchain. - [Block Producer Getting Started](https://docs.minaprotocol.com/node-operators/block-producer-node/getting-started): Start producing blocks on the Mina network by running a daemon with your block producer key. - [Hot and Cold Block Production](https://docs.minaprotocol.com/node-operators/block-producer-node/hot-cold-block-production): Secure your stake by producing blocks with a hot wallet while keeping funds in a cold wallet. - [Docker Compose Block Producer Node](https://docs.minaprotocol.com/node-operators/block-producer-node/docker-compose): Example of how to run a Mina Block Producer node using Docker Compose. - [SNARK Workers](https://docs.minaprotocol.com/node-operators/snark-workers): SNARK workers produce zk-SNARK proofs that keep the Mina blockchain succinct. - [SNARK Workers Getting Started](https://docs.minaprotocol.com/node-operators/snark-workers/getting-started): How to run a SNARK worker or SNARK coordinator on the Mina network. - [Docker Compose Snark Workers](https://docs.minaprotocol.com/node-operators/snark-workers/docker-compose): Run a Mina SNARK Coordinator and SNARK Worker using Docker Compose. - [Archive Node](https://docs.minaprotocol.com/node-operators/archive-node): What are Archive nodes. - [Archive Nodes Getting Started](https://docs.minaprotocol.com/node-operators/archive-node/getting-started): Mina archive nodes maintain historical information about the network, block, and transactions. A zkApp can retrieve events and actions from one or more Mina archive nodes. - [Archive Redundancy](https://docs.minaprotocol.com/node-operators/archive-node/archive-redundancy): Strategies for archive node redundancy, backup, and data recovery. - [Backfilling Missing Blocks](https://docs.minaprotocol.com/node-operators/archive-node/backfilling-missing-blocks): How to detect and repair gaps in a Mina archive database using archive dumps, precomputed blocks, mina-archive-blocks, and the mina-missing-blocks-auditor. - [Docker Compose Archive](https://docs.minaprotocol.com/node-operators/archive-node/docker-compose): Example of how to run a Mina archive node using Docker Compose. - [Archive Replayer](https://docs.minaprotocol.com/node-operators/archive-node/replayer): Use the mina-replayer tool to verify a Mina archive database by replaying its transactions and reconstructing the ledger state. - [Seed Peers](https://docs.minaprotocol.com/node-operators/seed-peers): What are seed peers - [Seed Peers Getting Started](https://docs.minaprotocol.com/node-operators/seed-peers/getting-started): How to run a seed peer. Seed Peers help connect to the network. - [Generating a libp2p Key Pair](https://docs.minaprotocol.com/node-operators/seed-peers/generating-a-libp2p-keypair): Generate a libp2p key pair for seed node identity on the Mina gossip network. - [Docker Compose Seed Peers](https://docs.minaprotocol.com/node-operators/seed-peers/docker-compose): Example of how to run a Mina Seed node using Docker Compose. - [Blockchain Data and History](https://docs.minaprotocol.com/node-operators/data-and-history): How to find blockchain data and history - [Rosetta API](https://docs.minaprotocol.com/node-operators/data-and-history/rosetta): Install and run Mina's implementation of the Rosetta API for blockchain integration, historical data queries, and exchange support. - [Running with Docker](https://docs.minaprotocol.com/node-operators/rosetta/run-with-docker): Run Mina’s implementation of Rosetta API with Docker. - [Docker Compose Rosetta](https://docs.minaprotocol.com/node-operators/rosetta/docker-compose): Example of how to run Mina Rosetta node using Docker Compose. - [Building from source](https://docs.minaprotocol.com/node-operators/rosetta/build-from-sources): Build Mina’s implementation of Rosetta API from sources. - [Code Samples](https://docs.minaprotocol.com/node-operators/rosetta/samples): Curl-based examples for common Rosetta API operations - [Requests and Responses](https://docs.minaprotocol.com/node-operators/rosetta/samples/requests): Mina-specific Rosetta request and response objects with curl examples - [Scanning Blocks](https://docs.minaprotocol.com/node-operators/rosetta/samples/scan-blocks): Poll for new blocks and inspect transactions using curl - [Tracking Deposits](https://docs.minaprotocol.com/node-operators/rosetta/samples/track-deposits): Monitor an address for incoming MINA deposits using curl - [Sending Transactions](https://docs.minaprotocol.com/node-operators/rosetta/samples/send-transactions): Build, sign, and submit a MINA transfer using the Rosetta Construction API - [Delegation Program](https://docs.minaprotocol.com/node-operators/delegation-program): The Mina Foundation Delegation Program for block producers. - [Mina Foundation Delegation Program](https://docs.minaprotocol.com/node-operators/delegation-program/foundation-delegation-program): How to Participate in the Mina Foundation Delegation Program. - [Uptime Tracking System](https://docs.minaprotocol.com/node-operators/delegation-program/uptime-tracking-system): Learn how to set up the uptime tracking system for the Mina Foundation Delegation Program. - [Mina Signer](https://docs.minaprotocol.com/node-operators/mina-signer): Key generation and transaction signing for node operators using mina-signer and the Rosetta offline signer CLI. - [Mina CLI Reference](https://docs.minaprotocol.com/node-operators/reference/mina-cli-reference): Reference for the Mina CLI (command line interface) which is the primary way to interact with the Mina network. - [Downgrading to Older Versions](https://docs.minaprotocol.com/node-operators/downgrading-to-older-versions): How to downgrade your Mina node from versions above 3.3.0 to 3.3.0 or below by converting on-disk state, avoiding a full rebootstrap. - [Troubleshooting](https://docs.minaprotocol.com/node-operators/troubleshooting): Answers to common problems when setting up a Mina daemon - [FAQ](https://docs.minaprotocol.com/node-operators/faq): Troubleshooting tips and answers to frequently asked questions about node operators and exchange integration in the Mina network. ## Exchange Operators - [Exchange Operators](https://docs.minaprotocol.com/node-operators/exchange-operators): Guide for exchanges integrating with the Mina blockchain using Rosetta API, archive nodes, and block producer nodes. ## Developer Tools - [Mina Signer](https://docs.minaprotocol.com/mina-signer): A NodeJS/Browser-compatible JavaScript library for signing transactions, generating keys, and integrating with o1js and Rosetta in the Mina Protocol. ## Mina Security - [Mina Security](https://docs.minaprotocol.com/mina-security): This section describes what measures what measures have been and are being taken to keep Mina secure. ## Operator-facing facts - [Exchange Integration FAQ](https://docs.minaprotocol.com/node-operators/faq#exchange-integration): Account creation fee 1 MINA, mempool capacity 3000 transactions, recommended 15-block confirmation, no official broadcast nodes, do not require memos for deposits. - [Daemon defaults](https://docs.minaprotocol.com/node-operators/validator-node/querying-data): GraphQL API on port 3085 by default; configurable via --rest-port. - [Lifecycle of a Payment](https://docs.minaprotocol.com/mina-protocol/lifecycle-of-a-payment): Transaction states from submission to finality, confirmation count vs reorg probability, what exchanges should wait for.