Settings
Corpus (irrevocable)
—
Income pool
—
Distributed to date
—
Operational fund
—
Status
—
🕊
Beneficiaries
loading…
—
⚖
Governance
loading…loading…
Create a proposal
🤲
The Waqf
| Your contribution | — |
| Your voting power | — |
| Proposal threshold | — |
📖
How this dApp works
user guide · on-chain process · flow graph🖐 How to use
- Connect your wallet — press the Connect Wallet button (top-right) and switch your wallet to Sepolia, the network this dApp is configured for (chain 11155111).
- Endow into the corpus — in the The Waqf card, enter an amount in AED-S and press Endow (irrevocable); approve the token spend in your wallet and confirm. The endowment can never be taken back.
- Record income (nazir) — board members enter the yield the corpus earned and press Record income; it lands in the income pool, kept separate from the corpus.
- Register beneficiaries — in the Beneficiaries card, paste a wallet address and a weight in bps (all weights must total 10,000), then press Add.
- Govern — under Governance open Create a proposal, pick a type, paste the calldata, describe it and press Propose; donors vote For / Against, nazirs press Confirm, and once the timelock passes anyone can press Execute.
- Distribute — press Distribute income to beneficiaries (gold button) to pay the income pool out pro-rata to the registered causes.
⛓ The process — what happens on-chain
- WaqfVault.endow() locks your AED-S into the irrevocable corpus — totalCorpus only ever grows, and no code path can spend or withdraw it.
- WaqfVault.recordIncome() lets the nazir board deposit permissible yield into a separate income pool, tracked strictly apart from the corpus.
- BeneficiaryRegistry stores the named causes — addBeneficiary() and setBeneficiaryWeight() keep weights in bps that must sum to 10,000, read by the vault at distribution time.
- WaqfGovernor turns contributions into votes: donors propose()/vote() with their endowed amount snapshotted at proposal creation, 2-of-3 nazirs confirm(), and execution waits out a timelock — targets are allowlisted to the registry and the operational fund only.
- WaqfVault.distribute() pays the income pool to beneficiaries pro-rata to their weights — the corpus is untouched, and only governor-approved spendOperational() may use the operational fund.