# Learn Move 101

Here you'll find hands-on Move examples covering smart contracts, asset management, and on-chain logic. Learn by doing with clear, practical guides.

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td></td><td><strong>Getting Started with Move ></strong></td><td>Learn Move with step-by-step example—building a strong foundation for smart contract development on Move.</td><td><a href="/pages/7kar5n80RSRmY7kozyCn">/pages/7kar5n80RSRmY7kozyCn</a></td></tr><tr><td></td><td><strong>Unsigned Integers in Move ></strong></td><td>Learn how Move's unsigned integers affect storage, performance, and gas efficiency.</td><td><a href="/pages/sKnphpSOXsOdsTiv2XEg">/pages/sKnphpSOXsOdsTiv2XEg</a></td></tr><tr><td></td><td><strong>Math Operations in Move ></strong></td><td>Move supports basic math operations with integer precision, requiring typecasting for different unsigned integer types.</td><td><a href="/pages/CdlNwpdpW3aU0KWUakcb">/pages/CdlNwpdpW3aU0KWUakcb</a></td></tr><tr><td></td><td><strong>Using Vectors in Move ></strong></td><td>Vectors in Move are dynamic lists that adjust in size, ideal for managing data collections, including structs.</td><td><a href="/pages/Nxxd5FpCosduG3qonWNu">/pages/Nxxd5FpCosduG3qonWNu</a></td></tr><tr><td></td><td><strong>Reading Resource Data with borrow_global ></strong></td><td><code>borrow_global</code> reads a resource struct from a specific address without a signer, but the function must declare <code>acquires ResourceName</code>.</td><td><a href="/pages/2tr5MlgUoA8RoTQerVv9">/pages/2tr5MlgUoA8RoTQerVv9</a></td></tr><tr><td></td><td><strong>Pass-by-Value vs. Pass-by-Reference ></strong></td><td>Move uses pass-by-value for copies and pass-by-reference (&#x26; for reading, &#x26;mut for modifying) to data handling.</td><td><a href="/pages/raZjcEgtGdcNH3CjIIB2">/pages/raZjcEgtGdcNH3CjIIB2</a></td></tr><tr><td></td><td><strong>Adding Elements with vector::push_back ></strong></td><td><code>vector::push_back</code> adds elements to a vector using a mutable reference (<code>&#x26;mut</code>), allowing dynamic storage updates.</td><td><a href="/pages/nQE4NupKo2o6gE312vxV">/pages/nQE4NupKo2o6gE312vxV</a></td></tr><tr><td></td><td><strong>Emitting Events with event::emit ></strong></td><td>Events let smart contracts send signals that external apps can track in real time.</td><td><a href="/pages/jRmEIjEWbzXZRdrA5w8W">/pages/jRmEIjEWbzXZRdrA5w8W</a></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://supraoracles.gitbook.io/supra/network/move/learn-move.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
