Angel Battles Historic Wrapper

Angel Battles Historical NFTs

Angel Battles is a limited-supply,  pre-ERC721 game with the first contract deployed on the Ethereum mainnet in block 4949586 (Jan-22-2018 01:42:39 AM +UTC).

The game was one of the most complex and functional games of its time, spanning 3 NFT data contracts and dozens of gameplay contracts. Features included:

              Three Token TypesAngel Cards were the base card and had one of 6 aura colors. Angels were sold and earned experience by winning arena battles. Pet Cards were not sold, but could be captured in battle and bred to create stronger types. For instance, a Falcon + a Unicorn could create a Pegasus. Accessory Cards were sold and helped in other parts of the game – for instance a cricket could increase your chance of luring pets of the lizard line.

              Global Leaderboard – Players around the world faced off with their angel/pet/accessory teams to try to climb their way to one of the top 20 worldwide ranks. The game featured both ‘player vs computer’ and ‘player vs player’ mechanics.

              Sponsored Leaderboards – Angel Battles was one of the first true play to earn games where players could earn Ethereum – any company could trustlessly open a sponsored leaderboard and display their logo on a 4 team board that was open for 1 week. The teams on the board when it closed received a % of the prize money and special medal NFTs.

              In Game NFT Burn Mechanic – Players could choose to ‘retire’ 6 of their pets in order to receive a higher level pet.

              Aura Training – Players could train their pets with angels of compatible auras to increase the aura power of their pets during future battles.

              Dynamic Battle Cooldowns – In order to increase competitiveness, the battle contract stored the experience level of the strongest angel – so that newer players could battle and earn experience points more frequently.

Angel Battles helped to onboard many new users to the Ethereum ecosystem as devs hosted IRL parties where users received free ETH and cards, help setting up a wallet, and guidance on how to best play the game. Angel Battles was in the top 5 for all Ethereum games in DAU on Dappradar, when gas was around 0.1 GWEI, but the complexity of the game meant that there was a steep drop off in users once gas prices increased. 

Angel Battles predates full adoption of the ERC721 standard, and thus our game created our own customized implementation of the ideas behind Non-Fungible Tokens. For instance, while ERC 721 uses ‘approvals’ for tokens, our game implemented a parallel mechanism with ‘token locks’.

Cards were bought and sold on the Wyvern Exchange, which allowed trading any Ethereum asset (even smart contracts!). Wyvern’s open source contracts later became the basis for OpenSea, but OpenSea supported trading only of ERC721 NFTs.

During the last 4.5 years, work has been progressing on the completely redesigned Angel Battles 2 (full guide), which is deployed on Polygon to take advantage of low gas fees. In the new game, 100% of the Matic used for purchasing cards goes to the Gitcoin Matching Fund Multisig.

We have also created an ERC721 wrapper contract for the historical NFTs to allow minting and trading. Prices and supply have in general been reduced from 2018 levels. Tokens now have a max total supply of 7525 total cards (2000 Angels, 1125 Accessories, 4400 pets).

