Skip to content
Protocol contracts not yet configured for this build
Enter app

Developers

Reads

The complete read surface, by contract. All are view and cost nothing.

PloutoRegistry

solidity
function ponsFactory()      external view returns (address);function ponsFeeEscrow()    external view returns (address);function expectedLauncher() external view returns (address);function revenueRouter()    external view returns (address);function gravityStaking()   external view returns (address);function buybackExecutor()  external view returns (address);function reserve()          external view returns (address);function ploutoToken()      external view returns (address);function ploutoCurve()      external view returns (address);function initialized()      external view returns (bool);function protocolWired()    external view returns (bool);function owner()            external view returns (address);

initialized() is the gate every integration should check first. It returns ploutoToken != address(0).

PloutoRevenueRouter

solidity
function totalRevenueClaimed()  external view returns (uint256);function totalRevenueRouted()   external view returns (uint256);function unallocatedRevenue()   external view returns (uint256);function totalSentToBuybacks()  external view returns (uint256);function totalSentToStakers()   external view returns (uint256);function totalSentToReserve()   external view returns (uint256); function totalDonationsReceived() external view returns (uint256);function unallocatedDonations()   external view returns (uint256); function pendingInEscrow() external view returns (uint256);function localBalances()   external view returns (uint256 total, uint256 revenueUnallocated, uint256 donationsUnallocated); function routesLength()          external view returns (uint256);function getRoute(uint256 index) external view returns (RouteRecord);function splitBps()              external pure returns (uint256 buyback, uint256 staker, uint256 reserve_, uint256 total);

GravityStaking

solidity
function totalStaked()          external view returns (uint256);function totalWeight()          external view returns (uint256);function totalRewardsReceived() external view returns (uint256);function totalRewardsClaimed()  external view returns (uint256);function accRewardPerWeight()   external view returns (uint256);function pendingUndistributed() external view returns (uint256);function outstandingRewards()   external view returns (uint256); function getPosition(uint256 id)      external view returns (Position);function positionsOf(address owner)   external view returns (uint256[]);function positionCountOf(address o)   external view returns (uint256);function pendingRewards(uint256 id)   external view returns (uint256);function pendingRewardsOf(address o)  external view returns (uint256); function multiplierFor(uint64 duration) external pure returns (uint256);function paused()        external view returns (bool);function emergencyMode() external view returns (bool);

BuybackExecutor

solidity
function buybackBudget()                external view returns (uint256);function totalBudgetReceived()          external view returns (uint256);function totalEthSpent()                external view returns (uint256);function totalPloutoRetiredByProtocol() external view returns (uint256);function totalPloutoBurned()            external view returns (uint256);function totalPloutoSentToDead()        external view returns (uint256);function executionCount()               external view returns (uint256); function maxEthPerExecution() external view returns (uint256);function maxBudgetShareBps()  external view returns (uint256);function maxPriceImpactBps()  external view returns (uint256);function minEthPerExecution() external view returns (uint256); function retiredSupply()               external view returns (uint256);function estimatedCirculatingSupply()  external view returns (uint256);function currentPhase()                external view returns (uint8); function poolKeyFor(address token)        external view returns (PoolKey);function poolId(address token)            external view returns (bytes32);function poolSqrtPriceX96(address token)  external view returns (uint160); function executionsLength()          external view returns (uint256);function getExecution(uint256 index) external view returns (Execution);

PloutoReserve

solidity
function balance()                 external view returns (uint256);function totalRevenueReceived()    external view returns (uint256);function totalDonationsReceived()  external view returns (uint256);function totalEthWithdrawn()       external view returns (uint256);function depositCount()            external view returns (uint256);function nextWithdrawalId()        external view returns (uint256);function getDeposit(uint256 i)     external view returns (Deposit);function getWithdrawal(uint256 id) external view returns (Withdrawal); function TIMELOCK_DELAY()   external view returns (uint256);function EXECUTION_WINDOW() external view returns (uint256);

Note that nextWithdrawalId() starts at 1, so the proposal count is nextWithdrawalId() - 1.

Batching

Every one of these is a view, so batch them:

typescript
const results = await client.multicall({  contracts: [    {address: router, abi: ploutoRevenueRouterAbi, functionName: 'totalRevenueClaimed'},    {address: router, abi: ploutoRevenueRouterAbi, functionName: 'totalRevenueRouted'},    {address: staking, abi: gravityStakingAbi, functionName: 'totalStaked'},    {address: executor, abi: buybackExecutorAbi, functionName: 'totalPloutoRetiredByProtocol'},  ],});

The interface batches roughly twenty reads per refresh this way.