Before we begin
This document explains how VoteBoxApp can pay for itself, stay affordable for poor communities, guarantee the founder's share permanently, and eventually hand control to its community — and what it would actually take to build.
Technical terms are explained the moment they appear, in blue boxes like the one below. Nothing has been simplified away; the detail is all here, just unpacked.
- How proposals get priced — and why the poorest pay least
- Protecting everyone from ADA's price swings
- What happens when more people vote than expected
- Guaranteeing the founder's share forever
- What can actually be built — and the one hard problem
- Who needs a crypto wallet (and who doesn't)
- Money projections
- Risks, build order, and a glossary
1 · How proposals get priced
Voting is always free. Only the person who creates a proposal pays. The question is how much.
Why a single flat price fails
Charging everyone the same amount — say 20 cents per proposal — sounds fair but isn't:
- It hurts poor communities most. Twenty cents is invisible in Spain and meaningful in rural Malawi. One price cannot be fair to both.
- It undercharges large organisations. A twelve-person gardening group and a city of 500,000 pay the same, even though the value they get differs enormously.
- It doesn't raise enough money. At realistic volumes, a flat small fee never funds the organisation.
The solution: price by how many people will vote
This is fair automatically. Small local groups with few resources land in the cheap tiers. Large institutions land in the expensive ones. And crucially, the platform never has to ask anyone how much money they have — which would be both intrusive and easy to lie about.
| Tier | People who can vote | Price | ≈ in euros |
|---|---|---|---|
| Micro | up to 50 | $0.10 — in practice free | €0.09 |
| Community | 51 – 500 | $0.50 | €0.44 |
| Municipal | 501 – 10,000 | $2.00 | €1.75 |
| Regional | 10,001 – 100,000 | $8.00 | €7.02 |
| National | over 100,000 | $25.00 | €21.93 |
The finding that makes this work
Because a handful of large proposals bring in most of the money, the cheapest tier can be made almost free at virtually no cost to the organisation:
Compare the two approaches directly. The poorest users end up paying less than before, while the organisation earns roughly nine times more overall:
| Old flat model | New tiered model | |
|---|---|---|
| Cheapest proposal costs | $0.16 | $0.10 (or free) |
| Average revenue per proposal | $0.16 | $1.48 |
| Proposals needed for $10,000/month | ~62,500 | ~6,800 |
Suggestion: launch with just three tiers (Micro / Community / Institutional) rather than five. Simpler to explain, cheaper to check for errors, and more tiers can be added later without breaking anything.
Three layers of affordability
Cheap prices are the first layer. Two more make affordability reliable rather than merely low:
Together these mean the answer to "can a poor village afford this?" is never "it depends" — it is "yes, and if not, the platform pays for them."
2 · Protecting everyone from ADA's price swings
This volatility is a serious problem, and the fix is surprisingly simple once you see it.
The trick: which number you write down
At the moment the fee is defined in ADA — "1 ADA per proposal." The amount of ADA is fixed, so its real value floats up and down with the market. The organisation's income becomes a bet on the crypto market.
Flip it around. Define the fee in dollars — "$0.50 per proposal" — and let the amount of ADA change to match. Now the real value is fixed and only the ADA quantity moves:
| If ADA is worth | Old way: always 1 ADA | New way: always $0.50 |
|---|---|---|
| $0.16 | organisation gets $0.16 | creator pays 3.125 ADA → $0.50 |
| $0.50 | organisation gets $0.50 | creator pays 1.000 ADA → $0.50 |
| $1.00 | organisation gets $1.00 | creator pays 0.500 ADA → $0.50 |
The old way produces a six-fold swing in income for reasons that have nothing to do with how well the platform is doing. The new way produces a steady figure.
How the app knows the exchange rate
This removes the riskiest single component from the early build. Add a real oracle later, only if the lag starts causing problems.
Whichever is used, set a hard floor and ceiling in ADA terms, so that a broken or manipulated price feed can never produce an absurd charge. And use an average price over time rather than the instant price, to smooth out momentary spikes.
Two things pegging does not fix
The fix: the organisation pays the gas for Micro-tier proposals out of the Solidarity Pool. The cheapest tier then has one stable, promisable price no matter what the market does.
The fix: a standing policy of converting part of income — say 60% — into a stable digital currency (one that holds a fixed dollar value), keeping 40% in ADA to stay aligned with the Cardano ecosystem.
3 · When more people vote than expected
Someone declares a Community proposal for 500 people. It catches on and 3,000 people vote. What happens?
Why asking voters to chip in doesn't work
The natural idea is to let the extra voters contribute a few cents each. The arithmetic kills it:
| Shortfall to next tier | Extra voters | Each would owe | Gas to send it |
|---|---|---|---|
| $1.50 | 2,500 | $0.0006 | ~$0.027 |
It works in two other forms instead:
- One sponsor covers the whole shortfall. A single $1.50 payment is perfectly sensible — one transaction, one postage fee. This is the sponsorship mechanism already described.
- The organisation simply absorbs it. Honestly, this is probably the right default. The gaps between tiers are $1.50, $6.00 and $17.00 — trivial amounts.
The clean solution: settle at the end, not the start
Treat the declared tier as a deposit rather than a final price. When voting closes, the system compares what was declared against what actually happened:
| What happened | What the system does |
|---|---|
| Fewer voters than declared | Refund the difference down to the correct tier |
| Somewhat more (within one tier) | Absorbed silently. The creator is never even told |
| Enormously more | Top-up needed before final results publish — but votes are never thrown away, and a sponsor can step in |
The refund is what makes this fair. Because guessing too high costs you nothing, nobody has any reason to deliberately under-declare to save money. Honest estimation becomes the easy choice in both directions.
Stopping abuse, using reputation
The obvious cheat is to always declare Micro and let the organisation absorb the overflow every time. Reputation solves it neatly:
- Seed (brand new) — narrow allowance; must top up if they exceed it
- Sprout / Branch — moderate allowance
- Root (long history of honest declarations) — generous allowance, absorbed automatically
Repeatedly under-declaring damages your standing. This gives the reputation system real practical weight instead of being decorative.
4 · Guaranteeing the founder's share forever
The Perpetual Founder Fee (PFF) is the founder's permanent share of platform income. The promise is only as good as its enforcement — and right now it is enforced only by ordinary app code, which could be changed by anyone who controls the software.
The conflict — and how to resolve it
There is a genuine tension. If everything is frozen permanently, the future community-run organisation has no real power and is decorative. If nothing is frozen, the founder's share is just a promise that a future vote could delete.
| Frozen forever — no key, no update path | Decided by community vote |
|---|---|
| Founder's share: 10% of platform income | The price of each tier |
| The founder's payment address | The size boundaries of each tier |
| Treasury share: 90% | Where the exchange rate comes from |
| The split runs on every single payment | Solidarity Pool percentage |
| — | How much income is converted to stable currency |
This also settles the long-standing question of awkward split percentages. A 90/10 division is a whole, clean, easily audited number — which matters a great deal for something that can never be corrected once deployed.
5 · What can actually be built
Now the engineering reality. There is one hard problem that reshapes the whole build order, and it is better to meet it now than after six months of work.
Smart contracts on Cardano can only see the single transaction they are checking, plus a few specifically attached references. They cannot search back through history or tally up past transactions. Since votes are currently recorded as notes attached to many separate transactions, a smart contract has no way to know how many votes a proposal received. "Settle at the end" therefore cannot simply be written into a contract and expected to work.
Three possible ways around it
| Approach | How it works | Verdict |
|---|---|---|
| Record every vote individually on-chain | Each vote becomes its own blockchain entry, so they can be counted directly | Impossible — about 3 cents of gas per vote. Free voting would be destroyed. |
| Running tally chunk | One "scoreboard" held by the contract. Votes are gathered into batches, and each batch updates the scoreboard. The contract checks the tally only ever goes up, and that the batch was folded in correctly. | The right answer — one postage fee per batch rather than per vote, so voting stays free. It also fits the vote-batching design already planned. |
| Trusted declaration | The platform's own server signs a statement of the final count and the contract accepts it | Simple, but the count is trusted rather than proven |
Queueing. Only one transaction can update the scoreboard at a time. Regular batching is fine, but very high volumes would require splitting the scoreboard into several parallel ones.
The batcher could leave votes out. The contract can verify the arithmetic was done correctly, but not that every vote was included. This is unavoidable in any design where voters don't personally sign on the blockchain — which is the price of keeping voting free. The money becomes fully trustworthy; the vote count remains partly trusted. Be precise about this in grant applications: claim trustless fee splitting, not trustless voting.
The insight that saves months of work
Build Contract A first. It delivers the on-chain founder guarantee — the headline grant milestone — and it stands on its own even if Contract B is postponed indefinitely.
Storing the proposal text
Two things must be right here:
- The declared tier and voter limit must be written on the blockchain itself, not only in the IPFS file. Smart contracts cannot read IPFS.
- Lock the reference code at creation time. IPFS files are effectively replaceable — editing produces a new code. Without locking it, someone could pay for a small proposal and then swap in different content afterwards.
6 · Who needs a crypto wallet
So yes — start wallet integration now, but build it as strictly optional. The app must remain fully usable with no wallet connected. Anything that breaks without one has been built the wrong way round.
7 · What the money looks like
Average income of $1.48 per proposal, and — because prices are pegged — these figures no longer move with the ADA market. Two growth scenarios are shown: a cautious one and a faster one. Both slow down and level off over time, as real adoption does.
| Target | Proposals per month needed | Cautious | Faster |
|---|---|---|---|
| $1,000 per month | ~680 | month 9 | month 3 |
| $5,000 per month | ~3,400 | month 25 | month 13 |
| $10,000 per month | ~6,800 | month 34 | month 18 |
Under the old flat fee, $10,000 a month would have needed around 62,500 proposals — realistically unreachable. Here it needs about 6,800.
| After | Proposals | Total income | Founder | Treasury |
|---|---|---|---|---|
| Cautious scenario | ||||
| Year 1 | ~7,100 | $10,436 | $1,044 | $9,392 |
| Year 2 | ~31,800 | $46,880 | $4,688 | $42,192 |
| Year 3 | ~100,700 | $148,503 | $14,850 | $133,653 |
| Year 5 | ~393,800 | $580,851 | $58,085 | $522,766 |
| Faster scenario | ||||
| Year 1 | ~17,000 | $25,023 | $2,502 | $22,521 |
| Year 2 | ~116,700 | $172,123 | $17,212 | $154,911 |
| Year 3 | ~429,900 | $634,072 | $63,407 | $570,664 |
| Year 5 | ~1,363,500 | $2,011,149 | $201,115 | $1,810,034 |
The first year remains modest — roughly $1,000–2,500 to the founder. That is entirely normal for a new organisation, but it must be said plainly: grants and the NFT programmes are structural rather than optional for the first two to three years. The honest framing for funders is that fee income is designed to replace grant dependency over a three-year horizon, not to avoid it from the start.
8 · How hard is all this to build?
| Task | Time | Risk | Notes |
|---|---|---|---|
| Tier pricing in the existing app code | Days | Low | Test the assumptions before touching the blockchain |
| Manually updated ADA price table | Days | Low | Avoids needing a price oracle entirely |
| Contract A — the 90/10 split | 1–2 weeks + review | Low | Best value for effort in the whole project |
| Wallet connection on mobile | 3–6 weeks | Medium | Enables sponsorship and top-ups |
| Live price oracle | 2–4 weeks + running cost | Med-high | Skip in the first phase |
| Contract B — settle at the end | 6–12 weeks | High | Running tally, queueing, fingerprint checks |
| Reputation-based allowances | Blocked | High | Needs the SBT badges on-chain first |
The first four rows are realistically 2–3 months of focused work and produce a working tiered system with a genuine on-chain founder guarantee. The complete vision is nearer 9–18 months, and Contract B is where the difficulty genuinely escalates.
Suggested order of work
Phase 0 — tidy up
Settle the split at a clean 90/10. Correct the README so it describes the blockchain enforcement as planned rather than existing. Push the recent local work to the public repository so it reflects reality.
Phase 1 — tiers in ordinary app code
Implement the tier prices with a manually maintained rate table. Then run a real local campaign and measure what mix of tiers actually occurs. This assumption drives every revenue figure in this document and is currently completely untested.
Phase 2 — Contract A and wallets, in parallel
Build and independently review the permanent split contract — the headline grant milestone. At the same time, add optional wallet connection. Neither blocks the other.
Phase 3 — settle at the end
Running tally, refunds, top-ups. Only worth building if Phase 1 shows that misdeclared tiers actually cost meaningful money. Until then, quietly absorbing the difference is far cheaper than the engineering.
Phase 4 — hand over to the community
Transfer the adjustable settings to community control. The permanent core needs no handover, because it was never anyone's to change.
9 · Risks worth stating plainly
Glossary
| ADA | The currency of the Cardano blockchain |
| Aiken | The programming language used to write Cardano smart contracts |
| Blockchain | A shared public record that cannot be quietly altered |
| CID | The short reference code for a file stored on IPFS |
| DAO | An organisation run by its members voting directly, rather than by an owner or board |
| Datum | A small label of information attached to a chunk of blockchain money |
| Gas fee | The network's own charge for recording a transaction — like postage |
| IPFS | A shared filing system for storing proposal text and images off the blockchain |
| Merkle root | A short fingerprint summarising a long list, allowing proof of membership |
| Oracle | A service publishing outside information (like exchange rates) onto the blockchain |
| PFF | Perpetual Founder Fee — the founder's permanent 10% share |
| Relayer | The organisation's wallet, submitting transactions for users who have none |
| SBT | Soulbound Token — a permanent, non-transferable reputation badge |
| Smart contract | A blockchain program that controls money by fixed, unchangeable rules |
| Stablecoin | A digital currency designed to hold a steady value against the dollar or euro |
| Treasury | The community fund receiving 90% of platform income |
| UTxO | A discrete chunk of blockchain money, like a banknote rather than a bank balance |
| VESPR / WalletConnect | Ways for a phone app to connect to a user's own crypto wallet |