Home

Awesome

A collection about all things Diem (formerly Libra), Move & Facebook Zuckerbucks - Let's reinvent money with fast and cheap world-wide transfers; let's bank the 1.7 billion unbanked, ...

Awesome Diem (formerly Libra) and Move

Moving money around the world should be as easy and cheap as sending a text message (or a photo).

Best Diem (formerly Libra) Book of the Year 2020 Award Goes To...

<!-- todo/fix: check how to make image float left kramdown-style attribute list no longer work on github?! e.g. ![](i/libra-shrugged.png){: style="float: left"} -->

Libra Shrugged: How Facebook Tried to Take Over the Money by David Gerard, November 2020, 182 Pages -- Introduction: Taking over the money ++ A user's guide to Libra ++ The genesis of Libra: Beller's blockchain ++ To launch a Libra: Let’s start a crypto ++ Bitcoin: why Libra is like this ++ The Libra White Papers ++ Banking the unbanked ++ The Libra Reserve plan and economic stability ++ Libra, privacy and your digital identity ++ The regulators recoil in horror ++ David Marcus before the US House and Senate ++ July to September 2019: Libra runs the gauntlet ++ October 2019: Libra's bad month ++ Mark Zuckerberg before the US House ++ November 2019: The comedown ++ Central bank digital currencies ++ Epilogue: Libra 2.0: not dead yet ++ Appendix: 2010–2013: The rise and fall of Facebook Credits

What's News?

Goodbye Switzerland, hello United States. Facebook's Diem is moving its stablecoin project to the U.S., Mashable, May 13, 2021, -- The project isn't even Swiss-based anymore, as Diem's primary operations are being moved from Switzerland to the United States. Diem Association announced it has partnered with U.S.-based Silvergate Capital Corporation, whose Silvergate Bank will be the exclusive printer of the upcoming (private) Diem Dollar (≋USD) stablecoin. [...] Diem is also withdrawing its application for a payment system license from the Swiss Financial Markets Authority (FINMA). The company's plans "take the project fully within the US regulatory perimeter and no longer require a license from FINMA," says Stuart Levey, Chief of Diem (formerly Libra) Association. [...] Diem is planning to print a first small-batch of its (private) Diem Dollars (≋USD) stablecoin sometime in 2021.

[Libra is now Diem! New chiefs hired for launch in 2021!], Diem (formerly Libra Association) Press Release, December 1, 2020 -- The Libra Association announces the adoption of a new name and the recruitment of key [chief] executives, reinforcing [with smoke and mirrors] its organizational independence [from Facebook].

Q: Why the name change?

A: "The original [Libra] name was tied to an early iteration of the project that received a difficult reception from regulators. We have dramatically changed that proposition [humbly starting with printing (private) Diem Dollars (≋USD) only on an invite-only (private) network.", says Stuart Levey, Chief of Diem (formerly Libra) Association

Facebook's Libra may launch January 2021, with US dollars only - what this means - by David Gerard, November 2020 -- There will only be a US dollar token running on the network — no EUR or GBP, no synthetic Libra currency; Facebook's Novi (formerly Calibra) wallet is ready as a product, to be released in the US and some Latin American countries - "high-volume remittance corridors"; no date as yet, though Facebook hopes for January 2021

Diem (formerly Libra)

web: diem.com (formerly libra.org)

Q: Why is it called Libra? A: The Libra name was inspired by (1) Libra the Roman unit of weight measure, which was eventually used to mint coins. (2) Libra the astrological symbol is the balance of justice, and (3) Libra phonetically sounds like libre, which is French for free or freedom. The Libra name is a combination of money, justice, and freedom.

Q: Why is it called Diem? A: Diem stems from the famous latin phrase 'Carpe Diem' translating to 'Enjoy the present, make the most of today', a common mistranslation is 'Seize the Day' (according to Carpe diem @ Wiktionary).

Carpe is the second-person singular present active imperative of carpō "pick or pluck" used by Horace to mean "enjoy, seize, use, make use of". Diem is the accusative of dies "day". A more literal translation of carpe diem would thus be "pluck the day as it is ripe" - that is, enjoy the moment. It has been argued by various authors that this interpretation is closer to Horace's original meaning

