open
close
Libra

Libra

White Paper
  • Vision
  • Association
  • Developers
  • Learn
  • Media
  • White Paper

Developers

/Libra Docs
  • Overview
  • Libra Docs
  • Governance
  • Community
  • GitHub
open
close

›Technical Papers

Learn About Libra

  • Welcome
  • Libra Protocol: Key Concepts
  • Life of a Transaction
  • Technical Papers

    • The Libra Blockchain
    • Move: A Language With Programmable Resources
    • State Machine Replication in the Libra Blockchain

Try Libra Core

  • My First Transaction
  • Getting Started With Move
  • Run a Local Network
  • Run Move Programs Locally

Community

  • Libra Open Source
  • Contribution Guide
  • Coding Guidelines
  • Reporting Vulnerabilities

Libra Codebase

  • Libra Core Overview
  • READMEs

    • Admission Control
    • Bytecode Verifier
    • Consensus
    • Crypto
    • Mempool
    • Move IR Compiler
    • Move Language
    • Network
    • Storage
    • Virtual Machine

Reference

  • Libra CLI
  • Glossary
Edit

Move: A Language With Programmable Resources

Note to readers: This report was published before the Association released White Paper v2.0, which includes a number of key updates to the Libra payment system. Outdated links have been removed, but otherwise, this report has not been modified to incorporate the updates and should be read in that context.

Abstract

We present Move, a safe and flexible programming language for the Libra Blockchain. Move is an executable bytecode language used to implement custom transactions and smart contracts. The key feature of Move is the ability to define custom resource types with semantics inspired by linear logic: a resource can never be copied or implicitly discarded, only moved between program storage locations. These safety guarantees are enforced statically by Move’s type system. Despite these special protections, resources are ordinary program values — they can be stored in data structures, passed as arguments to procedures, and so on. First-class resources are a very general concept that programmers can use not only to implement safe digital assets but also to write correct business logic for wrapping assets and enforcing access control policies. The safety and expressivity of Move have enabled us to implement significant parts of the Libra protocol in Move, including Libra coin, transaction processing, and validator management.

Downloads

Move: A Language With Programmable Resources PDF Download

Previous versions

← The Libra BlockchainState Machine Replication in the Libra Blockchain →
  • Abstract
    • Downloads
Libra
Learn About Libra
Welcome to LibraLibra ProtocolLibra BlockchainLife of a Transaction

Try Libra Core
My First TransactionGetting Started With Move
Policies
Privacy PolicyTerms of UseCookies PolicyCode of Conduct

Community
Developer ForumNewsletter
Social
libra
Follow @libradev
© Libra Association

To help us provide relevant content, analyze our traffic, and provide a variety of features, we use cookies. By clicking on or navigating the site, you agree to allow us to collect information on and off the Libra Website through cookies. To learn more, view our Cookie Policy:

Cookies Policy