VM Interoperability
EVM Precompiles
Ibc

IBC Precompile

Address: 0x0000000000000000000000000000000000001009

This precompile enables funds transfer over IBC protocol.

Functions

Transactions

  • transfer: Send funds to another chain using IBC protocol.

      /// Send funds to another chain using IBC protocol.
      /// @param toAddress The recipient's address on the other chain
      /// @param port IBC port in source chain (e.g. 'transfer')
      /// @param channel IBC channel in source chain (e.g. 'channel-0')
      /// @param denom The denomination of the tokens to send
      /// @param amount The amount of tokens to send
      /// @param revisionNumber The revision number of the source chain
      /// @param revisionHeight The revision height of the source chain
      /// @param timeoutTimestamp The timeout timestamp of the source chain
      /// @param memo The memo to include in the transaction, if no memo is needed, pass an empty string
      /// @return Whether the transfer was successfully executed.
      function transfer(
          string toAddress,
          string memory port,
          string memory channel,
          string memory denom,
          uint256 amount,
          uint64 revisionNumber,
          uint64 revisionHeight,
          uint64 timeoutTimestamp,
          string memo
      ) external returns (bool success);
  • transferWithDefaultTimeout: Send funds to another chain using IBC protocol. Calculates the timeout height/timestamp based on the current block timestamp.

    /// Send funds to another chain using IBC protocol. Calculates the timeout height/timestamp
    /// based on the current block timestamp.
    /// @param toAddress The recipient's address on the other chain
    /// @param port IBC port in source chain (e.g. 'transfer')
    /// @param channel IBC channel in source chain (e.g. 'channel-0')
    /// @param denom The denomination of the tokens to send
    /// @param amount The amount of tokens to send
    /// @param memo The memo to include in the transaction, if no memo is needed, pass an empty string
    /// @return Whether the transfer was successfully executed.
    function transferWithDefaultTimeout(
        string toAddress,
        string memory port,
        string memory channel,
        string memory denom,
        uint256 amount,
        uint64 revisionNumber,
        uint64 revisionHeight,
        uint64 timeoutTimestamp,
        string memo
    ) external returns (bool success);

View the IBC precompile source code and the contract ABI here (opens in a new tab).