Registered vaults
Registered vaults
BNB mainnet
name
description
is official (yes/no)
vaultFactory address
vaultData schema description
interface
BNB testnet
name
description
is official (yes/no)
vaultFactory address
vaultData schema description
interface
Interfaces
Split Vault interface
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
/// @title ISplitVault
/// @notice Interface for the Split Vault implementation.
/// @dev Derived from the on-chain SplitVault contract.
interface ISplitVault {
/// @notice A payout recipient with a basis-point share.
/// @param recipient The payout address (non-zero and unique).
/// @param bps Share in basis points (1% = 100, 100% = 10,000).
struct Recipient {
address recipient;
uint16 bps;
}
/// @notice Balance tracking for a recipient.
/// @param accumulated Total BNB credited to the user.
/// @param claimed Total BNB claimed by the user.
struct UserBalance {
uint128 accumulated;
uint128 claimed;
}
/// @notice View structure returned by `getRecipientsInfo()`.
/// @param recipient The payout address.
/// @param bps Share in basis points.
/// @param accumulated Total BNB credited to the user.
/// @param claimed Total BNB claimed by the user.
struct RecipientInfo {
address recipient;
uint16 bps;
uint128 accumulated;
uint128 claimed;
}
/// @notice Emitted when BNB is received and split across recipients.
/// @param amount The total amount distributed.
event FlapSplitVaultDistributed(uint256 amount);
/// @notice Emitted when a recipient is dispatched funds.
/// @param recipient The recipient address.
/// @param amount The amount dispatched.
event FlapSplitVaultDispatched(address recipient, uint256 amount);
/// @notice Emitted when a recipient claims funds manually.
/// @param user The recipient address.
/// @param amount The amount claimed.
event FlapSplitVaultClaimed(address user, uint256 amount);
/// @notice Error when number of recipients exceeds the limit.
error TooManyRecipients();
/// @notice Error when the total basis points is not 10,000.
error InvalidBpsSum();
/// @notice Error when a recipient address is zero.
error ZeroRecipient();
/// @notice Error when no recipients are provided.
error NoRecipients();
/// @notice Error when recipients are duplicated.
error DuplicateRecipient();
/// @notice Initialize the vault after cloning.
/// @param _taxToken The associated tax token address.
/// @param _recipients Array of recipients and their shares.
function initialize(address _taxToken, Recipient[] calldata _recipients) external;
/// @notice Dispatch claimable balances to all recipients.
function dispatch() external;
/// @notice Claim the caller’s accumulated balance.
/// @param user The recipient address to claim for.
function claim(address user) external;
/// @notice Return detailed information for all recipients.
/// @return info Array of recipient info entries.
function getRecipientsInfo() external view returns (RecipientInfo[] memory info);
/// @notice Retrieve a recipient by index.
/// @param index The recipient index.
/// @return recipient The recipient address.
/// @return bps The recipient share in basis points.
function recipients(uint256 index) external view returns (address recipient, uint16 bps);
/// @notice Retrieve user balance totals for a recipient.
/// @param user The recipient address.
/// @return accumulated Total BNB credited to the user.
/// @return claimed Total BNB claimed by the user.
function userBalances(address user) external view returns (uint128 accumulated, uint128 claimed);
/// @notice The associated tax token address.
function taxToken() external view returns (address);
/// @notice The factory address that created this vault.
function factory() external view returns (address);
/// @notice The total basis points constant (10,000).
function TOTAL_BPS() external view returns (uint256);
}Gift Vault (FlapXVault) interface
Last updated