-- Carpe diem @ Wikipedia

Historic - Libra Version 1.0 - Anno June 2019

The Official (Historic) Libra White Paper (V1.0), PDF Download (~600k, 12 Pages)

Libra's mission is to enable a simple global currency and financial infrastructure that empowers billions of people.

This document outlines our plans for a new decentralized blockchain, a low-volatility cryptocurrency, and a contract platform that together aim to create a new opportunity for responsible financial services innovation.

Currency / Money

Libra's goal: A stable cryptocurrency built on a secure and stable open-source blockchain, backed by a reserve of real assets, and governed by an independent association.

(Source: Libra White Paper (V1.0))

Libra is a stable coin backed by a basket of (four?) currencies (USD, EURO, GBP, JPY), and US Treasury securities in an attempt to avoid volatility (and speculation). Facebook has announced that each of the (100?) partners will stake an initial US$10 million, so Libra is backed by US$1 billion of solid currency, on the day it opens.

(Source: Libra (cryptocurrency) @ Wikipedia)

Q: What's a Microlibra? What's the smallest Libra subunit?

A: Libra can be broken into 1 million smaller units, that is, 0.000001 Libra (six digits). The official name for the smallest 0.000001 Libra unit is Microlibra.

Libra Rerseve

Q: What are the actual assets that will be backing each Libra coin? A: The actual assets will be a collection of low-volatility assets, including bank deposits and government securities in currencies from stable and reputable central banks. As the value of Libra will be effectively linked to a basket of fiat currencies, from the point of view of any specific currency, there will be fluctuations in the value of Libra. The makeup of the reserve is designed to mitigate the likelihood and severity of these fluctuations, particularly in the negative direction (i.e., even in economic crises). To that end, the above basket has been structured with capital preservation and liquidity in mind. On the capital preservation point, the association will only invest in debt from stable governments with low default probability that are unlikely to experience high inflation. In addition, the reserve has been diversified by selecting multiple governments, rather than just one, to further reduce the potential impact of such events. In terms of liquidity, the association plans to rely on short-dated securities issued by these governments, that are all traded in liquid markets that regularly accommodate daily trading volume in the tens or even hundreds of billions. This allows the size of the reserve to be easily adjusted as the number of Libra in circulation expands or contracts.

Mint & Burn Libras

The Libra Association is the only party able to create (mint) and destroy (burn) Libra. Coins are only minted when authorized resellers have purchased those coins from the association with real assets to fully back the new coins. Coins are only burned when the authorized resellers sell Libra coin to the association in exchange for the underlying assets. Since authorized resellers will always be able to sell Libra coins to the reserve at a price equal to the value of the basket, the Libra Reserve acts as a "buyer of last resort."

(Source: Libra White Paper (V1.0))

Digital Identity (Id)

Open Identity (Id) Standard

An additional goal of the Libra association is to develop and promote an open identity standard. We believe that decentralized and portable digital identity is a prerequisite to financial inclusion and competition.

(Source: Libra White Paper (V1.0))

Historic - Libra Version 2.0 - April 2020 Update (Nine Month Later)

The Official (Historic) Libra White Paper (V2.0), PDF Download (~1,300k, 29 Pages)

Note to readers: The first Libra Association white paper was published in June 2019. This new Libra Association white paper, published in April 2020, is intended to be a stand-alone update regarding the plans of the Libra Association. Additionally, supporting technical papers also published in June 2019 have been edited or retired.

(Source: Libra White Paper (V2.0))

Q: What's changed?

A: "Most notable evolutions are:

a) the creation of single currency stablecoins, e.g. ≋USD, ≋EUR, ≋GBP, in addition to Libra Coin (≋LBR), which will now be a Move blockchain contract "stitching" together fixed nominal weights of underlying stablecoins.

b) a comprehensive network-level system around anti-money laundering (AML), combatting the Financing of Terrorism (CFT), and sanctions enforcement.

c) replacing the originally planned transition to a permissionless [public] form of [blockchain] governance to a market-driven open and competitive [private invite-only] network [managed by Facebook].

