ELIXIRR

INTRODUCTION

1.1 Inspiration

The gaming industry is currently booming, especially on the crypto space. However, I saw how the industry demanded more scalability and accessibility for crypto games with Satoshis Games platform - a web-based platform to play bitcoin games.

We had such a huge demand for indie game developers to upload their lightning games to Satoshis Games platform. However, due to the architectural design of Satoshis Games, we had compatibility issues with games that were not web-based. Then we needed to find a potential solution to supply this high demand for a standard to unify all different crypto games with SDK tools for game developers. Wop! Wop! This looks similar to App Mining for dapps, right?

1.2 Problem

The current situation for distributing & publishing crypto games is fragile chaos. There are only 2 options:

  • Individual platform. Game developers have to research, design and develop their distributing platform with crypto utils tools as well as their game to maximise their game experience + extend the crypto functionalities. Making it extremely hard in terms of resources cost and interoperability issues
  • Use existing no-crypto platforms. Game developers publish and distribute their games on unfriendly crypto platforms such as steam, uplay or discord. Game developers would not be able to distribute their games using bitcoin to process payments. When in-game assets are managed using crypto or other currency that is not the steam, uplay or discord balance the game is violating the terms and conditions. Thus, putting the game developers at risk because of the lack of an existing unified standard to distribute and publish blockchain games with SDKs, crypto accessibility utils tools and crypto-friendly

1.3 Solution

Developing a gaming standard to develop, distribute bitcoin games, run crowdfunding campaigns, sell in-game contents in a marketplace and implement an SDK to integrate instant micro-transaction for games using the lightning network. The name of this platform is Elixir. Elixir will count with an API for processing payments in Bitcoin. This API will be targeted to game developers so that they could integrate lightning network payments in a non-intrusive way for users and game developers.

1.4 Scope

The gaming platform allows the submission, commercialization and download of games provided by the community. A game page is provided to host the game details such as screenshots, promotional videos, additional information and hardware requirements.

The crowdfunding campaigns and the community marketplace are delivered using BTCPay Server with an easy wrapper to allow no-custodial services.

An API is provided to allow a digital authenticity module based on lightning (LAuth - based on digital signature and PoP) and payment processing module to link point of sales for the commercialization of games. Alternatively, an innovative module for calling smart contracts using an abstract lightning network interface connected to a WEB3 instance is provided to maximise the in-game assets management through the lightning.

Background

Carlos Roldan is the founder at Satoshis Games - company based on creating the next generation of gaming experiences on top of Lightning Network. Our customers were players of Satoshis Games platform, but a new system is being created and specified in this document so game developers and gamers could benefit from Elixir.

Carlos Roldan has identified the problem of the absence of a bitcoin payment systems for games commercialization and publishing since Steam disabled bitcoin payments back in 2018. Therefore this is an opportunity to provide an easy and simple modular (custodial / no-custodial) for game developers and gamers. The system will consist of Elixir SDK for processing Lightning Network payments and Elixir Platform to overcome the current challenges of gaming platform where indie developer are not able to release high-quality games even when their unfinished games attract high attention and process bitcoin payments.

1.5 Assumptions and Constraints

Assumptions

Elixir Platform & Elixir SDK will be available worldwide with no downtime.

3 DESIGN

3.1 Inteteractive UI sketches

Interactive mock-ups available in https://marvelapp.com/91j99b6/

3.2 DATA FLOW DIAGRAMS: ELIXIR PLATFORM

User Requirements

UML Use case diagram

ELIXIR USE-CASE DIAGRAM

Data Flow Diagrams

Game Payment

Game Payment flow-chart diagram

Game submission

Game submission flow-chart

New crowdfunding campaign/store

New crowdfunding campaing/store

New game store product

New game store product

Search game

search game flow-chart

Display/Receive notifications

display/receive notifications

Logical Data Model/Data

Click here to view in full screen

EER-Model

3.3 DATA FLOW DIAGRAMS: ELIXIR SDK

UML Use case diagram

API USE-CASE DIAGRAM

API key - Issue an API key

Issue an API key

API key - Revoke an API key

Revoke API key

API key - Update an API key permission

Update permissions

Payment - Lightning invoice request

Payment Request

Lightning auth - Proof of Payment

Lightning auth flow chart - Digital Signature

Lightning auth - Digital Signature

Lightning auth flow chart - Digital Signature

3.4 Logical Data Model/Data Dictionary

ELIXIR API ER-MODEL

4 Functional Requirements

4.1 ELIXIR PLATFORM

The functional requirements are split into three groups. Each consecutive group inherits all functions from the previous one. The first group is targeted to non-registered users, the second group is targeted to gamers (registered users) and the third group is targeted to publishers (registered users).

Functional Requirements Non-Registered Users

  • FR1-1: The system must allow registration of users through third-party authentication. The protocol used will be OAuth.

  • FR1-2: The system must allow users to search for games in Elixir's store.

  • FR1-3: The system must allow users to access the store and list the games. This list must have filters and pagination. Each game in the list will have the title, a short description, an image and the price.

  • FR1-3.1: The system must allow users to filter games at the store through title, genres and price.

  • FR-4: The system must allow users to visit the page of a game in the store. This page will contain all the information that is kept about the game.

  • FR1-5: The system must allow users to visit the page of a game in the store. This page will contain all the information that is kept about the game.

  • FR1-5.1: The system must allow users to access the market for a given game. The market must show a list of items available for purchase.

  • FR1-5.2: The system must allow users to consult the details of the crowdfunding campaign for a given game.

  • FR1-6: The system must allow authentication of users through the OAuth protocol.

