Community Solar Token Yield Distributor
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Community Solar Token Yield Distributor is a DeFi tool that distributes yields from community solar projects to token holders. It reads the solar token contract address, community member token balances, solar energy generation data, yield distribution formula, distribution schedule, member yield shares, distribution history, account nonce, gas estimates for distribution, and previous distribution records. The tool then guides you through distributing yields to community members, updating member yield balances, recording the distribution on-chain, and syncing yield status across chains.
HOW TO USE
Connect your wallet via the built-in connector. Select the network where the solar token contract is deployed. Enter the solar token contract address, the yield token address, the list of members with their share percentages (one per line, address,share%), the total yield amount, and the payment token address (use address(0) for native token). The tool will read on-chain data and display a preview including: solar token contract, yield token, payment token, total yield, member list with their shares and calculated yield amounts, the bulk sender contract (from registry), its owner, the sender fee, and estimated gas. Review all details carefully. Click "distribute yields" to execute the batch distribution in a single transaction. The tool will guide you through three steps: verifying solar energy generation data, preparing the batch, and executing the distribution.
TECHNICAL MECHANISM
The tool uses ethers.js v5.7.2 to interact with the solar token contract and the bulk sender contract. It reads member token balances using `balanceOf(member)` on the solar token. Solar energy generation data is read via `getGenerationData()` which returns the total energy produced in the period. Yield distribution formula is read using `getDistributionFormula()` which returns the method used to calculate shares (e.g., proportional to energy contribution). Distribution schedule is read via `getDistributionSchedule()` which returns the frequency and timing of distributions. Distribution history is scanned using `eth_getLogs` for `YieldDistributed` events, with adaptive chunking (halving chunk size on failure) to handle different RPC limits—the tool walks backward from the current block and continues even if some ranges are rejected. The bulk sender contract is looked up from the BULKSEND registry using the current chain ID and the ERC-20 standard. The fee is read live via `fee()`. The distribution transaction calls `distribute()` on the sender contract with the member addresses and amounts. Gas estimates are calculated using `estimateGas` with EIP-1559 fee data from `feeData`. All transactions are built with EIP-1559 fee data, and the tool uses `effectiveGasPrice` from receipts for accurate cost accounting. The tool checks the user's balance against the total (amount + fee) before sending and approves the sender contract for the exact total.
WHAT IT CANNOT SEE
This tool cannot verify that solar energy generation data is accurate—it reads on-chain data only. It cannot detect if members are misrepresenting their energy contributions. It cannot guarantee that yield amounts are fair. It cannot prevent front-running of distributions. It cannot validate that the distribution formula is correct. It cannot detect if the solar token contract has been modified. It cannot ensure that distribution schedules are appropriate. It cannot verify that yield-sharing terms are enforced off-chain.
PLEASE NOTE
This tool is EVM-only and supports Ethereum, Polygon, BNB Chain, Arbitrum, Optimism, and Avalanche. The bulk sender contract address is automatically looked up from the registry—no manual entry required. The fee is set by the contract owner and is deducted from the total distribution amount. Ensure the project has sufficient yield token balance to cover the distribution plus fees. The tool does not store or transmit any member data. Always verify generation data and member shares before distributing.