> ## Documentation Index
> Fetch the complete documentation index at: https://docs.layerswap.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Funding methods

> Compare Layerswap funding methods and choose the right one for your integration.

A **funding method** determines how the source asset is provided to Layerswap.

## Compare methods

| Method          | Best fit                                                              | Required funding action                                     |
| --------------- | --------------------------------------------------------------------- | ----------------------------------------------------------- |
| Wallet transfer | Users or integrations that can submit source-network transactions     | Submit a source-network transfer or contract call           |
| Deposit address | CEX withdrawals or wallets that cannot connect to your app            | Send funds from a wallet or exchange                        |
| Depository      | Smart contracts, server wallets, and programmable EVM or Tron funding | Call the Depository contract                                |
| Gasless deposit | Users who do not have the source network's gas token                  | Sign EIP-3009 typed data; a relayer submits the transaction |

Method availability varies by source network: Starknet and TON currently support only the wallet-transfer flow, and the Depository covers EVM and Tron.

## Wallet transfer

Use the [Widget](/widget/quickstart) for a ready-made wallet flow. With the API, create a swap using the standard funding flow, then complete its ordered `deposit_actions`. An action may require signing data or submitting a transaction using a `to_address`, `call_data`, or both. When an on-chain transaction is required, the transaction sender normally pays the source-network fee.

See [Execute deposit actions](/api/funding/transfer) for the action schema and source-network transaction instructions.

## Deposit address

Layerswap assigns a deposit address to the swap. The sender simply transfers funds to that address from any supported source.

You can implement deposit-address funding directly with the API or use the Deposit Widget for a ready-made UI. See [Execute deposit actions](/api/funding/transfer) and [Deposit Widget](/widget/deposit-widget).

## Depository

The Depository funds a swap through a contract call instead of a direct transfer. It is intended for smart contracts, server wallets, batched operations, and sponsored transaction flows. The current execution guides cover EVM native/ERC-20 actions and Tron TRC-20 actions.

You can implement Depository funding with the API. Create a supported swap with `use_depository: true`, then submit the API-provided contract call to the returned Depository address. See [Fund via the Depository contract](/api/funding/depository) for transaction instructions.

`use_depository` and `use_deposit_address` are mutually exclusive — a swap request that sets both is rejected.

## Gasless deposit

Gasless funding lets users fund a swap without having the source network's gas token. The user signs an authorization, and a relayer submits the transaction and pays the network fee. The relayer cost is included in the gasless quote.

The Widget offers gasless funding automatically for supported routes and tokens. You can also implement it with the API: request a gasless quote and create the swap with `use_gasless`, then send the user's signature to `POST /authorize`. See [Gasless deposits](/api/funding/gasless) for the complete authorization flow.

## Widget-specific choices

The Deposit Widget also supports `hyperliquid` and `polymarket` funding options. See [Deposit Widget](/widget/deposit-widget) for the current allow-list.
