Contract Reference

Gasyard deploys a consistent contract architecture across all supported chains.

Contract Architecture

ContractPurpose
GatewayIntent validation, fee collection, event emission
SolverPoolPer-solver liquidity vaults for execution
GatewayRouterSource-side swaps and partner integrations
SolverRouterDestination-side swaps

Deployed Addresses

EVM Chains

All EVM chains use a consistent deployment pattern with deterministic addresses where possible.
Chain ID: 1 (Gasyard ID: 1)
ContractAddress
Gateway0x6a2A5B7D0434CC5b77e304bc9D68C20Dee805152
SolverPool0xA7a138DdB48FA75A0f6938080418Ba36e6271E29
SweeperFactory0x9B866c237172647cC5bfeFD4D4606947d7a1b396
Supported Tokens:
  • USDC: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
  • USDT: 0xdAC17F958D2ee523a2206206994597C13D831ec7
  • Native ETH

Non-EVM Chains

Gasyard ID: 6Movement uses Move-based contracts with different address formats.
ContractAddress
SolverPool0xf74565675634c9891af48a9ae620aeb894910120799853b8533f56f352a8c48c
Supported Tokens:
  • USDC
  • Native MOVE

Special Networks

Gasyard ID: 5HyperLiquid bridging is managed through Arbitrum infrastructure. Use Gasyard ID 5 as the unique identifier when targeting HyperLiquid.

Gateway Contract Interface

The Gateway is the core intent contract. It is non-upgradeable for trust minimization.

Key Functions

// Create a bridge intent
function bridgeToken(
    address token,
    uint256 amount,
    uint256 destChainId,
    address destRecipient,
    uint256 minOutput,
    uint256 expiry,
    bytes calldata metadata
) external;

// Execute an intent (solver only)
function executeOrder(
    bytes32 orderId,
    address recipient,
    uint256 amount
) external;

Key Events

event OrderCreated(
    bytes32 indexed orderId,
    address indexed sender,
    address token,
    uint256 amount,
    uint256 destChainId,
    address destRecipient,
    uint256 minOutput,
    uint256 expiry,
    bytes metadata
);

event OrderExecuted(
    bytes32 indexed orderId,
    address indexed solver,
    uint256 outputAmount
);

Router Interfaces

GatewayRouter (Source Chain)

Handles source-side swaps before bridging.
// Swap input token and bridge
function swapAndBridge(
    address inputToken,
    uint256 inputAmount,
    bytes calldata swapData,
    uint256 destChainId,
    address destRecipient,
    uint256 minOutput,
    uint256 expiry
) external;

// Bridge with native token (ETH)
function bridgeNative(
    uint256 destChainId,
    address destRecipient,
    uint256 minOutput,
    uint256 expiry
) external payable;

SolverRouter (Destination Chain)

Handles destination-side swaps after payout.
// Execute with swap
function executeAndSwap(
    bytes32 orderId,
    address recipient,
    address outputToken,
    bytes calldata swapData
) external;

Deposit Address Factory

CREATE2 factory for deterministic deposit addresses, enabling gasless deposits.
// Generate deposit address for a user
function getDepositAddress(
    address user,
    bytes32 salt
) external view returns (address);

// Deploy and forward deposit
function deployAndForward(
    address user,
    bytes32 salt
) external;

Security Features

All contracts implement:

Role-Based Access

Only authorized addresses can execute specific functions

Token Whitelisting

Only approved tokens can be bridged

Replay Protection

Order IDs can only be executed once

Non-Upgradeable Gateway

Core contract cannot be modified after deployment
For ABI files, verification links, or testnet deployments, contact the Gasyard team at hi@gasyard.fi.