Club Fundraising
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. It is also a safeguard against "lost keys": if a club becomes unmanaged or locked, the end-of-season fundraise proposal ensures it is not permanently lost.
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 automatically gets a fundraise proposal or event:
- If the club is not in debt, a proposal is created. Influencers vote on whether to accept the fundraise.
- 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 outstanding influence, 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 outstanding club influence (configured by the
dilution-min-bpsparameter, e.g. 5%). - Enough time must have passed since the last user-proposed fundraise vote for that club (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 outstanding influence 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 fordilution-upcoming-seconds. - Voting phase: After the upcoming phase, the proposal enters voting for
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 (option 0 for user proposals, option 1 for end-of-season proposals). If the winning option is "do nothing", no fundraise event is created.
For end-of-season proposals, the default option (option 0) is the fundraise itself, meaning it passes unless influencers actively vote it down.
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.
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.
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
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: The total SVC raised (all contributions minus all refunds) is transferred to the club's balance as a "cash injection" (visible on the club's balance sheet).
- 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 |
|---|---|
dilutions-enabled |
Master switch (0 = off, 1 = on) |
dilution-min-bps |
Minimum influence holding (in basis points) required to propose a fundraise |
dilution-max-bps |
Maximum new influence as basis points of outstanding supply |
dilution-upcoming-seconds |
Duration of the "upcoming" (amendable) phase |
dilution-voting-seconds |
Duration of the voting phase |
dilution-seconds |
Duration of the contribution window |
min-seconds-between-dilution-votes |
Cooldown between user-proposed fundraise votes per club |
seasonend-dilution-bp |
New influence to create at season end, as basis points of outstanding |
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.
- Zero price: If the total contributions are less than the amount of influence, the effective price rounds down to 0. In this case, the single largest (and earliest) contributor gets all the influence for free (but still gets their SVC refunded — effectively free influence).
- 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 total outstanding 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 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
cash_injectionentry. 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.