# 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 %}