Functional Requirements Gamers (Registered users).

The functional requirements described below assume that the user has been authenticated as described in FR1-6.

  • FR2-7: The system must allow users to buy in-game items through the marketplace.

  • FR2-8: The system must allow users to buy games through the store.

  • FR2-9: The system must allow users to access to the personal game library.

  • FR2-9.1: The system must allow users to view the details of the game purchased, as well as its settings and installation options.

  • FR2-9.2: The system must allow users to add a game using a key.

  • FR2-9.3: The system must allow users to play a game they have previously purchased and installed.

  • FR2-10: The system must allow users to access its profile and view the personal data they provided.

  • FR2-10.1: The system must allow users to modify the personal data they provided.

  • FR2-10.2: The system must allow users to establish payment options for the purchase of games or items. This action will be triggered additionally when trying to perform either of the two mentioned actions.

  • FR2-10.3: The system must allow users to change their passwords. This password will be encrypted. This system may not be used due to authentication by the OAuth protocol.

  • FR2-10.4: The system must be able to connect third-party applications through authentication using OAuth.

  • FR2-10.5: The system must allow the user to manage their notifications as well as subscribe and unsubscribe from them.

  • FR2-11: The system must allow the user to sign up as a game publisher.

Functional Requirements Publishers (Registered users).

The functional requirements described below assume that the user has signed up as publisher as described in FR2-11.

  • FR3-12: The system must allow users to access their dashboard. The dashboard will contain an overview of metrics and other useful information.

  • FR3-12.1: The system must allow users to access their list of games on the market.

  • FR3-12.1.1: The system must allow users to list the available in-game items for a given game they have published.

  • FR3-12.1.1.1: The system must allow users to modify in-game items for a given game they have published.

  • FR3-12.1.1.2: The system must allow users to add in-game items for a given game they have published.

  • FR3-12.2: The system must allow users to access their list of crowdfunding campaigns.

  • FR3-12.2.1: The system must allow users to start a crowdfunding campaign.

  • FR3-12.2.2: The system must allow users to see the details of a crowdfunding campaign they have created.

  • FR3-12.2.2.1: The system must allow users to modify the information of a campaign they have created.

  • FR3-12.3: The system must allow users to see the details of a specific metric.

  • FR3-12.4: The system must allow users to access the repository of games they have published.

  • FR3-12.4.1: The system must allow users to see the details and metrics of a given game they have published.

  • FR3-12.4.1.1: The system must allow users to modify the details of a given game they have published.

  • FR3-12.4.2: The system must allow users to issue a download key for a given game they have published.

  • FR3-12.4.3: The system must allow users to update a game they have published previously.

  • FR3-12.5: The system must allow users to upload a game, publish it and add it to their game repository. On this submission process, the game must be compressed and uploaded to the Elixir storage servers.

  • FR3-12.6: The system must allow users to list the API keys they have issued.

  • FR3-12.6.1: The system must allow users to issue an API key.

  • FR3-12.6.2: The system must allow users to revoke an API key they have issued.

  • FR3-12.6.3: The system must allow users to grant or revoke permissions of a given API key they have issued.

4.2 ELIXIR SDK

Endpoints

1.0 Developers endpoints
  • 1.0 The system shall permit the developer to authenticate via Elixir login.

  • 1.1 The system shall permit the developer to deposit satoshis to their API wallet.

  • 1.2 The system shall permit the developer to manage API keys.

  • 1.3 The system shall permit the developer to create API keys.

  • 1.4 The system shall permit the developer to edit API keys.

  • 1.5 The system shall permit the developer to delete API keys.

  • 1.6 The system shall permit the developer to list API keys.

  • 1.7 The system shall permit the developer to access API keys stats

  • 1.8 The system shall permit the developer to withdraw satoshis.

  • 1.9 The system shall permit the developer to access to wallet stats


2 Games endpoints
  • 2.0 The system shall permit the developer to send satoshis to a user.

  • 2.1 The system shall permit the developer to request satoshis payment from a user.

  • 2.3 The system shall permit the developer to manage satoshis allocated to the game

  • 2.4 The system shall permit the developer to allocate satoshis from their wallet to the game

  • 2.5 The system shall permit the developer to remove satoshis allocated to the game to their wallet

  • 2.6 The system shall permit the developer to access games stats


3 Users endpoints

3.0 The system shall permit users to accept or refuse payment request from the developer

3.1 The system shall permit users to transfer/tip satoshis to another user

3.2 The system shall permit users to tip developers

3.3 The system shall permit users to access their stats (how much satoshis received and spent)

5 SOFTWARE DEVELOPMENT PIPELINE

Software development practise used for the development, continuous integration and deployment of ELIXIR PLATFORM + ELIXIR SDK

Elixir pipeline

Built With

Share this project:
×

Updates