diff --git a/.vitepress/config.ts b/.vitepress/config.ts
index 39bc9dfc4..6b955abe6 100644
--- a/.vitepress/config.ts
+++ b/.vitepress/config.ts
@@ -223,13 +223,21 @@ function sidebarHome() {
text: "DA",
collapsed: true,
items: [
+ {
+ text: "Overview",
+ link: "/tutorials/da/overview",
+ },
+ {
+ text: "Local DA",
+ link: "/tutorials/da/local-da",
+ },
{
text: "Celestia",
- link: "/tutorials/celestia-da",
+ link: "/tutorials/da/celestia-da",
},
{
text: "Avail",
- link: "/tutorials/avail-da",
+ link: "/tutorials/da/avail-da",
},
],
},
@@ -310,10 +318,6 @@ function sidebarHome() {
text: "Use the Rollkit CLI",
link: "/guides/use-rollkit-cli",
},
- {
- text: "Connect to a local DA",
- link: "/guides/connect-local-da",
- },
{
text: "Create genesis for your rollup",
link: "/guides/create-genesis",
diff --git a/tutorials/avail-da.md b/tutorials/da/avail-da.md
similarity index 99%
rename from tutorials/avail-da.md
rename to tutorials/da/avail-da.md
index aa4e7fdf6..5cd7a8062 100644
--- a/tutorials/avail-da.md
+++ b/tutorials/da/avail-da.md
@@ -1,4 +1,4 @@
-# Deploying a rollup to Avail
+# Using Avail as DA
## 🌞 Introduction {#introduction}
diff --git a/tutorials/celestia-da.md b/tutorials/da/celestia-da.md
similarity index 91%
rename from tutorials/celestia-da.md
rename to tutorials/da/celestia-da.md
index ac8d47e2e..3a5a7f063 100644
--- a/tutorials/celestia-da.md
+++ b/tutorials/da/celestia-da.md
@@ -1,8 +1,8 @@
-# Deploying a rollup to Celestia
+# Using Celestia as DA
## 🌞 Introduction {#introduction}
@@ -54,13 +54,27 @@ The output of the command above will look similar to this:
Your DA_BLOCK_HEIGHT is 2127672
```
-Now, let's obtain the authentication token of your light node using the following command (omit the --p2p.network flag for Mainnet Beta):
+Now, let's obtain the authentication token of your light node using the following command:
-```bash
+::: code-group
+
+```bash [Arabica Devnet]
AUTH_TOKEN=$(celestia light auth write --p2p.network arabica)
echo -e "\n Your DA AUTH_TOKEN is $AUTH_TOKEN \n"
```
+```bash [Mocha Testnet]
+AUTH_TOKEN=$(celestia light auth write --p2p.network mocha)
+echo -e "\n Your DA AUTH_TOKEN is $AUTH_TOKEN \n"
+```
+
+```bash [Mainnet Beta]
+AUTH_TOKEN=$(celestia light auth write)
+echo -e "\n Your DA AUTH_TOKEN is $AUTH_TOKEN \n"
+```
+
+:::
+
The output of the command above will look similar to this:
```bash
diff --git a/guides/connect-local-da.md b/tutorials/da/local-da.md
similarity index 52%
rename from guides/connect-local-da.md
rename to tutorials/da/local-da.md
index 165787852..8577ec801 100644
--- a/guides/connect-local-da.md
+++ b/tutorials/da/local-da.md
@@ -1,11 +1,15 @@
-# How to connect a rollup to a local DA network
+# Using Local DA
-This guide provides a quick and straightforward method to start a local Data Availability (DA) network and configure your rollup to post data to it.
+## Introduction {#introduction}
+
+This tutorial serves as a comprehensive guide for using the [local-da](https://github.com/rollkit/local-da) with your chain.
+
+Before proceeding, ensure that you have completed the [quick start](/tutorials/quick-start) or [build a chain](/tutorials/wordle) tutorial, which covers installing the rollkit CLI, building your chain, and running your chain.
## Setting Up a Local DA Network
@@ -25,10 +29,25 @@ To connect your rollup to the local DA network, you need to pass the `--rollkit.
Start your rollup node with the following command, ensuring to include the DA address flag:
-```bash
+::: code-group
+
+```sh [Quick Start]
+rollkit start --rollkit.da_address http://localhost:7980
+```
+
+```sh [Wordle Chain]
rollkit start \
+ --rollkit.aggregator \
--rollkit.da_address http://localhost:7980 \
-
+ --rollkit.sequencer_rollup_id wordle
+```
+
+:::
+
+You should see the following log message indicating that your rollup is connected to the local DA network:
+
+```shell
+I[2024-11-15|14:54:19.842] DA server is already running module=main address=http://localhost:7980
```
## Summary
diff --git a/tutorials/da/overview.md b/tutorials/da/overview.md
new file mode 100644
index 000000000..38ceed5b8
--- /dev/null
+++ b/tutorials/da/overview.md
@@ -0,0 +1,50 @@
+---
+description: This page provides an overview of how rollkit integrates with DA.
+---
+
+
+
+# DA
+
+Now that you have the foundations of running and building a rollup with Rollkit, it is time to start customizing it to fit your needs.
+
+The first choice you need to make is which data availability (DA) layer to use. The DA layer is a critical component of a blockchain, as it provides the data availability and finality guarantees that your chain needs to operate securely.
+
+Rollkit uses the [go-da interface](https://github.com/rollkit/go-da) to communicate to DA layers. Any DA layer that implements this interface can be used with Rollkit.
+
+## Go DA {#go-da}
+
+The [go-da interface](https://github.com/rollkit/go-da) defines the core functions required to interact with a DA layer. Probably the two most important functions being `Get` and `Submit`.
+
+```go
+// DA defines very generic interface for interaction with Data Availability layers.
+type DA interface {
+ // Get returns Blob for each given ID, or an error.
+ Get(ctx context.Context, ids []ID, namespace Namespace) ([]Blob, error)
+
+ // Submit submits the Blobs to Data Availability layer.
+ Submit(ctx context.Context, blobs []Blob, gasPrice float64, namespace Namespace) ([]ID, error)
+}
+```
+
+DA layers can integrate the `go-da` interface directly into their node like [Celestia](celestia-da), or they can define a middleware service like [Avail](avail-da).
+
+## Mock DA {#mock-da}
+
+You might have noticed that we did not define any DA layer during the [quick start](../quick-start.md) or [build a chain](../wordle.md) tutorials. This is because we used a mock DA layer that is built into Rollkit.
+
+If you revisit the logs from those tutorials, you will see one of the first lines being:
+
+```shell
+I[2024-11-15|14:09:41.735] Starting mock DA server module=main address=http://localhost:26658
+```
+
+The mock DA layer is a simple in-memory DA layer that is great for testing and development. It is not suitable for production use, as it does not provide the data availability and finality guarantees that a real DA layer would.
+
+## DA Layers {#da-layers}
+
+Now that you have a better understanding of what a DA layer is, you can start to explore the different DA layers that are available to use with Rollkit.
+
+* [Local DA](local-da.md)
+* [Celestia DA](celestia-da.md)
+* [Avail DA](avail-da.md)