diff --git a/src/ch00-00-introduction.md b/src/ch00-00-introduction.md
index 3c790df38..73252e423 100644
--- a/src/ch00-00-introduction.md
+++ b/src/ch00-00-introduction.md
@@ -87,7 +87,7 @@ Here are some of them:
Cairo is tailor-made for creating STARK-based smart contracts. As
Starknet’s native language, it’s central to building scalable and secure
decentralized apps. To start learning now, check out the [Cairo
-Book](https://cairo-book.github.io/) and
+Book](https://book.cairo-lang.org/) and
[Starklings](https://github.com/shramee/starklings-cairo1).
Inspired by Rust, Cairo lets you write contracts safely and
@@ -141,7 +141,7 @@ SNIPs serve three crucial roles:
view of how Starknet has evolved.
Because SNIPs are stored as text files in a [version-controlled
-repository](https://github.com/starknet-io/SNIPs), you can easily track
+repository](https://github.com/starknet-io/SNIPs/tree/main/SNIPS), you can easily track
changes and understand the history of proposals.
For those who are building on Starknet, SNIPs aren’t just
diff --git a/src/ch01-00-getting-started.md b/src/ch01-00-getting-started.md
index 00f6f73f9..242466cbc 100644
--- a/src/ch01-00-getting-started.md
+++ b/src/ch01-00-getting-started.md
@@ -325,7 +325,7 @@ You can monitor transaction hashes and addresses using any Starknet block explor
- [Starkscan](https://testnet.starkscan.co/)
- [Voyager](https://goerli.voyager.online/)
-- [ViewBlock](https://viewblock.io.starknet/)
+- [ViewBlock](https://viewblock.io/starknet)
- [oklink](https://www.oklink.com/starknet)
These tools provide a visual representation of transactions and contract state alterations. Notably, when you alter the contract ownership using the `transfer_ownership` function, the event emitted by the contract appears in the block explorer. It's an effective method to track contract events.
@@ -336,4 +336,4 @@ Decide your direction from the following choices:
1. **Deepen Your Starknet Knowledge**: For an extensive grasp of Starknet's inner workings and potential use cases, delve into Chapter 3 of the Starknet Book. This chapter details Starknet’s architectural nuances. Then go ahead from there.
-2. **Dive into Cairo**: If you're more attuned to coding and wish to craft Starknet contracts, then Cairo is essential. It stands as Starknet's core contract language. Begin with Chapters 1-6 of the [Cairo Book](https://book.cairo-lang.org/title-page.html), ranging from basics in _Getting Started_ to more advanced aspects such as _Enums and Pattern Matching_. Conclude by navigating to the [Starknet Smart Contracts chapter](https://book.cairo-lang.org/ch99-00-starknet-smart-contracts.html), ensuring you have a well-rounded understanding.
+2. **Dive into Cairo**: If you're more attuned to coding and wish to craft Starknet contracts, then Cairo is essential. It stands as Starknet's core contract language. Begin with Chapters 1-6 of the [Cairo Book](https://book.cairo-lang.org/title-page.html), ranging from basics in _Getting Started_ to more advanced aspects such as _Enums and Pattern Matching_. Conclude by navigating to the [Starknet Smart Contracts chapter](https://book.cairo-lang.org/ch12-00-introduction-to-starknet-smart-contracts.html), ensuring you have a well-rounded understanding.
diff --git a/src/ch02-00-starknet-tooling.md b/src/ch02-00-starknet-tooling.md
index ad9ec3cfe..342df1c2f 100644
--- a/src/ch02-00-starknet-tooling.md
+++ b/src/ch02-00-starknet-tooling.md
@@ -23,7 +23,7 @@ In this chapter, you’ll explore:
- **Frameworks:** Build using Starknet-Foundry
- **SDKs:** Discover multi-language support through Starknet.js,
- Starknet-rs, Starknet_py, and Caigo
+ Starknet-rs, Starknet_py, and Cairo
- **Front-end Development:** Use Starknet.js and React
diff --git a/src/ch02-01-basic-installation.md b/src/ch02-01-basic-installation.md
index 61adcb4f9..526f83be2 100644
--- a/src/ch02-01-basic-installation.md
+++ b/src/ch02-01-basic-installation.md
@@ -38,24 +38,64 @@ To upgrade Starkli, simply repeat the steps.
## Scarb Package Manager Installation
-We will get deeper into Scarb later in this chapter. For now, we will go over the installation process.
+Scarb is also Cairo's package manager and is heavily inspired by [Cargo](https://doc.rust-lang.org/cargo/),
+Rust’s build system and package manager.
-For macOS and Linux:
+Scarb handles a lot of tasks for you, such as building your code (either pure Cairo or Starknet contracts),
+downloading the libraries your code depends on, building those libraries.
+
+### Requirements
+
+Scarb requires a Git executable to be available in the `PATH` environment variable.
+
+### Installation
+
+To install Scarb, please refer to the [installation instructions](https://docs.swmansion.com/scarb/download).
+We strongly recommend that you install
+Scarb [via asdf](https://docs.swmansion.com/scarb/download.html#install-via-asdf), a CLI tool that can manage
+multiple language runtime versions on a per-project basis.
+This will ensure that the version of Scarb you use to work on a project always matches the one defined in the
+project settings, avoiding problems related to version mismatches.
+
+Please refer to the [asdf documentation](https://asdf-vm.com/guide/getting-started.html) to install all
+prerequisites.
+
+Once you have asdf installed locally, you can download Scarb plugin with the following command:
```bash
-curl --proto '=https' --tlsv1.2 -sSf https://docs.swmansion.com/scarb/install.sh | sh
+asdf plugin add scarb
```
-For Windows, follow manual setup in the [Scarb
-documentation](https://docs.swmansion.com/scarb/download.html#windows).
+This will allow you to download specific versions:
+
+```bash
+asdf install scarb 2.5.4
+```
-Restart the terminal and run:
+and set a global version:
+
+```bash
+asdf global scarb 2.5.4
+```
+
+Otherwise, you can simply run the following command in your terminal, and follow the onscreen instructions. This
+will install the latest stable release of Scarb.
+
+```bash
+curl --proto '=https' --tlsv1.2 -sSf https://docs.swmansion.com/scarb/install.sh | sh
+```
+
+- In both cases, you can verify installation by running the following command in a new terminal session, it should print both Scarb and Cairo language versions, e.g:
```bash
scarb --version
+scarb 2.5.4 (28dee92c8 2024-02-14)
+cairo: 2.5.4 (https://crates.io/crates/cairo-lang-compiler/2.5.4)
+sierra: 1.4.0
```
-To upgrade Scarb, rerun the installation command.
+For Windows, follow manual setup in the [Scarb
+documentation](https://docs.swmansion.com/scarb/download.html#windows).
## Katana Node Installation
diff --git a/src/ch02-03-scarb.md b/src/ch02-03-scarb.md
index 554567e10..345e1a1e1 100644
--- a/src/ch02-03-scarb.md
+++ b/src/ch02-03-scarb.md
@@ -5,7 +5,7 @@ language is advised. We suggest reading chapters 1-6 of the [Cairo
Book](https://book.cairo-lang.org/title-page.html), covering topics from
_Getting Started_ to _Enums and Pattern Matching._ Follow this by
studying the [Starknet Smart Contracts
-chapter](https://book.cairo-lang.org/ch99-00-starknet-smart-contracts.html)
+chapter](https://book.cairo-lang.org/ch12-00-introduction-to-starknet-smart-contracts.html)
in the same book. With this background, you’ll be well-equipped to
understand the examples presented here.
@@ -34,7 +34,7 @@ streamlined.
# Installation
Scarb is cross-platform, supporting macOS, Linux, and Windows. For
-installation, refer to the [Basic installation guide](./ch02-01-basic-installation.html).
+installation, refer to the [Basic installation guide](./ch02-01-basic-installation.html#scarb-package-manager-installation).
# Cairo Project Structure
@@ -348,11 +348,11 @@ mod ownable_contract {
Basically we decided to apply `components` on the section related to `ownership` and created a separated module `ownable_component`. Then we kept the `data` section in our main module `ownable_contract`.
-To get the full implementation of this project, navigate to the `src/` directory in the [examples/Ownable-Components](https://github.com/starknet-edu/starknetbook/examples/Ownable-Components) directory of the Starknet Book repo. The `src/lib.cairo` file contains the contract to practice with.
+To get the full implementation of this project, navigate to the `src/` directory in the [examples/Ownable-Components](https://github.com/starknet-edu/starknetbook/tree/main/examples/Ownable-Starknet) directory of the Starknet Book repo. The `src/lib.cairo` file contains the contract to practice with.
After you get the full code on your machine, open your terminal, input `scarb build` to compile it, deploy your contract and call functions.
-You can learn more about components in [Chapter 12 of The Cairo Book](https://book.cairo-lang.org/ch99-01-05-00-components.html).
+You can learn more about components in [Chapter 16 of The Cairo Book](https://book.cairo-lang.org/ch15-02-composability-and-components.html?highlight=ownable%20componen#example-an-ownable-component).
Scarb is a versatile tool, and this is just the beginning of what you
can achieve with it. As you gain more experience in the Cairo language
diff --git a/src/ch02-05-testnet-deployment.md b/src/ch02-05-testnet-deployment.md
index e74bdb444..f1dcaad8f 100644
--- a/src/ch02-05-testnet-deployment.md
+++ b/src/ch02-05-testnet-deployment.md
@@ -2,7 +2,7 @@
This chapter guides developers through the process of compiling, deploying, and interacting with a Starknet smart contract written in Cairo on the testnet. Earlier, the focus was on deploying contracts using a local node, Katana. This time, the deployment and interaction target the Starknet testnet.
-Ensure the following commands run successfully on your system. If not, see the [Basic Installation](ch02-01-basic-installation.md) section:
+Ensure the following commands run successfully on your system. If not, see the [Basic Installation](./ch02-01-basic-installation.md) section:
```bash
scarb --version # For Cairo code compilation
@@ -17,7 +17,7 @@ the Account Descriptor is a JSON file detailing the wallet’s address and
public key.
In order for an account to be used as a signer it must be deployed to the appropriate network,
-Starknet Goerli, Sepolia or mainnet, and funded. For this example we are going to use Goerli Testnet. To deploy your wallet, visit [Smart Wallet Setup](https://book.starknet.io/ch01-00-getting-started.html#smart-wallet-setup).
+Starknet Goerli, Sepolia or mainnet, and funded. For this example we are going to use Goerli Testnet. To deploy your wallet, visit [Smart Wallet Setup](./ch01-00-getting-started.html#smart-wallet-setup).
Now you’re ready to interact with Starknet smart contracts.
### Creating a Signer
@@ -188,8 +188,8 @@ There are three main options for RPC providers, sorted by ease of use:
documentation](https://docs.infura.io/networks/starknet/how-to/choose-a-network).
2. **Your Own Node**: For those who want full control. It’s the most
- complex but offers the most freedom. Check out [Chapter 4 of the
- Starknet Book](https://book.starknet.io/chapter_4/node.html) or
+ complex but offers the most freedom. Check out [Chapter 3 of the
+ Starknet Book](./ch03-00-architecture.html#nodes) or
[Kasar](https://www.kasar.io/) for setup guides.
3. **Free RPC vendor**: These 3 networks are eligible for free RPC vendors: mainet, goerli, sepolia.
@@ -232,7 +232,7 @@ Note: Here we used the Public RPC Endpoint v0.6 Starknet (Goerli) Testnet from *
>
> ⚠️ And if you use Goerli, make sure you use it in subsequent commands as well.
-After this process, search your wallet address on the Starknet explorer. To see the details, go back to [Smart Wallet Setup](https://book.starknet.io/ch01-00-getting-started.html#smart-wallet-setup).
+After this process, search your wallet address on the Starknet explorer. To see the details, go back to [Smart Wallet Setup](./ch01-00-getting-started.html#smart-wallet-setup).
After running the command, you’ll see a message like the one below.
We’re using a Braavos wallet as an example, but the steps are the same
@@ -306,7 +306,7 @@ of the Starknet Book repo. The `src/lib.cairo` file contains a basic
contract to practice with.
First, compile the contract using the Scarb compiler. If you haven’t
-installed Scarb, follow the installation guide in the [basic installation](./ch02-01-basic-installation)
+installed Scarb, follow the installation guide in the [basic installation](./ch02-01-basic-installation.html#scarb-package-manager-installation)
section.
```bash
@@ -372,8 +372,8 @@ main components:
2. Any constructor arguments that the contract expects.
In our example, the constructor expects an _owner_ address. You can
-learn more about constructors in [Chapter 12 of The Cairo
-Book](https://book.cairo-lang.org/ch99-01-03-02-contract-functions.html?highlight=constructor#1-constructors).
+learn more about constructors in [Chapter 13 of The Cairo
+Book](https://book.cairo-lang.org/ch13-02-contract-functions.html).
The command would look like this:
diff --git a/src/ch02-06-starkli.md b/src/ch02-06-starkli.md
index 255bd1506..60f9247a5 100644
--- a/src/ch02-06-starkli.md
+++ b/src/ch02-06-starkli.md
@@ -8,7 +8,7 @@ In the next subchapter we will create a short Bash script using Starkli to query
## Basic Setup
-To ensure a smooth start with Starkli, execute the following command on your system. If you encounter any issues, refer to the [Basic Installation](ch02-01-basic-installation.md) guide for assistance:
+To ensure a smooth start with Starkli, execute the following command on your system. If you encounter any issues, refer to the [Basic Installation](./ch02-01-basic-installation.md) guide for assistance:
```bash
starkli --version # Verifies Starkli installation and interacts with Starknet
@@ -54,7 +54,7 @@ The output will be:
0
```
-Since katana is a temporary local node and its state is ephemeral, the block number is initially 0. Refer to [Introduction to Starkli, Scarb and Katana](ch02-02-starkli-scarb-katana.md) for further details on changing the state of Katana and observing the block number after commands like starkli declare and starkli deploy.
+Since katana is a temporary local node and its state is ephemeral, the block number is initially 0. Refer to [Introduction to Starkli, Scarb and Katana](./ch02-02-starkli-scarb-katana.md) for further details on changing the state of Katana and observing the block number after commands like starkli declare and starkli deploy.
To declare a contract, execute:
diff --git a/src/ch02-09-01-counter-ui.md b/src/ch02-09-01-counter-ui.md
index f06346027..508733da4 100644
--- a/src/ch02-09-01-counter-ui.md
+++ b/src/ch02-09-01-counter-ui.md
@@ -12,7 +12,7 @@ For a visual walkthrough, do check out the [Basecamp frontend session](https://d
- [Reactjs](https://react.dev/learn/start-a-new-react-project): A frontend building framework.
- [@argent/get-starknet](https://www.npmjs.com/package/@argent/get-starknet): A wrapper for **[starknet.js](https://github.com/0xs34n/starknet.js)**, aiding interaction with wallet extensions.
-- [starknet](https://www.npmjs.com/package/starknet): A JavaScript library for Starknet.
+- [Starknet](https://www.npmjs.com/package/starknet): A JavaScript library for Starknet.
## Setting Up the Environment
@@ -234,4 +234,4 @@ Here's a quick recap:
- Adjust the counter value (increment or decrement)
- Fetch data from the blockchain
-For a visual walkthrough, do check out the [Basecamp frontend session](https://drive.google.com/file/d/1Dtb3Ol_BVoNV4w-_MKV8aeyyRra8nRtz/view). This comprehensive session delves deeper into the nuances of the concepts we've touched upon, presenting a mix of theoretical explanations and hands-on demonstrations.
+For a visual walkthrough, do check out the [Basecamp VII: S5 Frontend](https://drive.google.com/file/d/1Dtb3Ol_BVoNV4w-_MKV8aeyyRra8nRtz/view). This comprehensive session delves deeper into the nuances of the concepts we've touched upon, presenting a mix of theoretical explanations and hands-on demonstrations.
diff --git a/src/ch02-09-starknet-js.md b/src/ch02-09-starknet-js.md
index c311e6421..89dd09c0d 100644
--- a/src/ch02-09-starknet-js.md
+++ b/src/ch02-09-starknet-js.md
@@ -164,7 +164,7 @@ With Starknet.js, you can also automate the process of deploying a smart contrac
# Deployment of Smart Contracts using Starknet.js
-Starknet.js offers capabilities for deploying smart contracts. In this tutorial, we demonstrate this by deploying an account contract, which we previously developed in [Chapter 4](https://book.starknet.io/ch04-03-standard-account.html), through a scripted approach.
+Starknet.js offers capabilities for deploying smart contracts. In this tutorial, we demonstrate this by deploying an account contract, which we previously developed in [Chapter 4](./ch04-03-standard-account.html), through a scripted approach.
## STEP 1: Initial Setup and Dependency Installation
diff --git a/src/ch02-14-security-considerations.md b/src/ch02-14-security-considerations.md
index acd59e4a3..7ea7c922b 100644
--- a/src/ch02-14-security-considerations.md
+++ b/src/ch02-14-security-considerations.md
@@ -336,7 +336,7 @@ mod StoreSecretPassword {
-However, understanding Cairo's [storage layout](https://book.cairo-lang.org/ch99-01-03-01-contract-storage.html?highlight=kecc#storage-addresses), we can create a script to read the stored variable:
+However, understanding Cairo's [storage layout](https://book.cairo-lang.org/ch13-01-contract-storage.html), we can create a script to read the stored variable:
```javascript
import { Provider, hash } from "starknet";
diff --git a/src/ch02-15-01-cairo-fuzzer.md b/src/ch02-15-01-cairo-fuzzer.md
index 0c4321278..d57a87e2d 100644
--- a/src/ch02-15-01-cairo-fuzzer.md
+++ b/src/ch02-15-01-cairo-fuzzer.md
@@ -1,6 +1,6 @@
-# Cairo-fuzzer
+# Cairo-Fuzzer
-[Cairo-fuzzer](https://github.com/FuzzingLabs/cairo-fuzzer) is a tool designed for smart contract developers to assess security. It operates both independently and as a library.
+[Cairo-Fuzzer](https://github.com/FuzzingLabs/cairo-fuzzer) is a tool designed for smart contract developers to assess security. It operates both independently and as a library.
## Features
diff --git a/src/ch03-02-sequencers.md b/src/ch03-02-sequencers.md
index 4e5f90564..b77b548ad 100644
--- a/src/ch03-02-sequencers.md
+++ b/src/ch03-02-sequencers.md
@@ -1,6 +1,6 @@
# Sequencers
-Before diving in, make sure to check out the ["Architecture"](ch03-00-architecture.md) chapter for a
+Before diving in, make sure to check out the [Architecture](./ch03-00-architecture.md) chapter for a
quick exploration of Starknet’s sequencers, provers and nodes.
Three main layers exist in blockchain: data availability, ordering, and
diff --git a/src/ch03-04-01-pathfinder-node.md b/src/ch03-04-01-pathfinder-node.md
index ae265bd14..d887f2a0e 100644
--- a/src/ch03-04-01-pathfinder-node.md
+++ b/src/ch03-04-01-pathfinder-node.md
@@ -22,7 +22,7 @@ Total estimated cost: Approximately $550.
## Running Pathfinder Node Using Docker
-For those who prefer a self-managed setup of all dependencies, refer to the comprehensive [Installation from Source](doc/install-from-source.md) guide.
+For those who prefer a self-managed setup of all dependencies, refer to the comprehensive [Installation from Source](https://github.com/eqlabs/pathfinder/blob/main/doc/install-from-source.md) guide.
### Prerequisites
@@ -259,9 +259,9 @@ The `path` of the URL used to access the JSON-RPC server determines which versio
Note that the pathfinder extension is versioned separately from the Starknet specification itself.
-### pathfinder extension API
+### Pathfinder extension API
-You can find the API specification [here](doc/rpc/pathfinder_rpc_api.json).
+You can find the API specification [here](https://github.com/eqlabs/pathfinder/blob/main/doc/rpc/pathfinder_rpc_api.json).
## Monitoring API
diff --git a/src/ch03-08-01-deploymet-and-interaction.md b/src/ch03-08-01-deploymet-and-interaction.md
index 30a48439c..b1732ea4f 100644
--- a/src/ch03-08-01-deploymet-and-interaction.md
+++ b/src/ch03-08-01-deploymet-and-interaction.md
@@ -6,11 +6,11 @@ In this section we will be focussing on declaring, deploying and interacting wit
To declare and deploy the piggy bank contract, it’s required that you have the following available; don't worry, we’ll point you to resources or links to get them sorted out.
-1. Starkli: Starkli is a CLI tool that connects us to the Starknet blockchain. Installation steps can be found [here](ch02-02-starkli-scarb-katana.md).
+1. Starkli: Starkli is a CLI tool that connects us to the Starknet blockchain. Installation steps can be found [here](./ch02-02-starkli-scarb-katana.md).
2. Starknet testnet RPC: You need your personalized gateway to access the starknet network. Starkli utilizes this API gateway to communicate with the starknet network: you can get one from Blast [here](https://blastapi.io/public-api/starknet).
-3. Deployer Account: To interact with the starknet network via Starkli, you need a cli account/ wallet. You can easily set that up by going through [this page](ch04-03-deploy-hello-account.md).
+3. Deployer Account: To interact with the starknet network via Starkli, you need a cli account/ wallet. You can easily set that up by going through [this page](./ch04-02-hello-account.html).
4. Sufficient gas fees to cover the declaration and deployment steps: you can get starknet Sepolia Eth either by bridging your Sepolia Eth on Ethereum to Starknet [here](https://www.yetanotherswap.com/bridge).
diff --git a/src/ch04-02-hello-account.md b/src/ch04-02-hello-account.md
index 04cd4d553..cf5386755 100644
--- a/src/ch04-02-hello-account.md
+++ b/src/ch04-02-hello-account.md
@@ -18,7 +18,7 @@ To check your current Scarb version, run:
scarb --version
```
-To install or update Scarb, refer to the Basic Installation instructions in Chapter 2, covering macOS and Linux environments:
+To install or update Scarb, refer to the Basic Installation instructions in [Chapter 2](./ch02-01-basic-installation.html#scarb-package-manager-installation), covering macOS and Linux environments:
```bash
curl --proto '=https' --tlsv1.2 -sSf https://docs.swmansion.com/scarb/install.sh | sh
diff --git a/src/ch04-03-01-deploy-standard-account.md b/src/ch04-03-01-deploy-standard-account.md
index 6b1719373..88617a533 100644
--- a/src/ch04-03-01-deploy-standard-account.md
+++ b/src/ch04-03-01-deploy-standard-account.md
@@ -2,7 +2,7 @@
After building our account contract, we'll now deploy it using Starkli on the testnet and interact with other contracts.
-Ensure you've installed [starkli](https://github.com/xJonathanLEI/starkli) and [scarb](https://docs.swmansion.com/scarb/download.html). Review the Basic Installation subchapter in Chapter 2 if you haven't.
+Ensure you've installed [starkli](https://github.com/xJonathanLEI/starkli) and [scarb](https://docs.swmansion.com/scarb/download.html). Review the Basic Installation subchapter in [Chapter 2](./ch02-01-basic-installation.html#scarb-package-manager-installation) if you haven't.
## Account Contract Configuration Files
diff --git a/src/ch04-05-01-multicaller.md b/src/ch04-05-01-multicaller.md
index 8a080e387..e2288178b 100644
--- a/src/ch04-05-01-multicaller.md
+++ b/src/ch04-05-01-multicaller.md
@@ -612,7 +612,7 @@ The Book is a community-driven effort created for the community.
hesitate to open an [issue on our GitHub
repository](https://github.com/starknet-edu/starknetbook/issues).
- ## Reference
+## Reference
-- [1] OpenZeppelin, 2023: https://github.com/OpenZeppelin/cairo-contracts/blob/release-v0.7.0-rc.0/src/account/account.cairo
-- [2] David Barreto, 2023: https://medium.com/starknet-edu/account-abstraction-on-starknet-part-ii-24d52874e0bd
+- [1] OpenZeppelin, 2023:
+- [2] David Barreto, 2023:
diff --git a/src/ch04-05-03-auto-payments.md b/src/ch04-05-03-auto-payments.md
index 0fc3bcb7f..0f590fe94 100644
--- a/src/ch04-05-03-auto-payments.md
+++ b/src/ch04-05-03-auto-payments.md
@@ -171,14 +171,14 @@ In summary, a fully fledged account contract should implement the SNIP-5, SNIP-6
[1] Auto Payments for Self-Custodial Wallets
-[2] SNIP-6 Standard Account Interface
+[2] SNIP-6 Standard Account Interface:
-[3] Starknet Docs: Limitations on the validate function
+[3] Starknet Docs: Limitations on the validate function:
-[4] Cairo Book: The Span data type
+[4] Cairo Book: The Span data type:
-[5] ERC-165: Standard Interface Detection
+[5] ERC-165: Standard Interface Detection:
-[6] Github: src5-rs
+[6] Github: src5-rs:
-[7] Github: starkli
+[7] Github: starkli:
diff --git a/src/title-page.md b/src/title-page.md
index 4239a9d61..ccc20f227 100644
--- a/src/title-page.md
+++ b/src/title-page.md
@@ -45,7 +45,7 @@ various objectives:
- If you’re an **experienced developer** looking to quickly dive into
writing scalable and decentralized smart contracts, focus on the
Cairo Book, particularly **chapter 12: Starknet Smart Contracts**
- ([link](https://book.cairo-lang.org/ch99-00-starknet-smart-contracts.html)).
+ ([link](https://book.cairo-lang.org/ch12-00-introduction-to-starknet-smart-contracts.html)).
- If you’re a **frontend developer** wanting to integrate Starknet
with a React frontend using Javascript, prioritize the