Club Fundraising: Difference between revisions
Andrew.gore (talk | contribs) No edit summary |
Andrew.gore (talk | contribs) |
||
| Line 114: | Line 114: | ||
* '''No contributors''': If nobody contributes to a fundraise event, it fails. No influence is created and no money changes hands. | * '''No contributors''': If nobody contributes to a fundraise event, it fails. No influence is created and no money changes hands. | ||
* '''Minimum raise not met''': Even if many users contribute, if the total SVC that would actually be spent (after rounding) falls below the minimum raise, the event fails. All SVC is refunded. | * '''Minimum raise not met''': Even if many users contribute, if the total SVC that would actually be spent (after rounding) falls below the minimum raise, the event fails. All SVC is refunded. | ||
* '''Individual rounding''': Because influence is bought in whole units at a rounded-down price, it is possible that less influence is sold than was available. E.g. with 1 influence available and a price of 3 SVC/influence, three contributors each putting in 1 SVC would each be able to buy 0 influence (1 / 3 = 0), so the raise would fail despite total bids exceeding the minimum. | * '''Individual rounding''': Because influence is bought in whole units at a rounded-down price, it is possible that less influence is sold than was available. E.g. with 1 influence available and a price of 3 SVC/influence, three contributors each putting in 1 SVC would each be able to buy 0 influence (1 / 3 = 0), so the raise would fail despite total bids exceeding the minimum. | ||
Latest revision as of 12:16, 4 August 2026
Influence Fundraising is a mechanism in Soccerverse that allows a club to issue new influence and sell it to users in exchange for SVC (Soccerverse Coin). The SVC raised goes directly into the club's balance, strengthening its finances. In return, contributors receive the newly-created influence, which gives them voting power and a claim on future income payouts.
Fundraising is exclusive to club influence — player influence cannot be diluted.
Why Fundraising Exists
Fundraising serves two main purposes:
- Rescuing clubs in debt. At the end of each season, clubs with a negative balance automatically get a fundraise event started immediately (no vote needed). This creates new influence for SVC, injecting cash into the club so it can recover.
- Letting influencers raise SVC. Even healthy clubs can benefit from a fundraise — influencers can propose and vote for a fundraise to raise funds for transfers, wages, or other expenses.
The Lifecycle of a Fundraise
1. Triggering
Fundraising can be triggered in one of two ways.
A. End-of-Season (Automatic)
At the end of each season, every club in debt automatically gets a fundraise proposal or event:
- If the club is in debt, the fundraise bypasses voting entirely — a fundraise event is created immediately and goes straight to the contribution phase.
The amount of new influence to be created is calculated as a percentage (basis points) of the club's current circulating influence, currently 5% (configured by the seasonend-dilution-bp parameter). The minimum raise is zero.
B. User-Proposed (Influencer Initiative)
Any influencer can propose a fundraise if they meet two requirements:
- They must own at least a certain relative percentage of all circulating club influence, currently 5% (configured by the
dilution-min-bpsparameter). - Enough time must have passed since the last user-proposed fundraise vote for that club, currently 70 days (configured by
min-seconds-between-dilution-votes).
The proposing influencer specifies:
n: How much new influence to create, between 1 and a maximum, which is a percentage of circulating influence, currently 20% (configured bydilution-max-bps).mr(minimum raise): The minimum amount of SVC that must be raised. If the total contributions fall short of this, the fundraise fails and all SVC is refunded.
2. Proposal Phase (for non-debt clubs)
When a user proposes a fundraise, it goes through a governance proposal lifecycle:
- Upcoming phase: The proposal is created but voting hasn't started yet. During this time, the proposer (or any other eligible influencer) can amend the proposal by adding more fundraise options (different
nandmrcombinations). The upcoming phase lasts for 7 days (configured bydilution-upcoming-seconds). - Voting phase: After the upcoming phase, the proposal enters voting for 7 days (configured by
dilution-voting-seconds). Influencers vote with their existing influence (1 influence = 1 vote). Once voting ends, the winning option is executed. - The ballot: Every fundraise proposal has a "do nothing" option (unless created by an end-of-season proposal). If the winning option is "do nothing", no fundraise event is created.
3. The Fundraise Event (Contribution Phase)
Once a fundraise proposal passes (or is triggered directly for clubs in debt), a fundraise event is created and becomes active. It has:
- A number of new influence to be created.
- A minimum raise amount (0 for end-of-season fundraises; set by the proposer for user-proposed ones).
- An end time, calculated as
current_time + dilution-seconds. The end time is currently set at 28 days (configured bydilution-seconds).
During this phase, any user can contribute SVC to the event. They send a move with:
<syntaxhighlight lang="json"> {
"dc": {
"a": <amount>,
"e": <event_id>
}
} </syntaxhighlight>
Key points about contributing:
- Contributions are not bids — you don't specify a price per influence. The price is determined after the event ends, based on total SVC raised divided by the amount of influence.
- Users can top up their contribution at any time while the event is active. Multiple contributions from the same user are combined into one entry.
- The contributed SVC is reserved (locked) from the user's balance immediately.
- The club funding is multiplied by the
dilution-coins-multiplier-bpsparameter. At the current value of 1,000,000 basis points, each 1 SVC actually spent by contributors credits 100 SVC to the club. The minimum raise is checked after applying this multiplier.
4. Settlement (After the End Time)
When the block time reaches or passes the event's end_time, the event is finalised:
- Effective price is calculated:
total_contributions / number_of_shares, rounded down to whole SVC units. - Success check: The event succeeds if:
- At least one user contributed, and
multiplier × shares_sold × price / 10,000 ≥ minimum_raise(currently equivalent to100 × shares_sold × price ≥ minimum_raise)
- If the event fails, all SVC is refunded and no influence is created.
- Influence distribution (if successful): Contributors are processed in order of largest contribution first, then earliest contribution as a tie-breaker. Each contributor buys as many whole influence as their contribution allows at the effective price:
shares_bought = min(remaining_shares, contribution / price)SVC_spent = shares_bought × pricerefund = contribution - SVC_spent
- The refund is not taken from the user's balance — only the actually spent SVC is deducted.
- Club gets the money: Contributors spend the unmultiplied amount after refunds, while the club receives that amount multiplied by
dilution-coins-multiplier-bps / 10,000— currently 100×. The resulting income is visible on the club's balance sheet asdilution_income. - Contributors get influence: New influence is minted and credited to contributors' balances. This is new influence — it increases the total supply above the base supply of 1,000,000.
Key Parameters
| Parameter | Description | Current value |
|---|---|---|
dilutions-enabled |
Master switch (0 = off, 1 = on) | 1 |
dilution-min-bps |
Minimum influence holding (in basis points) required to propose a fundraise | 500 |
dilution-max-bps |
Maximum new influence as basis points of circulating supply | 2000 |
dilution-coins-multiplier-bps |
Multiplier applied to contributors' actually spent SVC when crediting the club and checking the minimum raise | 1,000,000 (100×) |
dilution-upcoming-seconds |
Duration of the "upcoming" (amendable) phase | 7 * days |
dilution-voting-seconds |
Duration of the voting phase | 7 * days |
dilution-seconds |
Duration of the contribution window | 28 * days |
min-seconds-between-dilution-votes |
Cooldown between user-proposed fundraise votes per club | 70 * days |
seasonend-dilution-bp |
New influence to create at season end, as basis points of circulating | 500 |
Edge Cases and Important Behaviours
- No contributors: If nobody contributes to a fundraise event, it fails. No influence is created and no money changes hands.
- Minimum raise not met: Even if many users contribute, if the total SVC that would actually be spent (after rounding) falls below the minimum raise, the event fails. All SVC is refunded.
- Individual rounding: Because influence is bought in whole units at a rounded-down price, it is possible that less influence is sold than was available. E.g. with 1 influence available and a price of 3 SVC/influence, three contributors each putting in 1 SVC would each be able to buy 0 influence (1 / 3 = 0), so the raise would fail despite total bids exceeding the minimum.
- Beyond base supply: Fundraising can push the max supply of influence above the base supply of 1,000,000. This is intentional — fundraising is how supply grows.
- Voting power for proposals: The quorum for proposing fundraises is always based on base supply (1,000,000) if fewer influence than that is minted. This prevents a small influencer from proposing a fundraise when very little influence is in circulation.
- End-of-season proposals for clubs in debt start immediately: Unlike user-proposed ones, they have no "upcoming" phase and go straight to voting (
start_time = now + 1 second). They also cannot be amended. - Balance sheet entries: For the club, the fundraise creates a
dilution_incomeentry. For the user, it creates a fundraise entry under their balance sheet, and a fundraise entry in the influence transaction history.
User-Facing Move Summary
| Action | Move JSON |
|---|---|
| Propose fundraise | {"p": {"s": {"club": <id>}, "dilute": {"n": <num>, "mr": <min_raise>}}}
|
| Contribute to event | {"dc": {"a": <amount>, "e": <event_id>}}
|
| Vote on proposal | {"v": {"p": <proposal_id>, "o": <option_id>}}
|
Summary
Influence fundraising is a governance-based mechanism for clubs to raise capital by issuing new influence. It operates in two modes: automatic end-of-season (to prevent clubs from being stuck in debt) and user-proposed (for active influencer-driven fundraising). The process is: propose → vote → contribute → settle. At settlement, an effective price per influence is determined by dividing total contributions by the number of influence; contributors receive influence in proportion to their contribution (largest first); any unspent SVC is refunded; and the club receives the proceeds.