LogoLogo
  • Removing USDV From Circulation
    • Announcement
  • What is USDV?
    • USDV Overview
    • How Coloring Works
    • Yield & Peg Management
    • Security
    • FAQ
  • Verified Minters
    • Integrating USDV
    • Initial KYC
    • Minting USDV
    • Monitoring & Reminting
    • Moving USDV Crosschain
    • Claiming Rewards
    • Redeeming STBT
    • Account Settings
    • Setting Default Color
    • Delegating Viewers
  • APP INTEGRATIONS
    • Minter Widget
    • On Ethereum
    • On Sidechain
      • Recolor Helper
  • Concepts
    • USDV Architecture
    • Mint
    • ColorTrace Algorithm
    • ColorTrace Safety
    • Delta
    • Remint
    • Redemption
    • Fees
  • Technical Reference
    • Contract Addresses
    • Contract Governance
    • Contract ABI
    • Liquidity Provision
    • Rate Limiter
    • Gas Profile
  • Legal
    • Terms and Conditions
    • Privacy Policy
Powered by GitBook
LogoLogo

Copyright by Verified USD Foundation

On this page
  1. APP INTEGRATIONS
  2. On Sidechain

Recolor Helper

Last updated 1 year ago

The Recolor Helper is a generic helper contract we deploy on each USDV-supported chain to facilitate recoloring operations. This contract is immutable and unowned for long-term security.

  • The Recolor Helper contracts support both local ERC20 and crosschain transfers. All transfers output USDV colored based on the _toColor argument.

  • EOA or contracts can interact with the Recolor Helper in the following ways:

    • Direct transfer USDV into the helper and send out atomically.

    • ERC20 approved transfer.

interface IRecolorHelper {
    /// ------ local transfer function -----

    /// @dev send USDV into this account and then ATOMICALLY transfer out with color
    function transferWithColor(address _receiver, uint256 _amount, uint32 _toColor) external;

    /// @dev it requires the caller to approve this contract to spend their USDV
    function approvedTransferWithColor(address _receiver, uint256 _amount, uint32 _toColor) external;

    /// ------ crosschain transfer function transfer function -----

    /// @dev send USDV into this account and then ATOMICALLY send across-chain
    function sendWithColor(
        IOFT.SendParam calldata _param,
        uint32 _toColor,
        bytes calldata _extraOptions,
        MessagingFee calldata _msgFee,
        address payable _refundAddress,
        bytes calldata _composeMsg
    ) external payable returns (MessagingReceipt memory);

    /// @dev it requires the caller to approve this contract to spend their USDV
    function approvedSendWithColor(
        IOFT.SendParam calldata _param,
        uint32 _toColor,
        bytes calldata _extraOptions,
        MessagingFee calldata _msgFee,
        address payable _refundAddress,
        bytes calldata _composeMsg
    ) external payable returns (MessagingReceipt memory);
}

Example usage:

  • Swap aggregator: send the swap output to the Recolor Helper and call transferWithColor with your color

  • Bridge: have the EOA approve the Recolor Helper and send your color of USDV crosschain.

Please visit for RecolorHelper.sol addresses on each chain.

The Recolor Helper is an immutable and unowned contract that enforces USDV recoloring rules.
Contract Addresses