Key Features
Last updated
Last updated
Core functionality of the Pupas Protocol
Investment Strategies: Automated fund allocation across DeFi protocols
Risk Management: Continuous exposure monitoring and safeguards
Oracle Integration: Real-time price data for LP token pricing and yield
Performance Optimization: Dynamic strategy adjustment based on market conditions
Multi-Agent Interface: Four specialized assistants for user support
Contextual Assistance: Real-time data processing from multiple sources
User Support System: Automated fund allocation based on AI models
Performance Optimization: Dynamic strategy adjustment based on market conditions
# LP Token Price stored as integer with 6 decimal precision
let currentPrice = tryGetInteger("global_lpPrice")
Oracle updates LP prices hourly via updateLpPrice
function
Price appreciation provides yield to stakers
Transparent on-chain calculation process
# Withdrawal calculation
let lpAmount = pmt.amount
let amountToWithdraw = fraction(lpAmount, tryGetInteger("global_lpPrice"), Scale6)
# LP tokens are burned, USDTu returned to user
[
Burn(lpId, lpAmount),
ScriptTransfer(i.caller, amountToWithdraw, fromBase58String(assetIdStr))
]
USDT-ERC20
Ethereum
Bridged to Waves via gateway
USDTu
Waves
Native support
Automatic token type detection via smart contract validation
Unified staking interface for both tokens
Seamless conversion and processing
Hourly price updates via updateLpPrice
smart contract method
Volatility protection with 10% maximum change per update
On-chain transparency for all price changes
# Oracle price update with validation
@Callable(i)
func updateLpPrice(lpPrice: Int) = {
let currentOraclePrice = valueOrElse(getInteger("global_lpPrice"), Scale6)
let oracleChangeDelta = abs(max(
fraction(currentOraclePrice, Scale6, lpPrice),
fraction(lpPrice, Scale6, currentOraclePrice)
) - Scale6)
# Validate price change within tolerance
if (oracleChangeDelta > OracleVolatilityTolerance) then
throw("max change for oracle is " + toString(fraction(OracleVolatilityTolerance / 100, Scale6)) + "%")
else
[IntegerEntry("global_lpPrice", lpPrice)]
}
Platform navigation assistance
Feature explanations
Basic user guidance
APY calculations and insights
Performance data analysis
Yield mechanism explanations
Transaction assistance
Smart contract interaction help
Technical troubleshooting
Risk assessment guidance
Security recommendations
Best practices education