For Developers

Build on MGi Infrastructure

Your game inherits provable fairness, execution guarantees, and public verification. Focus on the experience — we handle the trust.

Getting Started

1

Define Your Game

Create your game mechanics in an OpenRNG schema. Define rules, variants, and probability models.

2

Register Your Variant

Submit your variant to the OpenRNG schema registry. Get a unique identifier for your game.

3

Build Your Client

Implement your game client with any game engine or framework. Connect to Gamcore for execution.

4

Integrate Identity

Use Gamdock for player sessions. One wallet connection, frictionless gameplay.

5

Go Live

Your game automatically feeds Gamscan for transparency. Optional OpenBankroll for house capital.

SDKs & Libraries

@mgi/openrng

Core randomness and game mechanics library. Shuffle, draw, seed management, proofs.

TypeScriptRust
@mgi/gamdock

Player identity and session management. Wallet connection, ephemeral sessions, signing.

TypeScript
@mgi/gamcore-client

Game client connector. WebSocket real-time, state management, action submission.

TypeScript
@mgi/gamscan-sdk

Gamscan API client. Fetch rounds, replay verification, player history.

TypeScript

Supported Chains

SolanaLive

Beta deployment, fast commits, low fees

Ethereumv1

Mainnet proof anchoring, maximum security

Arbitrumv1

L2 scaling, low cost operations

Basev1

Coinbase ecosystem, growing adoption

Same game on Solana can be verified with same logic as Ethereum. Cross-chain analytics and fairness audits.

Quick Example

import { Gamdock } from '@mgi/gamdock';
import { OpenRNG, loadVariant, createSeed, shuffle } from '@mgi/openrng';
import { GamcoreClient } from '@mgi/gamcore-client';

// 1. Initialize player session
const gamdock = new Gamdock({ appId: 'your-app-id' });
const session = await gamdock.connect(walletAdapter);

// 2. Connect to game execution
const gamcore = new GamcoreClient({ 
  endpoint: 'wss://gamcore.mgi.io',
  session 
});

// 3. Join a table
await gamcore.joinTable('blackjack-american', tableId);

// 4. Place a bet (Gamdock handles signing)
await gamcore.placeBet({ amount: 100 });

// 5. Receive real-time game updates
gamcore.on('state', (state) => {
  renderGame(state);
});

// 6. Player actions
await gamcore.action('hit');
await gamcore.action('stand');

// Round transcript automatically logged to Gamscan
// Proofs automatically anchored via OpenRNG

Integration Patterns

Full Stack

Use all five solutions for complete infrastructure. Best for new games that want maximum trust guarantees.

GamdockGamcoreOpenRNGGamscanOpenBankroll

Execution Only

Use Gamcore + OpenRNG for authoritative execution. Bring your own identity and capital systems.

GamcoreOpenRNG

Randomness Only

Use OpenRNG standalone for provable randomness. Any game, any platform, any chain.

OpenRNG

Transparency Layer

Add Gamscan to existing games for public verification. Retrofit trust to legacy systems.

GamscanOpenRNG

Ready to build?

Explore the ecosystem or get in touch for integration support.