d) building stronger protections into the design of the Libra Reserve to protect consumers, even in the most adverse [bank run can-I-get-my-money-back] situations.",

says David Marcus (Head of Novi @ Facebook Financial)

Diem - December 2020 Rename

Libra is Now Diem!

The Official Diem White Paper

Note to Readers: On December 1, 2020, the Libra Association was renamed to Diem Association. This white paper, originally published by the Libra Association in June 2019 and then re-issued as a stand-alone update in April 2020, replaces previous versions published by the Association.

(Source: Diem White Paper)

<!-- todo - still linking to "old" unchaged libra v2.0 pdf [PDF Download (~1,300k, 29 Pages)](https://github.com/openblockchains/blockchain-whitepapers/raw/master/diem.pdf) keep link - why? why not? -->

Official Learn Diem Frequently Asked Questions (FAQs) and Answers:

Q: What is the Diem payment system?

The Diem payment system incorporates three aspects that work together to create a financial system:

  1. A secure, scalable, and reliable blockchain as the backbone of the payment system;
  2. Diem Coins that are backed by a reserve of assets made up of cash or cash equivalents and very short-term government securities; and
  3. Governance by the Diem Association and its subsidiary Diem Networks, tasked with developing and operating the payment system.

Q: What are Diem Coins?

Diem Coins are single-currency stablecoins (e.g., ≋USD, ≋EUR, and ≋GBP) and a multi-currency coin (≋XDM) supported on the Diem payment system.

Q: What is a Diem single-currency stablecoin?

A: Diem single-currency stablecoin (e.g., ≋USD, ≋EUR, and ≋GBP) is a (private) crypto currency that has a 1:1 face value to a (public) national currency (USD, EUR, and GBP)). Diem single-currency stablecoins will be fully backed by the Diem Reserve, consisting of cash or cash equivalents and very short-term government securities denominated in the same national currency (USD, EUR, and GBP) as the stablecoins.

Q: What is a Diem multi-currency coin (≋XDM)?

A: ≋XDM is a (private) world crypto currency composed of the major single-currency stablecoins (e.g., ≋USD, ≋EUR, and ≋GBP) available on the Diem network for use in world-wide cross-border settlements or as an alternative (private) currency replacing the unstable, high-inflation (public) national currency leading to ("Diem-ization" instead of "Dollar-ization") for people and businesses in almost all countries that will never have a single-currency stablecoin on the Diem network.

Q: How can I get Diem Coins?

A: We expect most users will be able to buy Diem Coins through exchanges that list Diem Coins or through the applications that will be built on the Diem Blockchain, including digital wallets and other financial products and services.

Q: How can I use Diem Coins?

A: Diem Coin holders can use Diem Coins for everyday use to pay for goods and services (if big if accepted by the seller), send Diem Coins to other users, or cash out the Diem Coins back into the local (public) national currency.

Org

Diem (formerly Libra) Association, Switzerland, Quai de l'Ile 13, Gèneve 1204.

The Diem (formerly Libra) Association is a [self-proclaimed] independent membership organization [setup, financed and managed by Facebook], headquartered in Geneva, Switzerland.

<!-- break -->

What's News?

Official Learn Diem Frequently Asked Questions (FAQs) and Answers:

Q: What is the purpose of the Diem Association?

The Association's purpose is to govern the Diem network and Diem Reserve; oversee the operation and evolution of the Diem payment system; help [Facebook] building services on top of the Diem Blockchain in a safe and compliant manner; and establish grant-making for banking the 1.7 billion unbanked.

Are We Decentralized Yet?

Libra V1.0 - Anno June 2019

The Official (Historic) Libra Roadmap White Paper from Permissioned (Members-Only) to Permissionless (Public) Blockchain, PDF Download (~50k, 5 Pages)

We believe that for the Libra network to achieve its full potential, it needs to be permissionless. As a result, one of the association's directives will be to work with the community to research and implement this transition, which will begin within five years of the public launch of the Libra Blockchain and ecosystem.

Libra V2.0 Update - Nine Month Later in April 2020

"Most notable evolutions are: ... replacing the originally planned transition to a permissionless [public] form of [blockchain] governance to a market-driven open and competitive [private invite-only] network [managed by Facebook].", says David Marcus (Head of Novi @ Facebook Financial)

