Skip to main content

On-chain verification

Every rate on this site is a value in a deployed contract, and every payout is a transaction. Nothing here needs to be taken on trust.

Where the addresses come from

The app does not hardcode addresses. It reads them from the chain registry the API serves at https://api.frontier.fun/chains, which lists the factory, the curve, the hook, the vault factory and the rest for each chain. Any address can then be opened on the explorer.

Checking a rate

Each figure in this documentation corresponds to a getter on a deployed contract. Parameters lists them, contract by contract, with the value they should return.

Reading one takes a single eth_call, from the explorer's read tab or from any tool:

cast call <bondingCurve> "txFee()(uint16)" --rpc-url https://rpc.mainnet.chain.robinhood.com
# 150, the curve fee in basis points

Checking a payout

A creator's fee income is a transfer to the fee recipient set at creation. Opening that address on the explorer shows every payment it ever received, with its transaction, its block and its amount. The same applies to a referrer's claims and to a staking vault's ETH balance.

Checking that liquidity is locked

Open the contract holding a graduated coin's position and read its code on the explorer. The absence of a withdrawal function is the guarantee; there is no permission to inspect, because there is no function to call.

Checking the never-sold rule

The protocol receives part of its fees in the coins themselves. Those coins sit at a public address, and a sale would be a transaction on it. Open the address, read the outgoing transfers, and the claim in Protocol revenue is either true or visibly false.

Checking a coin's own configuration

A coin's fee model, LP share and modules are stored on its pool; its curve parameters and its launch mode are stored on the coin itself. All of it is shown on the coin's page, under Settings and Modules, and all of it is readable from the contracts — which is what makes those tabs a display of on-chain state rather than a claim about it.

Since curve parameters are per coin, read them from the coin rather than from the factory: the factory's values are the protocol's suggested defaults, not the shape of the coin in front of you.