Welcome to Sui, a next generation smart contract platform with high throughput, low latency, and an asset-oriented programming model powered by the Move programming language! Here are some suggested starting points:
- To jump right into building smart contract applications on top of Sui, go to Move Quick Start.
- To experiment with a sample Sui wallet, check out Wallet Quick Start.
- To understand what's possible by browsing Move code built on top of Sui, review the examples
- To start coding against Sui's REST API's, start here
- To go deep on how Sui works, understand Key Concepts.
- To learn what distinguishes Sui from other blockchain systems, see What Makes Sui Different?.
Sui is a distributed ledger that stores a collection of programmable objects, each with a globally unique ID. Every object is owned by a single address, and each address can own an arbitrary number of objects.
The ledger is updated via a transaction sent by a particular address. A transaction can create, destroy, and write objects, as well as transfer them to other addresses.
Structurally, a transaction contains a set of input object references and a pointer to a Move code object that already exists in the ledger. Executing a transaction produces updates to the input objects and (if applicable) a set of freshly created objects along with their owners. A transaction whose sender is address A can accept objects owned by A, shared objects, and objects owned by other objects in the first two groups as input.
flowchart LR
CC(CLI Client) --> ClientService
RC(Rest Client) --> ClientService
RPCC(RPC Client) --> ClientService
ClientService --> AuthorityAggregator
AuthorityAggregator --> AC1[AuthorityClient] & AC2[AuthorityClient]
subgraph Authority1
AS[AuthorityState]
end
subgraph Authority2
AS2[AuthorityState]
end
AC1 <==>|Network TCP| Authority1
AC2 <==>|Network TCP| Authority2
Sui authorities agree on and execute transactions in parallel with high throughput using Byzantine Consistent Broadcast.
See the Move Quick Start for installation, defining custom objects, object operations (create/destroy/update/transfer/freeze), publishing, and invoking your published code.
See the Wallet Quick Start for installation, querying the chain, client setup, sending transfer transactions, and viewing the effects.