Skip to content

Repository files navigation

ForwardVault

This is the v2 codebase. On 2026-07-23 the protocol migrated to Wise Telecom Nodes (v3): one diamond contract per product at the same address on every chain, with every holder balance, pending interest claim and open queue order reproduced at its exact v2 position. The v2 vaults below are paused and hold no user funds. This repository stays up as the reference for the verified v2 on-chain source.

Fixed-APY RWA yield vaults + withdrawal queue system — the on-chain infrastructure behind World Mobile's AirNode vaults, live on Ethereum mainnet and Arbitrum with ~$2M TVL.

Users deposit USDC / USDT, receive transferable ERC-20 receipt tokens, and accrue a fixed APY. Deposits fund real-world AirNode infrastructure; yield is claimable while positions remain tradeable on secondary markets. Exits are handled through an on-chain FIFO queue (QueContract) with solver incentives.

Built by René Hochmuth (@author in the on-chain verified source) for WiseSoft / Wise Foundation.

Live deployments (v2)

All contracts verified — compare this repository against the on-chain source directly.

Contract Chain Asset Address
ForwardVaultERC20 Ethereum USDT 0x3Ed1f16BbE0eE2C58119c13517a88fe9ccedfd45
ForwardVaultERC20 Ethereum USDC 0x11cEeE394842d9492f2C97050f66dE0e3f89D3A6
QueContract Ethereum USDT 0x0f63bDcE0f4f3531117E2ed2FE1484c5E40a75b5
QueContract Ethereum USDC 0x4e601103590b8971c208bF06B64ba1ef1c85B7e6
ForwardVaultERC20 Arbitrum USDC 0x025421D3e98D3bB7A33d6814Dd576eD8B9090077
ForwardVaultERC20 Arbitrum USDT 0xD69670d0eCaf032Ea8b1A6925E59dBacAA20f43A
QueContract Arbitrum USDC 0xCfF3EdA95c3866bE10c8D3A29EDA665fc82EF72a
QueContract Arbitrum USDT 0xc7960021229aDbacddfb57990815ab599A275533

v2 was migrated live from v1 with all user balances preserved (initial positions seeded at deployment from the v1 snapshot).

Architecture

contracts/
├── OwnableMaster.sol                    two-step ownership (master / proposed master)
└── ForwardVaultERC20/
    ├── ForwardVaultERC20.sol            vault core — deposits, fixed-APY accrual, receipt token
    ├── ForwardVaultERC20Declarations.sol storage, events, errors
    ├── ForwardVaultERC20Helper.sol      internal math / share conversion
    ├── IForwardVaultERC20.sol           external interface
    ├── Mocks/                           test mocks
    ├── ERC20Tests/                      vault unit + invariant tests
    └── QueContract/
        ├── QueContract.sol              FIFO withdrawal queue with solver incentives
        ├── QueContractDeclarations.sol  storage, events, errors
        ├── QueContractHelper.sol        queue math
        ├── QueContractLowLevelHelper.sol pointer / storage primitives
        ├── QueContractUIHelper.sol      read-only aggregation for frontends
        ├── QueContractDeployScript.s.sol Foundry deploy script
        └── QueContractTests/            queue unit + invariant + security tests

ForwardVaultERC20 — ERC-20 receipt-token vault with fixed-rate interest accrual, deposit caps, pausable admin actions, and third-party forwarding of principal to the RWA operator.

QueContract — on-chain FIFO exit queue: users join with receipt tokens, solvers fulfill orders (fully or partially) for an incentive, with strict pointer-integrity and negative-incentive handling. Extensive invariant suite (fail_on_revert = true).

Build & test

npm install          # OpenZeppelin 4.9.3 (pinned to match deployed bytecode)
forge install        # forge-std
cp .env.example .env # fork tests read ETH_RPC_URL via [rpc_endpoints]
forge build          # solc 0.8.29, optimizer 600k runs, cancun — identical to on-chain settings
forge test

License

Copyright © WiseSoft / Wise Foundation. License to be determined by Wise Foundation.

About

Fixed-APY RWA yield vaults + withdrawal queue powering World Mobile AirNode vaults (v2). Migrated to wise-telecom-nodes (v3) on 2026-07-23; kept as the verified v2 on-chain source reference.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages