Skip to content

Unity SDK for Casper Network blockchain - Account management, balance queries, and RPC integration

License

Notifications You must be signed in to change notification settings

SamDreamsMaker/Casper-Network-Unity-SDK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

55 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ Casper Network Unity SDK

Unity Casper License .NET

A modern, production-ready Unity SDK for integrating with the Casper blockchain network.

Features โ€ข Installation โ€ข Quick Start โ€ข Documentation โ€ข Examples


โœจ Features

Feature Description
๐Ÿ” Real Cryptography ED25519 & SECP256K1 with BouncyCastle
๐Ÿ’ธ CSPR Transfers Send CSPR tokens with one method call
๐Ÿ“œ Smart Contracts Deploy WASM and call contract methods
๐ŸŽจ NFT Support CEP-78 standard: mint, transfer, burn
๐Ÿ“ก Event Streaming Real-time SSE for deploy/block events
๐Ÿ”’ Secure Storage AES-256 encrypted key storage
๐Ÿ‘› Multi-Wallet Manage multiple accounts
๐Ÿ”— Blockchain Integration Connect to Mainnet or Testnet
๐Ÿ“„ Key Import/Export PEM format for Casper Wallet/Signer
๐ŸŽฎ Unity Optimized Async/await, main thread handling

๐Ÿ“ฆ Installation

Option 1: Unity Package Manager (Recommended)

  1. Open Window โ†’ Package Manager
  2. Click + โ†’ Add package from git URL
  3. Enter:
https://github.com/SamDreamsMaker/com.caspernetwork.sdk.git

Option 2: From Source Repo

For development or to access sample scenes:

https://github.com/SamDreamsMaker/Casper-Network-Unity-SDK.git?path=Assets/CasperSDK

Dependencies

The SDK includes:

  • โœ… BouncyCastle.Crypto.dll (cryptography - included in Plugins/)
  • โœ… Newtonsoft.Json (auto-installed via UPM)

๐Ÿš€ Quick Start

Demo Scene (Easiest Way)

  1. Package Manager โ†’ Casper Network SDK โ†’ Samples โ†’ Import "Casper Wallet Demo"
  2. Open the imported CasperWalletDemo scene from Assets/Samples/
  3. Play the scene
  4. Click Import Keys to load your Casper Wallet PEM file
  5. Use the UI buttons for all operations

Basic Usage

using CasperSDK.Utilities.Cryptography;
using CasperSDK.Services.Transfer;

// Generate a new key pair
var keyPair = CasperKeyGenerator.GenerateED25519();
Debug.Log($"Public Key: {keyPair.PublicKeyHex}");
Debug.Log($"Account Hash: {keyPair.AccountHash}");

// Transfer CSPR
var transferService = new TransferService(networkClient, config);
var result = await transferService.TransferAsync(
    senderKeyPair,
    recipientPublicKey,
    TransferService.CsprToMotes(10m) // 10 CSPR
);

Import Keys from Casper Wallet

// Import PEM file exported from Casper Wallet
var keyPair = KeyExporter.ImportFromPemFile("path/to/secret_key.pem");

// Export for Casper Wallet
KeyExporter.ExportToPemFiles(keyPair, "output/path");

Deploy Smart Contract

var contractService = new ContractService(networkClient, config);

// Deploy WASM
var result = await contractService.DeployContractAsync(
    wasmBytes,
    args,
    senderKeyPair,
    "50000000000" // 50 CSPR payment
);

// Call contract method
var callResult = await contractService.CallContractByHashAsync(
    contractHash,
    "transfer",
    runtimeArgs,
    senderKeyPair
);

๐Ÿ“š Documentation

Services Overview

Service Description
AccountService Balance queries, key generation, account import
TransferService High-level CSPR transfers
ContractService WASM deployment, contract calls, state queries
CEP78Service NFT mint, transfer, burn, metadata queries
EventStreamingService Real-time SSE events (deploys, blocks)
SecureKeyStorage AES-256 encrypted key storage
WalletManager Multi-account management
BlockService Block queries by hash/height
NetworkInfoService Node status, peers, chainspec

Cryptography

