Skip to main content

Cookbook

Copy-paste examples for swaps, transfers, relayed transactions, and event streaming.

Available Examples

ExampleDescriptionComplexity
Token SwapSwap tokens on xExchange DEX⭐⭐
Relayed TransactionGas-free transactions with relayer⭐⭐⭐
EGLD TransferSend native EGLD between accounts
WebSocket EventsReal-time blockchain event streaming⭐⭐

Running Examples

All examples are located in the example/cookbook/manual/ directory and can be run directly:

# Token swap example
dart run example/cookbook/manual/controller_swap.dart

# Relayed transaction example
dart run example/cookbook/manual/controller_relayed_swap.dart

# EGLD transfer example
dart run example/cookbook/manual/transfer.dart

# WebSocket events example
dart run example/cookbook/manual/websocket_events.dart

Prerequisites

Before running examples, ensure you have:

  1. PEM wallet files in assets/ directory (alice.pem, bob.pem)
  2. Devnet tokens - Get free tokens from the MultiversX Faucet
  3. Dependencies installed - Run dart pub get
tip

All examples use devnet by default. Never use mainnet credentials for testing!

Example Structure

Each cookbook example follows this pattern:

// 1. Setup logging and providers
final logger = ConsoleLogger(...);
final provider = GatewayNetworkProvider.devnet(logger: logger);

// 2. Load wallet and get account state
final account = await Account.fromPem(pem);
final freshAccount = await provider.getAccount(account.address);

// 3. Build transaction or query
final tx = await controller.call(
account: account,
nonce: freshAccount.nonce,
endpointName: 'myEndpoint',
arguments: [...],
options: BaseControllerInput(gasLimit: GasLimit(10000000)),
);

// 4. Send and await completion
final txHash = await provider.sendTransaction(tx);
final result = await watcher.awaitCompleted(txHash);

Detailed Breakdowns

For in-depth explanations of each example, see the Advanced Cookbook section.