Anyone can create an Alliance, creating an Alliance deploys a new Alliance contract. The creator is compensated for the cost of the transaction with shares in the new alliance. They will also be a Leader in the Alliance (described below).
Alliances can have one of three types of Privacy, which is set when the Alliance is created:
- PRIVATE: only Alliance members can add Stations or funds to the Alliance
- FUNDING: anyone can fund (and get shares in) the Alliance, but only members can add Stations
- STATIONS: anyone can fund or add Stations to the Alliance (and receive shares for it)
When an Alliance is created, the creator also sets the name and token symbol of the Alliance, and how Stations should be valued when they're added to the alliance. They can either set a fixed value, or leave it at "current mint cost".
When adding funds or Stations to an Alliance, the Alliance calculates the value, and assigns them to the person adding the funds/Stations.
Every Alliance contract is an ERC-20 contract, shares in the Alliance are ERC-20 tokens.
The Alliance doesn't account for reinforcement value when adding Stations, because this adds too many layers of complexity.
Alliances have 2 types of members: Leaders and Members.
Leaders can add Members to the Alliance, or promote other Members to be Leaders.
Members can execute Reinforce transactions and Blast confirms on behalf of the Alliance. It doesn't require multiple signatures, so you need to trust the Members of an Alliance not to waste funds Reinforcing the wrong tokens. But it also means actions can be taken in a timely way, at a speed compatible with the Doomsday game.
Stations can't be Abandoned or taken out of the Alliance by Alliance members. Only the final winning token can be Abandoned.
All Members can set an acquisition price, which is how much they would be willing to sell the Alliance for. Anyone can buy out the Alliance at any time by paying the acquisition highest acquisition price set by any member. They immediately gain the ability to withdraw all the tokens from the Alliance.
When the round is over, or the Alliance is acquired, the Alliance is over. Shareholders can cash out of the Alliance, and they receive a share of the Alliance's ETH relative to what % of shares they own. This is true in any of the following situations:
- The Alliance won and got all the spoils (prize money)
- The Alliance received ETH by being acquired by another player
- The Alliance didn't win and wasn't acquired, but contains unused Reinforcement ETH at the end of the round.
Security and Social Vulnerability Considerations
NOTE: This is NOT a trustless Alliance
Alliance members have the freedom to execute Reinforce functions at any time, assuming the Alliance has sufficient funds for it.
Alliance leaders also have the ability to add new Members, or promote Leaders.
This means players are taking a risk in trusting that there are no malicious operators on their team, or just stupid team members, who may use Alliance funds to reinforce Stations in a non-ideal way.
Although the Alliance will prevent adding funds or Stations once the game is over, this doesn't account for the situation when a win for the Alliance is 'inevitable', but not yet technically implied by the state of the game contracts. In this situation, it would be possible for someone to add funds and effectively dilute the eventual winnings of other shareholders. For this reason, it is recommended only to use PRIVATE contribution settings, and only with Members who you trust.
Relevant warnings will be placed on the Alliance website interface, however the onus is upon players to navigate these risks.
The Alliance is designed to operate effectively at the speed that Doomsday: Survivors of the Blast plays out. For example, always being able to Reinforce a Station in the 240 Block Blast window, or obscuring the resources of an Alliance, while properly compensating users who contribute.
Doomsday: Survivors of the Blast takes no responsibility for the actions of any Alliance. For a completely trustless solution, we recommend using a regular Multisig contract.