Code

The Diem Blockchain is open source. We're working to build a trusted and innovative financial network that empowers people and businesses around the world.

-- Diem Developers

github: diemassociation (formerly libra)

Developers, Developers, Developers

Diem Developer Website HQ - developers.diem.com

Community

What's News?

"The Diem Developers website is live with a bundle of goodness. Featuring a reference wallet, tools for merchants, Move components, and more!", says David Marcus, Facebook, Head of Novi (formerly Head of Calibra), December 1, 2020

From the Diem Forum post "Libra is now Diem":

New Developer Site - We've restructured our developer website, written in-depth tutorials, and added tons of new documentation. Check out the new Diem Documentation site developers.diem.com

Reference Projects - We've built two new interactive projects that are now ready to test:

  1. Reference Wallet (developers.diem.com/reference-wallet) - Set up an account, transfer funds in and out of the wallet, and send or request coins - all running fully on the testnet.

  2. Reference Merchant (developers.diem.com/docs/merchant/try-demo-merchant) - Experience Diem in action with a demo storefront and purchasing flows, including integration with the reference wallet.

Move Documentation - We built our blockchain with Move, a new Rust-based language with resource scarcity and improved asset protections. And while it was created for Libra/Diem, we always hoped Move would be a resource for all blockchain developers, regardless of the project.

We're excited to announce the long-awaited official Move documentation, publicly available for the first time developers.diem.com/docs/move/overview.

Blockchain / Protocol

Abstract: The Diem Blockchain is a decentralized, programmable database designed to support a low-volatility cryptocurrency that will have the ability to serve as an efficient medium of exchange for billions of people around the world. We present a proposal for the Diem protocol, which implements the Diem Blockchain and aims to create a financial infrastructure that can foster innovation, lower barriers to entry, and improve access to financial services. To validate the design of the Diem protocol, we have built an open-source prototype implementation - Diem Core - in anticipation of a global collaborative effort to advance this new ecosystem.

The Diem protocol allows a set of replicas - referred to as validators - from different authorities to jointly maintain a database of programmable resources. These resources are owned by different user accounts authenticated by public key cryptography and adhere to custom rules specified by the developers of these resources. Validators process transactions and interact with each other to reach consensus on the state of the database. Transactions are based on predefined and, in future versions, user-defined contracts in a new programming language called Move.

We use Move to define the core mechanisms of the blockchain, such as the currency and validator membership. These core mechanisms enable the creation of a unique governance mechanism that builds on the stability and reputation of existing institutions in the early days but transitions to a fully open system over time.

Move Programming Language

The (Secure) Contract-Oriented Programming Language for Digital (Blockchain) Resources / Assets

The Official Move: A Language With Programmable Resources White Paper, PDF Download (~200k, 26 Pages)

Abstract: We present Move, a safe and flexible programming language for the Diem Blockchain. Move is an executable bytecode language used to implement custom transactions and 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 Diem protocol in Move, including Diem coin, transaction processing, and validator management.

Q: What's Move? A: A statically-typed programming language derived from Rust, compiled to bytecode.

Update December 2020 - Official Move Documention Goes Live

Welcome to Move, a next generation language for secure, sandboxed, and formally verified programming. Its first use case is for the Diem blockchain, where Move provides the foundation for its implementation. Move allows developers to write programs that flexibly manage and transfer assets, while providing the security and protections against attacks on those assets. However, Move has been developed with use cases in mind outside a blockchain context as well.

Move takes its cue from Rust by using resource types with move (hence the name) semantics as an explicit representation of digital assets, such as currency.

[...]

Move has all of the syntax and semantics you would expect from a first-class programming language. However, there is an entire architecture dedicated to creating, using, and executing code based on Move. The diagram below shows the architecture of Move as it pertains to the Diem Payment Network, from using the source language to script execution.

(Source: Move Introduction @ Diem Developers)

Examples

p2p_payment.mvir - Example of a peer-to-peer transaction script:

// Simple peer-peer payment example.

