Why Ethereum is the best blockchain for gaming items

Adrien Montfort
Sorare
Published in
7 min readMay 26, 2020

When we first discussed building a decentralized application with my co-founder Nicolas, our shared goal was to build a mainstream product. We knew that the mass market does not care about ideologies, it cares about better products. To be successful, we had to create a product that tells the crypto story for you: with digital scarcity, censorship-resistance, and true ownership by design.

That’s why we started building a game. A game based on the most followed sport in the world: football. A game with digital collectibles that possess utility and value. A game that can be both fun and rewarding for every type of player.

What is Sorare?

Sorare is a global fantasy football game. Just like any fantasy football game, you start by building your dream team and then you compete in tournaments every week. Based on the performance of your players that weekend, your team will score points and you will be ranked on a leaderboard.

There is a unique component that makes us radically different from other fantasy football games: your players in Sorare are officially licensed digital collectibles. Remember those Panini and Topps cards of your favorite basketball player? Well, we are creating unique digital cards of your favorite football player with the Ethereum blockchain.

MJ or CR?

Topps and Panini cards serve mainly as memorabilia. Sorare cards are both useful in-game items to play fantasy football and as memoribilia. If you own a Cristiano Ronaldo card, you can use his card in the weekend fixture. If Cristiano scores two goals that weekend, your card will score strong points. Most importantly, the scarcer your card is, the more value they have in-game which in turn translates to more value in the real world to other managers and collectors.

Ethereum enables a unique gaming experience for Sorare

Ethereum has allowed the creation of new types of virtual assets that can be identified, traced, and unique: non-fungible tokens. These are unlocking opportunities for gamers to become creators, entrepreneurs, and service providers. We’ve built our player cards on top of Ethereum so that our users can benefit from these features:

1. Digital Ownership & Portability: Gamers can truly own in-game assets on the internet for the first time. A skin you buy on Fortnite will always be a digital replica owned by the game publisher. Those assets can not be transferred beyond the gaming environment. A player card on Sorare is digitally unique and it can be yours to trade anywhere, anytime. This unlocks real ownership of game-items..

2. Scarcity: The value of any collectible item, virtual or physical, is partly driven by scarcity. The scarcity (or lack thereof) of a crypto collectible is known by inspecting the NFT contract. In Sorare, different cards have different scarcity, impacting the value of the card.

3. Provenance: We can now have the complete digital history of the asset from its origins. It’s particularly useful for digitizing memorabilia. The sports card collection market is worth $5.4 billion in the US alone. If you look at one of Jonathan David’s card transaction history (a young promising Canadian striker), you will see his trade history. Yes it’s our user interface that shares the information you but you can verify this information on Ethereum’s chain directly.

4. Peripheral markets: In-game items such as Sorare’s cards are represented as tokens on Ethereum. They can be leveraged in new third-party applications. Any developer could create third party games or applications, hence increasing the utility value of Sorare cards.

We are delighted to see already many teams building those:

Why did we choose Ethereum for Sorare’s gaming items?

Ethereum is the go-to platform for digital tokens.

We looked at different options and Ethereum was still the preferred option. It’s the most secure, resilient and interoperable blockchain with no platform risk. We want our assets to be the base layer of a global ecosystem of games. It can only work if the blockchain we use provides the means to build such an ecosystem: clear standards, developer tools, a variety of services and resources to learn.

Ethereum has all of it thanks to its vibrant and dedicated community of buidlers. No other public blockchain could compete with Ethereum on that aspect.

ETH is money

Sorare is ICO free. We launched after the 2017 ICO craze. We decided to go for Venture Capital financing rather than ICO money. The main reason we did not create an ERC20 token was for our users. It never made sense for the game we’re building: it had no potential utility except maybe as a payment token. We couldn’t justify the burden on user experience: forcing our managers to first buy our tokens before being able to bid on a card.

The good news is that ETH is already perfect for that. It’s easily available from all exchanges, it can be stored on a wide variety of wallets and it has a track record of being money. ETH is our in-game currency. Guess what? It works.

Layer 2s are coming soon

