☪
Amanah Education WAQF Sharia-compliant endowment · s0sta.com/waqf
—
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

  1. 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).
  2. 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.
  3. 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.
  4. Register beneficiaries — in the Beneficiaries card, paste a wallet address and a weight in bps (all weights must total 10,000), then press Add.
  5. 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.
  6. 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

  1. WaqfVault.endow() locks your AED-S into the irrevocable corpus — totalCorpus only ever grows, and no code path can spend or withdraw it.
  2. WaqfVault.recordIncome() lets the nazir board deposit permissible yield into a separate income pool, tracked strictly apart from the corpus.
  3. 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.
  4. 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.
  5. 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.

🗺 Flow graph

1 Endow corpus WaqfVault.endow() 2 Record income WaqfVault.recordIncome() 3 Register causes BeneficiaryRegistry 4 Govern & vote WaqfGovernor 5 Distribute WaqfVault.distribute() The corpus is irrevocable — endow() can never be withdrawn or spent. Only recorded income flows onward, through the governor, to the beneficiaries.
Live demo ↗ WaqfVault on Sepolia ↗