Running on the Internet Computer Blockchain
  1. The Motoko Programming Language
  2. Part 1
  3. 1. Introduction
    ❱
    1. 1.1. Getting Started
  4. 2. Common Programming Concepts
    ❱
    1. 2.1. Variables
    2. 2.2. Mutability
    3. 2.3. Comments
    4. 2.4. Types
      ❱
      1. 2.4.1. Tuples
      2. 2.4.2. Records
      3. 2.4.3. Variants
      4. 2.4.4. Immutable Arrays
      5. 2.4.5. Mutable Arrays
    5. 2.5. Operators
      ❱
      1. 2.5.1. Numeric operators
      2. 2.5.2. Relational operators
      3. 2.5.3. Assignment operators
      4. 2.5.4. Text concatenation
      5. 2.5.5. Logical expressions
      6. 2.5.6. Bitwise operators
      7. 2.5.7. Operator precedence
    6. 2.6. Pattern Matching
    7. 2.7. Functions
    8. 2.8. Options and Results
    9. 2.9. Control Flow
      ❱
      1. 2.9.1. If Expression
      2. 2.9.2. If Else Expression
      3. 2.9.3. Switch Expression
    10. 2.10. Objects and Classes
      ❱
      1. 2.10.1. Objects
      2. 2.10.2. Classes
    11. 2.11. Modules and Imports
    12. 2.12. Assertions
  5. 3. Internet Computer Programming Concepts
    ❱
    1. 3.1. Actors
      ❱
      1. 3.1.1. From Actor to Canister
      2. 3.1.2. Canister Calls from Clients
    2. 3.2. Principals and Authentication
    3. 3.3. Async Data
      ❱
      1. 3.3.1. Shared Types
      2. 3.3.2. Candid
    4. 3.4. Basic Memory Persistence
      ❱
      1. 3.4.1. Upgrades
      2. 3.4.2. Stable Variables
  6. Part 2
  7. 4. Advanced Types
    ❱
    1. 4.1. Generic Types
    2. 4.2. Subtyping
    3. 4.3. Recursive Types
    4. 4.4. Type Bounds
  8. 5. The Base Library
    ❱
    1. 5.1. Primitive Types
      ❱
      1. 5.1.1. Bool
      2. 5.1.2. Nat
      3. 5.1.3. Int
      4. 5.1.4. Float
      5. 5.1.5. Principal
      6. 5.1.6. Text
      7. 5.1.7. Char
      8. 5.1.8. Bounded Number Types
        ❱
        1. 5.1.8.1. Nat8
        2. 5.1.8.2. Nat16
        3. 5.1.8.3. Nat32
        4. 5.1.8.4. Nat64
        5. 5.1.8.5. Int8
        6. 5.1.8.6. Int16
        7. 5.1.8.7. Int32
        8. 5.1.8.8. Int64
      9. 5.1.9. Blob
    2. 5.2. Utility Modules
      ❱
      1. 5.2.1. Iterators
      2. 5.2.2. Hash
      3. 5.2.3. Option
      4. 5.2.4. Result
      5. 5.2.5. Order
      6. 5.2.6. Error
      7. 5.2.7. Debug
    3. 5.3. Data Structures
      ❱
      1. 5.3.1. Array
      2. 5.3.2. List
      3. 5.3.3. Buffer
      4. 5.3.4. HashMap
      5. 5.3.5. RBTree
    4. 5.4. More Data Structures
    5. 5.5. IC APIs
      ❱
      1. 5.5.1. Time
      2. 5.5.2. Timer
      3. 5.5.3. CertifiedData
      4. 5.5.4. Random
      5. 5.5.5. Experimental
  9. 6. Advanced Concepts
    ❱
    1. 6.1. Async Programming
    2. 6.2. Scalability
      ❱
      1. 6.2.1. Actor Classes
      2. 6.2.2. Stable Storage
    3. 6.3. System API's
      ❱
      1. 6.3.1. Message Inspection
      2. 6.3.2. Timers
      3. 6.3.3. Certified Variables
      4. 6.3.4. Pre-upgrade and Post-upgrade
      5. 6.3.5. Cryptographic Randomness
  10. Part 3
  11. 7. Project Deployment
    ❱
    1. 7.1. Installing the SDK
    2. 7.2. Local Deployment
    3. 7.3. Canister Status
    4. 7.4. Identities and PEM Files
    5. 7.5. Cycles and ICP
    6. 7.6. Cycles Wallet
    7. 7.7. IC Deployment
  12. 8. Common Internet Computer Canisters
    ❱
    1. 8.1. IC Management Canister
    2. 8.2. ICP Ledger Canister
    3. 8.3. Cycle Minting Canister
  13. 9. Internet Computer Standards
    ❱
    1. 9.1. ICRC1
  14. 10. Tokenized Comments Example
  15. APPENDIX
  16. 11. TABLES

The Motoko Programming Language Book

Scalability