We launched Sorare last year on the Loom Plasmachain (it was later renamed Basechain). Building on Loom was seamless thanks to its tooling compatibility with Ethereum. It enabled fast and gas-free transactions for our users when they were buying, selling or exchanging cards. But Loom never reached anywhere near the maturity level that is required for mass adoption and they ended up abandoning the project earlier this year. As we say “Once bitten, twice shy”. Maturity was a big driver in our decision and we could not find a Layer 2 project with a big enough track record and adoption.

There are still some projects we are excited about:

  • Skale, who should be launching pretty soon
  • Starkware who started working with Gods Unchained using ZK Rollups

Most importantly, we intend to participate in the upcoming phases of Ethereum 2.0!

If you like the sound of Sorare, you should check out our documentation to learn about how you could build on top of Sorare’s cards. Here’s our technical documentation.

About our non-fungible token:

Our ERC721 contract is:

https://etherscan.io/address/0x629A673A8242c2AC4B7B8C5D8735fbeac21A6205

The anatomy of a Card in the contract is:

  • playerId: The ID of the football Player
  • metadata: The immutable metadata hash for each card.The IPFS address can be computed like so base58(‘1220’ + hex(value)). This includes an IPFS hash of the Card picture.
  • season: The football season represented by the first year of the season: Season 2018/2019 is 2018.
  • serialNumber: the card serial number (from 1 to 100 for rare cards)
  • scarcity: the card scarcity (0 for unique, 1 for super rare, 2 for rare)
  • clubId: The id of the football club

The TokenId is computed from a hash of: (playerId,season,uint256(scarcity),serialNumber)

The anatomy of a Player identified by his playerId is:

  • name: The full name of the actual football player
  • yearOfBirth
  • monthOfBirth
  • dayOfBirth

The playerId is computed from a hash of those fields.

The anatomy of a Club identified by his clubId is:

  • name: The name of the football club
  • country: The country of club or national team
  • city: The city of the club (blank for national teams)
  • yearFounded: The year the club was founded (blank for national teams)

You can use all the regular ERC721 functions on this contract plus:

  • getCard
  • getClub
  • getPlayer

The tokenURI of each card redirects to our API that returns JSON formatted metadata that follows the OpenSea standard.

For instance:

https://api.sorare.com/api/v1/cards/72921075348991028659452949870017823114854421024517557116224779063333577832497

In practice Players and Clubs are created in a separate contract: https://etherscan.io/address/0x9844956F1d45996aA8d322f3483Cc58abe34d449

This is where you will be able to listen to Club and Player creations events.

The Cards are also stored in their own contract:

https://etherscan.io/address/0xd2C98d651A02e34C279eD470A1447a36aa0423ee

About our Exchange Contract:

Our Exchange contract is:

https://etherscan.io/address/0xaeb960ed44c8a4ce848c50ef451f472a503456b2

We allow our users to buy, bid, and sell cards in a gasless fashion. This is why all trades are centralized (we store signatures) and a transaction is only sent to the blockchain for settlement (when all parties have agreed and we have gathered all the needed signatures).

This means we need a way to escrow ETH in advance (to prevent users from making bids that cannot be paid). The Exchange contract escrows ETH on behalf of our managers. For a manager to withdraw from the Exchange contract he will either need:

- An approval from Sorare who will check that there are no pending payment intent

- To wait long enough after having decided to leave (so that Sorare can cancel all of his payment intents)

The Exchange contract uses the escrowed money to settle deals. It also needs to be an approvedForAll operator of tokens that are to be settled. Events from the Bank contract can be listened to, to get access to all deals that are settled on the Sorare website with the amount that was paid.

About our API:

Our GraphQL API is public and is open to everyone. It gives access to Cards, players, clubs, leagues, auctions, offers, tournaments, etc.

You can browse it here: https://api.sorare.com/graphql/playground

Play Sorare today and join the community on:

🔥 Discord: https://discord.com/invite/TSjtHaM
📭 Telegram: https://t.me/SorareFC
✨ Twitter: https://twitter.com/SorareHQ

--

--