FAQ
ETH/WETH earn a consistent amount of points per block. USDB earns a variable amount of points that is based on the amount of ETH that USDB is currently worth. The conversion rate is updated whenever an account’s USDB balance changes due to sending or receiving funds.
Currently, the blast.io frontend does not automatically know which contracts are associated with which dapps. As more contracts get deployed and earn points (e.g. new liquidity pools), the blast.io frontend will fail to display a dapp’s true points balance. Please reach out to us if we’re missing some of your dapp’s contracts.
Note that your dapp can still transfer points to users that were earned by contracts the frontend doesn’t know about. As long as you configure your points operator, you can transfer the points. Once the frontend is updated to include those contracts, the received and distributed points totals will update automatically.
We’re considering ways of automating attributing contracts to dapps via the points operator for the future, but right now the process is manual.
Liquidity points are only awarded to contracts that hold ETH/WETH/USDB. Developer points (Blast Gold) can be earned by any smart contract, even if it doesn’t hold TVL directly.
If an aggregator contract directs signficiant liquidity to a downstream smart contract run by a third party, then that third party should distribute some of their liquidity points back to the aggregator contract. From the downstream smart contract, the aggregator contract is just another user.
Once the aggregator contract receives these points from the upstream contract, it can redistribute those points to the end users of the aggregator. If you have a close integration with another smart contract, it’s important to reach out to them to align expectations on how they will distribute their liquidity points back to your aggregator contract.
A contract can call the configurePointsOperator
function at any point: during construction, on initialization (for proxied contracts), or even days later. Once the points operator has been set once though, only the existing points operator can update it by calling configurePointsOperatorOnBehalf
.
interface IBlastPoints {
function configurePointsOperator(address operator) external;
function configurePointsOperatorOnBehalf(address contractAddress, address operator) external;
}
The first parameter of configurePointsOperatorOnBehalf
is the contract you’d like to change the points operator for. The second parameter is the new points operator. The msg.sender
must be the current points operator. This mechanism allows you to change your points operator at any point after your contract has been created.
No, the points API is not compatible with safes. The points API is designed to allow you to distribute points programmatically and not manually. For security, we suggest adhering to the following guidelines to secure your points operator private key:
- Generate a distinct private key that is not used for any other purposes besides being your points operator.
- Do not load the operator private key into Metamask or another wallet. Only load it where necessary, e.g. on the machine that will be interfacing with the Blast Points API.
- Avoid hard coding your private key in code and treat it like a sensitive API key secret.
There is no whitelist for earning points. Any address on Blast can earn points by holding ETH/WETH/USDB, as described here (for users) and here (for dapps).
There is also no whitelist restricting which dapps can distribute points to their users. Dapps just need to integrate with the Points API described on this page.