For instance, Gabriel (card id #15) has a maximum supply of 45. There were 15 minted in 2018, which means 30 can be minted during the historical relaunch.

How can collectors be assured of the scarcity of supply from the 2018 contracts?

All 3 contracts are open source, verified, and follow the same general pattern.

AngelCardData - https://etherscan.io/address/0x6d2e76213615925c5fc436565b5ee788ee0e86dc#readContract

PetCardDatahttps://etherscan.io/address/0xb340686da996b8b3d486b4d27e38e38500a9e926#readContract

AccessoryDatahttps://etherscan.io/address/0x466c44812835f57b736ef9F63582b8a6693A14D0#readContract

There is no minting directly from the contract. All minting of new supply happens by calling the setAngel(), setPet(), and setAccessory() functions. These functions can only be called from a special list of addresses that have the ‘seraphim’ role. On each contract, you can call the totalSeraphims() function to get the number of addresses that hold the ‘seraphim’ role. You can also call seraphims(address) which returns true for addresses that are seraphim and false for addresses that are not.

Seraphim can be added and removed only by the admin key, which is called the creatorAddress. The creator address is the address that deployed the contract**, angelbattles.eth** (https://etherscan.io/address/0x20886ba6fd8731ed974ba00108f043fc9006e1f8 )

Supply is managed through the wrapper contract. This contract has the seraphim role on the angel, pet, and accessory contracts.

Once the wrapper contract is successfully deployed and tested, the removeCreator() function will be called on AngelCardData and AccessoryData. This will ‘burn’ the admin key (set it to the 0 address) and ensure that no other seraphim can ever be added. There is no admin key burn function on the Pets contract.

Wrapper Contract Details

The wrapper contract is open source and verified at: https://etherscan.io/address/0x1d9711c7c67ace347ff45661708aeac4bbb2aed3

There is no token uri server. All images are stored on IPFS and all other metadata is returned directly from the contract as a base64 encoded json object.  

The admin key on the wrapper cannot take NFTs, destroy NFTs, or change supply. It can only change the default gateway (website serving the IFPS images). This is to remove any certain public IPFS gateway as a single point of failure.

Angel Battles 2 Rewards For Historical NFT Owners

While historical collectors main purpose may be securing ownership of early digital assets, they will also receive bonus cards in order to play the Angel Battles 2 game.

Owners of cards purchased in 2018/2019 will receive their exact cards (experience, aura power, etc.) airdropped in Angel Battles 2 along with 5% of Halo token supply, according to a snapshot taken on  8/27/2022. (Free to mint cards are not airdropped)

Owners of newly minted wrapped historical cards will also receive exact copies of their cards airdropped at dev expense on Polygon, subject to the following exceptions:

The snapshot for these historic cards will be taken on 12/9/2022 around 1800 GMT.

How To Mint / Wrap

Collectors can visit www.angelbattles.com/historic where they can mint new cards, manage existing cards, see their sets, see the final state of the historic leaderboard, etc.

On the home page, users can see the existing and max supply of each token. These numbers include both wrapped and unwrapped cards. On the Manage Team section, owners of historical cards can choose to wrap them into the 721 wrapper for trading on OpenSea or other marketplaces. Pets can be wrapped directly, while angels and accessories must be ‘unlocked’ prior to wrapping.

When a historic card is wrapped, the wrapper contract itself takes ownership of the historic (pre-721) NFT. When a card is unwrapped, the wrapped (721) version is burned, and the original historic card is transferred back to the owner. Owners can wrap and unwrap their cards as often as they wish.

When new cards are minted from the wrapper, the wrapped (721) and historic (pre-721) versions are both created, with the historic card owned by the wrapper contract. Note: Wrapping and unwrapping cards can cause ‘duplicate’ cards to appear on OpenSea – there is only one card not owned by the 0 address, however.

2019 Destructive Wrapper

There was a 721 Wrapper created in 2019 which allowed minting new cards disconnected from the historical ones.

The wrapper and associated contracts allowed historic card owners to ‘convert’ their cards to 721, but they had to burn them in the process.

Fortunately, only 110 tokens were ever issued from this contract, and only a handful were from burning.  Devs have airdropped identical historic cards to anyone who burned their previous historic cards or purchased cards from this wrapper.

The wrapper will receive no support going forward, has issues with metadata on Opensea (due to limits on Pinata’s free gateway) and should not be used.

Angel Battles 2 Game

The Angel Battles 2 game has implemented several design decisions to maximize decentralization, robustness, and sustainability:

              Game Parameter Governance Fully On Chain – Turning any of the game parameters can only be done by voting from the Halo Token holders and cannot be vetoed by devs.

              100% of Halo tokens streamed to community – Angel Battles 2 was made by volunteers and has no investors. Halo tokens were airdropped to previous players, game contracts, and holders of various NFTs. Tokens are streamed over 5 years to promote organic growth.

              Code and Images 100% Open Source  - All images are CC0 licensed and all code is released under the MIT license.

100% of New Revenues to Gitcoin – All Matic used to buy cards in the new version can be sent to the Gitcoin matching multisig at any time by any player.

              No Servers Needed – There are no Token URI servers or other gameplay servers. The front end is hosted on IPFS, open source on github, and linked from AngelBattles.eth (coming soon)

              Randomness Protected – The most powerful cards are protected through a commit / reveal scheme with randomness from Chainlink VRF to protect against MEV extracting flashbots bundles and other attacks.

Subscribe to angelbattles.eth
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.