Page cover

Smart Contract Documentation

Technical reference for Dollar Infinite's main contracts.

Main Addresses (BSC Mainnet)

Contract
Address
Verified on BSCScan

USDT (BEP-20)

0x55d398326f99059fF775485246999027B3197955

βœ…

Vault (Main)

[INSERT REAL VAULT ADDRESS]

βœ…

Strategy Manager

[INSERT REAL ADDRESS]

βœ…

Rewards Distributor

[INSERT REAL ADDRESS]

βœ…

AI Bot Controller

[INSERT REAL ADDRESS]

βœ…

Affiliate Manager

[INSERT REAL ADDRESS]

βœ…

How to get complete ABI:

  1. Tab "Contract" β†’ "Code" β†’ "Contract ABI" (copy JSON)

Main Vault Contract Functions

deposit(uint256 amount, uint8 lockDays)

  • Parameters: amount (in wei, 18 decimals), lockDays (1,5,10,20)

  • Requires: USDT approved

  • Emits: event Deposited(address user, uint256 amount, uint8 lockDays)

withdraw(uint256 positionId)

  • Parameters: positionId (position ID)

  • Requires: matured position (unlock date passed)

  • Returns: principal + yields in USDT

  • Emits: event Withdrawn(address user, uint256 positionId, uint256 amount)

getUserPositions(address user)

  • View function

  • Returns: array of Position structs (amount, lockDays, startTime, endTime, rewards)

getPendingRewards(uint256 positionId)

  • View function

  • Returns: uint256 pending rewards in USDT

calculateYield(uint256 amount, uint8 lockDays)

  • View function

  • Returns: projected total yield (based on tier fixed rate)

Strategy Manager Functions (example)

getAllocationPercentages() β†’ Returns struct with % for lending, trading, reserve getBotPerformance() β†’ Returns success rate, total ops, etc.

Rewards Distributor Functions

distributeRewards() β€” Called by keeper or admin (automatic) getUserRewards(address user) β€” Sum of yields from all positions

Integration Recommendations

  • Use ethers.js or web3.js for calls

  • Always verify chainId == 56

  • Implement error handling for revert messages

  • Monitor events (Deposited, Withdrawn, etc.) via websocket provider

  • Use multicall to optimize queries (if available)

Simple deposit example (ethers.js):

Last updated