// Use LibraAccount module published on the blockchain at account address
// 0x0...0 (with 64 zeroes). 0x0 is shorthand that the intermediate representation (IR) pads out to
// 256 bits (64 digits) by adding leading zeroes.
import 0x0.LibraAccount;
import 0x0.LibraCoin;
main(payee: address, amount: u64) {
  // The bytecode (and consequently, the intermediate representation (IR)) has typed locals.  The scope of
  // each local is the entire procedure. All local variable declarations must
  // be at the beginning of the procedure. Declaration and initialization of
  // variables are separate operations, but the bytecode verifier will prevent
  // any attempt to use an uninitialized variable.
  let coin: R#LibraCoin.T;
  // The R# part of the type above is one of two *kind annotation* R# and V#
  // (shorthand for "Resource" and "unrestricted Value"). These annotations
  // must match the kind of the type declaration (e.g., does the LibraCoin
  // module declare `resource T` or `struct T`?).

  // Acquire a LibraCoin.T resource with value `amount` from the sender's
  // account.  This will fail if the sender's balance is less than `amount`.
  coin = LibraAccount.withdraw_from_sender(move(amount));
  // Move the LibraCoin.T resource into the account of `payee`. If there is no
  // account at the address `payee`, this step will fail
  LibraAccount.deposit(move(payee), move(coin));

  // Every procedure must end in a `return`. The IR compiler is very literal:
  // it directly translates the source it is given. It will not do fancy
  // things like inserting missing `return`s.
  return;
}

More contract samples (from the Move Contract Playground):

mint.mvir:

import 0x0.LibraAccount;
import 0x0.LibraCoin;
main(payee: address, amount: u64) {
  LibraAccount.mint_to_address(move(payee), move(amount));
  return;
}

transfer.mvir:

import 0x0.LibraAccount;
main (payee: address, amount: u64) {
  LibraAccount.pay_from_sender(move(payee), move(amount));
  return;
}

balance.mvir:

import 0x0.LibraAccount;

main() {
    let addr: address;
    let struct1_original_balance: u64;
    addr = get_txn_sender();
    struct1_original_balance = LibraAccount.balance(copy(addr));
    assert(copy(struct1_original_balance) > 10, 77);

    return;
}

address.mvir:

main() {
    let a1: address;
    let a2: address;
    let a3: address;
    let a4: address;
    let a5: address;
    let a6: address;
    let a7: address;
    let a8: address;
    let a9: address;

    a1 = 0x1;
    a2 = 0x01;
    a3 = 0x0001;
    a4 = 0x00000001;
    a5 = 0x0000000000000001;
    a6 = 0x00000000000000000000000000000001;
    a7 = 0x000000000000000000000000000000001;
    a8 = 0x000000000000000000000000000000000000000000000000000000000000001;
    a9 = 0x0000000000000000000000000000000000000000000000000000000000000001;

    assert(copy(a1) == copy(a2), 42);
    assert(copy(a2) == copy(a3), 43);
    assert(copy(a3) == copy(a4), 44);
    assert(copy(a4) == copy(a5), 45);
    assert(copy(a5) == copy(a6), 46);
    assert(copy(a6) == copy(a7), 47);
    assert(copy(a7) == copy(a8), 48);
    assert(copy(a8) == copy(a9), 49);
    return;
}

create_account.mvir:

import 0x0.LibraAccount;
import 0x0.LibraCoin;

main() {
    let addr: address;
    let account_exists: bool;
    let ten_coins: R#LibraCoin.T;
    let account_exists_now: bool;

    addr = 0x0111111111111111111111111111111111111011111111111111111111111110;
    account_exists = LibraAccount.exists(copy(addr));
    assert(!move(account_exists), 83);

    ten_coins = LibraAccount.withdraw_from_sender(10);
    create_account(copy(addr));
    LibraAccount.deposit(copy(addr), move(ten_coins));

    account_exists_now = LibraAccount.exists(copy(addr));
    assert(move(account_exists_now), 84);

    return;
}

Consensus with Byzantine Fault Tolerance (BFT)

Inside Diem Byzantine Fault Tolerance (BFT) and the HotStuff Protocol - The Truth Machine with State Replication

Abstract: This report presents DiemBFT, a robust and efficient state machine replication system designed for the Diem Blockchain. DiemBFT is based on HotStuff, a recent protocol that leverages several decades of scientific advances in Byzantine fault tolerance (BFT) and achieves the strong scalability and security properties required by internet settings. DiemBFT further refines the HotStuff protocol to introduce explicit liveness mechanisms and provides a concrete latency analysis. To drive the integration with the Diem Blockchain, this document provides specifications extracted from a fully-functional simulator. These specifications include state replication interfaces and a communication framework for data transfer and state synchronization among participants. Finally, this report provides a formal safety proof that induces criteria to detect misbehavior of BFT nodes, coupled with a simple reward and punishment mechanism.

HotStuff

Testnet

Blockchain Explorer

Transactions, Transactions, Transactions

Wallets

Official

Historic

Calibra (web: calibra.com) - Facebook's official wallet for Libra. Calibra will be available in the Apple App Store, Google Play Store, integrated into Facebook's Messenger and WhatsApp. Calibra's launch is planned for the 2nd half of 2020. Calibra will be a custodial wallet - meaning they hold the actual Libra tokens - for the user (that's you!) - and will require KYC (Know Your Customer).

Rebranded in May 2020

Welcome to Novi (formerly Calibra) by David Marcus, Facebook, Head of Novi (formerly Head of Calibra), May 26, 2020 -- With Novi, sending money will be as easy as sending a message. You'll be able to use Novi as a stand-alone app, as well as in Messenger and WhatsApp. There will be no hidden charges to add, send, receive or withdraw money and your transfers will arrive instantly. All Novi customers will be verified using government-issued ID, and fraud protections will be built in throughout the app.

Q: Why the name change? A: "People were confusing Libra [the "pseudo-independent" payment network - "blockchain"] and Calibra [the official Facebook Libra wallet] all the time", says David Marcus.

Novi (web: novi.com, twitter: @novi) - Facebook's official wallet for Libra from Facebook Financial (F2) that also incl. Facebook Pay, WhatsApp Pay, among all things payments.

<!-- break -->

Others

Articles & Live Demos

Libraries

JavaScript

Python

Ruby

Go

Java Libraries

Move

Courses / Code Schools

CryptoZombies (Libra/Move Edition) Upcoming! - learn Libra blockchain contract programming by coding your own game using the Move programming language; completely free and open source

MoveCastle - learn Libra blockchain contract programming by coding your own game using the Move programming language; by Blockchain Lab of Beijing Normal University and White Matrix Corporation

More

<!-- break -->

Forks & Alternatives

Historic

Open Libra

An open platform for financial inclusion. Not run by Facebook.

web: openlibra.io, github: open-libra

build on Libra's strengths but extend it where needed. OpenLibra aims to be technically (Move Language) and financially compatible (Libra coin), embracing what is powerful, but also replacing what's concerning in a non-adversarial way.

Timeline

<!-- break -->

What's upcoming? See the Libra Core Roadmap

Reference

Trivia & Fun Facts

Did you know? David Marcus is the public face of Facebook's Libra - but Morgan Beller started the cryptocurrency effort in 2017, before Marcus was even at Facebook. (Source: Meet Morgan Beller, the 26-year-old woman behind Facebook's plan to make its own currency, by Salvador Rodriguez (CNBC), July 20, 2019)

Articles

Official

Pro

Neutral

Regulation, Regulation, Regulation

There's a bipartisan bill in US Congress to firmly rule that managed stablecoins - they mean Libra - are securities. Sylvia Garcia (D-TX) and Lance Gooden (R-TX) are pretty sure that Libra-like tokens would be securities already - it was immediately obvious that this would constitute an exchange-traded fund or synthetic foreign-exchange derivative - but they want to nail it down. Whether this bill has legs depends ... (via David Gerard, Nov 22, 2019 - News: Libra and stablecoins and [the US Treasury's Financial Crimes Enforcement Network] (FinCEN))

Scams, Scams, Scams - The Art of the Steal

Skeptic / Critical Thinking

Awesome Awesomeness

A curated list of awesome lists

More curated lists or dashboards

Historic

Meta

License

The list is dedicated to the public domain. Use it as you please with no restrictions whatsoever.