# Getting Started

{% embed url="<https://drive.google.com/file/d/1DbyRUUe3O6U-W03PYl5uNrf8Tw82wQ2_/view?usp=sharing>" %}
Step-by-step Randcast Tutorial
{% endembed %}

## To integrate Randcast into your DApp:

1. Create a Subscription
2. Fund the Subscription
3. Build and Deploy the Consumer Contract
4. Add Consumer to your Subscription
5. Request Randomness from the Consumer
6. Process the Randomness Result in your Consumer Contract

***Note**:*&#x20;

* *Randcast requests are paid via Subscription; you should fund your Subscription in advance to avoid service interruptions.*
* *A Consumer Contract is part of your DApp and is used to request and "consume" the randomness from Randcast; any subsequent logic on how to utilize the randomness result can be defined in the callback function within your Consumer Contract.*
* [*Randcast SDK*](/randcast/using-the-sdk.md) *provides* [*a base implementation of the Consumer Contract*](/randcast/using-the-sdk/generalrandcastconsumerbase.md)*, which you can extend to implement your custom logic, like in* [*this simple example*](/randcast/using-the-sdk/consumer-contract-examples/example-get-random-number.md)*.*

***

In this tutorial, we will demonstrate three ways to integrate Randcast into your DApp.

### 1. [Use Web GUI ](/randcast/getting-started/use-web-gui.md)

Pros:&#x20;

* Zero local development environment setup
* Minimum command-line experience required
* Intuitive to less experienced developers

Cons:

* Less flexible
* Hard to debug for complex DApps
* Less verbose output

***

### 2. [Use Randcast CLI](/randcast/getting-started/use-randcast-cli.md)

Pros:

* More verbose output
* More flexible
* Easy to debug

Cons:

* Requires local development environment setup using Docker
* Requires command-line experience
* Requires basic Solidity development experience

***

### 3. [Use Solidity Development Tools](/randcast/getting-started/use-solidity-development-tools.md) (e.g. [Foundry](https://book.getfoundry.sh/))

Pros:

* Most verbose output
* Most flexible
* Full programmatic access, easy to automate

Cons:

* Requires local development environment setup
* Requires advanced Solidity development experience
* Requires experience in [Foundry](https://book.getfoundry.sh/)


---

# 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://docs.arpanetwork.io/randcast/getting-started.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.