Class Purpose
CasperKeyGenerator Generate ED25519/SECP256K1 keys
KeyExporter PEM import/export
DeploySigner Sign deploys with private key
CLValueBuilder Build runtime arguments
CryptoHelper Blake2b, hex conversion, validation

Configuration

Create via Window โ†’ Casper SDK โ†’ Settings or:

Right-click in Project โ†’ Create โ†’ CasperSDK โ†’ Network Config
Property Description Default
NetworkType Mainnet, Testnet, Custom Testnet
RpcUrl JSON-RPC endpoint testnet node
EnableLogging Debug logs true

๐ŸŽฏ Examples

CasperWalletDemo UI

Button Action
Generate Account Create new ED25519 key pair
Import Keys Load PEM from Documents/CasperKeys
Refresh Balance Query CSPR balance
Copy Address Copy public key to clipboard
Export Keys Save PEM to Documents/CasperKeys
Open Faucet Get free testnet CSPR
Send Transaction Transfer CSPR to recipient

Workflow for Testing

  1. Casper Wallet โ†’ Settings โ†’ Download Secret Key โ†’ Save PEM
  2. Copy PEM to Documents/CasperKeys/
  3. Package Manager โ†’ Casper Network SDK โ†’ Samples โ†’ Import
  4. Open the CasperWalletDemo scene
  5. Play โ†’ Click Import Keys โ†’ Keys loaded
  6. Refresh Balance โ†’ See your CSPR
  7. Enter recipient + amount โ†’ Send Transaction

๐Ÿ—‚๏ธ Project Structure

Assets/CasperSDK/
โ”œโ”€โ”€ Editor/                 # Settings window, DemoSceneCreator
โ”œโ”€โ”€ Plugins/                # BouncyCastle.Crypto.dll
โ”œโ”€โ”€ Runtime/
โ”‚   โ”œโ”€โ”€ Core/               # Configuration, Interfaces
โ”‚   โ”œโ”€โ”€ Models/             # Deploy, KeyPair, CLValue
โ”‚   โ”œโ”€โ”€ Network/            # RPC client
โ”‚   โ”œโ”€โ”€ Services/
โ”‚   โ”‚   โ”œโ”€โ”€ Account/        # Balance, keys
โ”‚   โ”‚   โ”œโ”€โ”€ Contract/       # WASM, calls
โ”‚   โ”‚   โ”œโ”€โ”€ Deploy/         # Builder, Signer, CLValueBuilder
โ”‚   โ”‚   โ”œโ”€โ”€ Events/         # SSE streaming
โ”‚   โ”‚   โ”œโ”€โ”€ NFT/            # CEP-78 support
โ”‚   โ”‚   โ”œโ”€โ”€ Storage/        # Secure key storage
โ”‚   โ”‚   โ”œโ”€โ”€ Transfer/       # CSPR transfers
โ”‚   โ”‚   โ””โ”€โ”€ Wallet/         # Multi-account
โ”‚   โ”œโ”€โ”€ Utilities/
โ”‚   โ”‚   โ””โ”€โ”€ Cryptography/   # Keys, hashing, PEM import/export
โ”‚   โ””โ”€โ”€ Examples/           # TestnetDemo, BasicSDKExample
โ”œโ”€โ”€ Samples/                # CasperWalletDemo scene & controller (dev only)
โ””โ”€โ”€ Tests/                  # Unit tests (excluded from UPM)

๐Ÿ”ง Technical Details

Cryptography (BouncyCastle)

  • ED25519: Key generation, signing, verification
  • SECP256K1: Key generation, ECDSA signing
  • Blake2b-256: Deploy hash, account hash
  • PEM: Import/export for wallets

Transaction Flow

  1. Build โ†’ DeployBuilder with fluent API
  2. Hash โ†’ Blake2b-256 body + header hash
  3. Sign โ†’ ED25519 or SECP256K1 signature
  4. Submit โ†’ account_put_deploy RPC

๐Ÿ“„ License

MIT License - see LICENSE


๐Ÿค Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push (git push origin feature/amazing)
  5. Open Pull Request

๐Ÿ“ž Support


Built with โค๏ธ for the Casper ecosystem

About

Unity SDK for Casper Network blockchain - Account management, balance queries, and RPC integration

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published