Asset Integration: Ethereum Mainnet
List or accept syrupUSDC, syrupUSDT & syrupUSDG as collateral or liquidity in your protocol.
syrupUSDC, syrupUSDT and syrupUSDG are ERC-4626 vault tokens on Ethereum mainnet. This page covers token addresses and three methods for obtaining pricing data.
Token addresses
Pricing
Option 1: Smart contract (ERC-4626)
syrupUSDC, syrupUSDT and syrupUSDG use the ERC-4626 tokenized vault standard. You can query the token price directly from the contract using two functions:
convertToAssets(uint256 shares_)- Returns the amount of underlying assets (USDC/USDT) that would be received for a given number of shares. Use this for display purposes and general price calculations.convertToExitAssets(uint256 shares_)- Returns the amount of underlying assets accounting for any unrealized losses in the pool. Use this when calculating actual redemption values.
All three tokens use 6 decimals. To get the price per token, call either function with 1000000 (1 share):
uint256 pricePerShare = ISyrupToken(syrupUSDC).convertToAssets(1000000);const syrupUSDC = new ethers.Contract(
"0x80ac24aA929eaF5013f6436cdA2a7ba190f5Cc0b",
["function convertToAssets(uint256) view returns (uint256)"],
provider
);
const price = await syrupUSDC.convertToAssets(1000000n); // 1 shareimport { createPublicClient, http } from 'viem';
import { mainnet } from 'viem/chains';
const client = createPublicClient({
chain: mainnet,
transport: http()
});
const price = await client.readContract({
address: '0x80ac24aA929eaF5013f6436cdA2a7ba190f5Cc0b',
abi: [{ inputs: [{ type: 'uint256' }], name: 'convertToAssets', outputs: [{ type: 'uint256' }], stateMutability: 'view', type: 'function' }],
functionName: 'convertToAssets',
args: [1000000n]
});Option 2: Pyth Oracle
Pyth Network provides low-latency, high-fidelity price feeds for syrupUSDC and syrupUSDT. Pyth calculates pricing using the smart contract ERC-4626 functions.
Feed IDs
syrupUSDC/USDC
0x2ad31d1c4a85fbf2156ce57fab4104124c5ef76a6386375ecfc8da1ed5ce1486
syrupUSDT/USDT
0x7e10170c23d7df62d301b2ade26854200ee584f3f3b84cb2e5195adf35c5b97f
Contract addresses
Sepolia Testnet
Get price from Pyth
Offchain: Fetch price from Pyth Hermes API
bash
javascript
Onchain: Read price from Pyth contract
See Pyth documentation for complete integration guides.
Option 3: CoinGecko / CoinMarketCap APIs
CoinGecko and CoinMarketCap track syrupUSDC and syrupUSDT prices via DEX pool data. These prices can fluctuate with onchain swaps, so we recommend Options 1 & 2.
Which price to use
DeFi protocols requiring oracle feeds
Option 1 (ERC-4626 functions) or Option 2 (Pyth)
Frontend display / portfolios
Option 1 (ERC-4626 functions) or Option 2 (Pyth)
Smart contract integrations
Option 1 (ERC-4626 functions)
Resources & contact
Partnerships & queries: partnerships@maple.finance
Last updated
Was this helpful?