# Introduction

<figure><img src="https://1629106309-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAFRaT1n3s3AfMr4hllmZ%2Fuploads%2Ft11Uu73dCfHa6HpnxxqE%2FWebglide%20(4).jpg?alt=media&#x26;token=bc4c2de4-64b5-4f18-8d2d-dd4cb0b1fcb5" alt=""><figcaption></figcaption></figure>

The easiest experience for creating WebGchain apps (WebGApps) is provided by WebGlide.

Building a WebGApp requires only two straightforward steps:

* Implement `Receive` in the destination chain contract. This is the function that receives the payload you pass across chains.
* Call `call` on the origin chain, passing in your payload and relayer fees.

***

## Important Concepts

### Fast Path vs. Slow Path

Review the Transaction Lifecycle for a moment. The terms "fast path" and "slow path" (authenticated) transfers are introduced here. Any cross-chain project has to grasp the distinction. Then test it out using our instructions to authentication.

***

## Quickstart

## Quickstart (Greeter)

This quickstart will show you how to move money and data between chains using the cross-chain communication primitive known as `WebGcall`.

We will construct a cross-chain Greeter in this tutorial. The `updateGreeting` function of the `DestinationGreeter` contract on the destination chain modifies a greeting variable that is saved. For `updateGreeting`, the `SourceGreeter` contract on the origin chain utilises WebGcall to provide `calldata` that has been encoded.

The update shows how to combine an asset transfer with any call in a single `WebGcall`.Payment is necessary for the greeting feature to update the greeting. In this case, any sum larger than zero is acceptable according to the contract.

There are no security checks to ascertain who is calling the function because `updateGreeting` is implemented as an unauthenticated call. As a result, this kind of `WebGcall` will follow the "Fast Path".

{% hint style="info" %}
Our `app-starter` package is compatible with Hardhat and Foundry and comes with a complete example of this quickstart (plus more) if you'd rather fork a repo than follow this step-by-step tutorial.
{% endhint %}


---

# 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://webglide.gitbook.io/whitepaper/developers/introduction.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.
