Contracts
Deployed addresses, interface summary and the EIP-712 domain. The verified source on BscScan is authoritative.
Deployment
| Contract | AnonFund |
|---|---|
| Network | BNB Chain · chain id 56 |
| Address | 0xEdF59883C7A4c67A368E465BFa4ED7a962546c09 |
| Deployed at block | 125,475,317 |
| Compiler | Solidity 0.8.30, optimizer 200 runs, EVM cancun |
| Dependencies | OpenZeppelin EIP712, ECDSA |
| Source | Verified on BscScan |
Campaign struct
struct Campaign {
address creator; // wallet that created the campaign
address claimKey; // address of the off-chain claim key
bool active; // accepting donations
uint256 goal; // informational target, wei
uint256 raised; // lifetime donations, wei
uint256 balance; // unclaimed, wei
string title; // 1..80 bytes
string description; // 0..1000 bytes
}Functions
| Signature | Notes |
|---|---|
createCampaign(string title, string description, uint256 goal, address claimKey) → uint256 | Creates a campaign owned by msg.sender. Emits CampaignCreated. |
donate(uint256 campaignId) payable | Adds msg.value to the campaign. Reverts if closed or zero. Emits Donated. |
claim(uint256 campaignId, address recipient, uint256 amount, bytes signature) | Pays amount to recipient given a valid claim-key signature. Emits Claimed. |
setActive(uint256 campaignId, bool active) | Creator only. Opens or closes donations. Emits CampaignStatusChanged. |
rotateClaimKey(uint256 campaignId, address newClaimKey) | Creator only. Replaces the claim key and bumps the nonce. Emits ClaimKeyRotated. |
claimDigest(uint256 campaignId, address recipient, uint256 amount, uint256 nonce) → bytes32 | EIP-712 digest the claim key must sign. |
getCampaign(uint256 campaignId) → Campaign | Full campaign struct. |
getCampaigns(uint256 offset, uint256 limit) → (uint256[] ids, Campaign[] page) | Paginated list, newest first. |
campaignCount() → uint256 | Number of campaigns ever created. |
nonces(uint256 campaignId) → uint256 | Current claim nonce. |
Events
| Signature | Notes |
|---|---|
CampaignCreated(uint256 indexed campaignId, address indexed creator, string title, uint256 goal) | New campaign. |
Donated(uint256 indexed campaignId, uint256 amount) | Donation received. |
Claimed(uint256 indexed campaignId, uint256 amount) | Funds released. Recipient intentionally omitted. |
CampaignStatusChanged(uint256 indexed campaignId, bool active) | Opened or closed. |
ClaimKeyRotated(uint256 indexed campaignId) | Claim key replaced. |
Custom errors
UnknownCampaign() InvalidClaimKey() InvalidTitle() DescriptionTooLong() ZeroAmount() CampaignInactive() NotCreator() InsufficientBalance() InvalidSignature() InvalidRecipient() TransferFailed()
EIP-712 domain
{
"name": "AnonFund",
"version": "1",
"chainId": 56,
"verifyingContract": "0xEdF59883C7A4c67A368E465BFa4ED7a962546c09"
}
Claim(uint256 campaignId,address recipient,uint256 amount,uint256 nonce)Integrating
Everything the site does is a plain contract call; no backend, indexer or API key is involved. To list campaigns, call getCampaigns(0, n). To watch activity, subscribe to the events above. To build an alternative claim client, read nonces(id), sign the typed data with the claim key, and call claim from any funded wallet.