# AllSet Portal

*Note: If you are using the SDK, AllSet works automatically. You do not need to understand any of this to send or receive payments. This page explains what happens under the hood.*

AllSet is Fast's clearing gateway — the interchange layer that connects Fast to external networks like Ethereum, Base, and Arbitrum. It handles all cross-network fund movement so your agent can receive deposits from any supported network and withdraw to any destination, without managing multiple wallets or dealing with cross-network complexity.

***

### What AllSet Does

Fast is a high-performance settlement network. But funds often start somewhere else — a user's Ethereum wallet, a USDC balance on Base, or an agent's holdings on Arbitrum. AllSet connects these external networks to Fast, so funds can flow in and out seamlessly.

Three operations:

| Operation      | What happens                                                                             |
| -------------- | ---------------------------------------------------------------------------------------- |
| **Deposit**    | Funds move from an external network into a Fast account                                  |
| **Withdrawal** | Funds move from a Fast account to an external network                                    |
| **Revoke**     | A failed or cancelled withdrawal is reversed — funds return to the sender's Fast account |

From the user's or agent's perspective, these look like simple transfers. AllSet handles the cross-network coordination, verification, and settlement internally.

***

### How Deposits Work

A deposit moves funds from an external network (e.g., Ethereum) into a Fast account.

**Step by step:**

1. **User sends funds** to an AllSet contract on the external network (e.g., deposits USDC on Base).
2. **AllSet detects the deposit** — a monitoring service watches for deposit events on each supported network.
3. **Verification** — AllSet generates cryptographic proof that the deposit occurred on the external network and submits it to a pool of verifiers.
4. **Settlement on Fast** — once the verifiers confirm the deposit, the equivalent balance is credited to the user's Fast account.

The key guarantee: funds are only credited on Fast after the deposit on the external network is cryptographically verified. No trust assumptions beyond the verification quorum.

**What the user sees:** "I deposited USDC on Base, and it appeared in my Fast account."

***

### How Withdrawals Work

A withdrawal moves funds from a Fast account to an external network (e.g., Arbitrum).

**Step by step:**

1. **User initiates withdrawal on Fast** — the funds are transferred to a designated account on Fast, along with a withdrawal intent specifying the destination network and recipient address.
2. **Relayer detects the intent** — AllSet's relayer service monitors for withdrawal intents and forwards them to the destination network.
3. **Funds released on the destination network** — the AllSet contract on the destination network verifies the intent and releases the equivalent funds to the recipient.
4. **Verification and cleanup** — AllSet generates proof that the withdrawal completed on the destination network. Verifiers confirm it, and the corresponding balance on Fast is burned to maintain the invariant.

**What the user sees:** "I withdrew USDC from Fast, and it arrived in my Arbitrum wallet."

***

### Revokes

If a withdrawal fails — for example, due to invalid parameters or a destination network issue — the user can revoke the withdrawal. The funds are returned to their Fast account. No funds leave the external network's AllSet contract, and the system's balance invariant is maintained.

Revokes are a safety mechanism, not a normal operation. Under typical conditions, withdrawals complete successfully.

***

### The Invariant

AllSet maintains one critical guarantee:

> **The total funds held in AllSet contracts across all external networks always equals the total corresponding balance available on Fast.**

Every deposit increases both sides equally. Every withdrawal decreases both sides equally. Every revoke restores both sides to their pre-withdrawal state. This invariant is enforced by the verification system — it cannot be violated without compromising the verifier quorum.

***

### Supported Networks

| Network          | Status  |
| ---------------- | ------- |
| Ethereum Sepolia | Live    |
| Arbitrum Sepolia | Live    |
| Arbitrum         | Live    |
| Base             | Live    |
| Polygon          | Planned |
| Solana           | Planned |
| Tron             | Planned |

The SDK automatically routes deposits and withdrawals through the appropriate network. Developers do not need to specify AllSet parameters — the SDK selects the optimal path.

***

### Architecture

AllSet consists of three off-chain services and a set of on-chain contracts:

#### Services

| Service       | Role                                                                                                                                                           |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Generator** | Monitors external networks for deposit, withdrawal, and revoke events. Produces cryptographic proofs that these events occurred and submits them to verifiers. |
| **Verifiers** | A quorum of independent verifiers that validate the Generator's proofs and co-sign claims on Fast. A claim is only accepted when enough verifiers agree.       |
| **Relayer**   | Monitors Fast for withdrawal intents and forwards them to the appropriate external network for execution.                                                      |

#### On-chain contracts

Each supported external network has an AllSet contract deployed on it. These contracts:

* Accept deposits (lock or burn the deposited funds)
* Release funds on withdrawal (mint or transfer to the recipient)
* Enforce replay protection (each withdrawal can only be executed once)
* Support arbitrary execution on the destination network — enabling advanced flows like cross-network swaps

#### Flow summary

```
DEPOSIT:    External Network → [AllSet Contract] → Generator → Verifiers → Fast
WITHDRAWAL: Fast → Relayer → [AllSet Contract] → External Network → Generator → Verifiers → Fast (cleanup)
```

***

### Further Reading

* [FastSet Protocol](/advanced/fastset-protocol.md) — how the underlying settlement network works
* [JSON-RPC API](/api-reference/json-rpc-api.md) — direct access to the network's protocol-level endpoints


---

# 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.fast.xyz/advanced/allset-layer.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.
