Home / Wiki / M / Move (Programming Language)

Move (Programming Language)

Cryptocurrency and Digital AssetsUpdated 13 Nov 2026

Move is a programming language for writing smart contracts and other on-chain programs. It was developed by engineers at Facebook, now Meta, for the Libra blockchain project announced in 2019 and later renamed Diem. Libra was planned as a global payment network built around a stablecoin, and its designers wanted a language in which the rules for creating and moving money would be hard to get wrong. Its defining idea is that digital assets are represented as "resources", a special kind of value that the language will not allow to be copied or accidentally discarded, only moved from one place to another, which is where the name comes from.

Diem was abandoned in early 2022, but Move survived it. Former members of the Diem team founded two companies that launched Move-based layer-1 blockchains: Aptos, whose mainnet went live in October 2022, and Sui, launched in May 2023. Several other projects have since adopted versions of the language. Move is open source, and each chain maintains its own variant.

01

Move in plain terms

In most programming languages, a number in memory is just a number: it can be copied as many times as the program likes. That is dangerous when the number represents money, because a mistake could duplicate a balance or make it vanish. Move works more like handling physical coins. A coin can be handed from one person to another, but it cannot be photocopied, and it cannot be dropped on the floor and forgotten; the program has to put it somewhere deliberately.

The language enforces these rules before the code ever runs, so many mistakes that would cause losses in other systems simply will not compile. Developers still need to design their programs carefully, but a whole category of errors becomes much harder to make.

02

Design features

  • Resource types. Values can be marked with abilities that control whether they may be copied, dropped or stored. Tokens and other assets lack the ability to be copied or dropped, so the compiler forces programs to account for every unit.
  • Modules. Code is organised into modules that define types and the only functions allowed to create or change them, similar to the way a central bank alone can print its currency.
  • Bytecode verification. Before code is published on-chain, a verifier checks that it obeys the type and resource rules, so even hand-written bytecode cannot break them.
  • Formal verification. A tool called the Move Prover lets developers state properties, such as "total supply never changes", and mathematically check that the code satisfies them.
  • No dynamic dispatch by default. Calls between modules are fixed when code is published, which makes behaviour easier to predict and limits some attack patterns.
03

Move compared with Solidity

Most smart contracts on Ethereum and compatible chains are written in Solidity and run on the Ethereum Virtual Machine. In Solidity, a token such as an ERC-20 is usually a number in a contract's internal ledger, and safety depends on the developer writing the bookkeeping correctly. Move instead builds assets into the type system. Supporters argue this prevents classes of bug exploits such as accidental duplication of balances and some re-entrancy problems, which have caused large losses on other chains. The trade-off is that Move is newer, has fewer developers, libraries and audit firms, and is less familiar to programmers coming from Ethereum.

04

Variants on Aptos and Sui

Aptos uses a version of Move close to the original Diem design, in which resources are stored under user accounts. Sui developed its own variant, often called Sui Move, built around "objects" that each have a unique identifier and an owner. Sui's object model lets transactions that touch unrelated objects be processed in parallel, which the network uses to increase throughput. Because of these differences, code written for one chain usually needs changes before it can run on the other.

05

Adoption and criticism

Move's adoption depends largely on the success of the chains that use it. Its safety features have been praised by security researchers, and teams have explored bringing Move to other ecosystems. Critics note that a safer language does not remove logic errors, poorly designed economics or risks in the surrounding infrastructure, and Move-based applications have still suffered exploits. The divergence between variants also splits an already small developer community. Whether Move becomes a widely used standard or remains tied to a few networks is still an open question.

Last updated 13 Nov 2026