ApeX ラッフルプログラム

Other

概要

ApeX-Raffle-program は Solana ブロックチェーン上でのラッフル(抽選)運用を目的とした簡易プロジェクトです。本リポジトリでは、オンチェーン側のプログラム(Rust)とオフチェーンの CLI(TypeScript)を組み合わせ、参加者が SOL または PREY トークンでチケットを購入し、当選者が NFT や SPL トークンを受け取れる仕組みを実装しています。開発用には Node と yarn、ts-node を用いるクライアント群が含まれ、テスト用にローカル/指定パスの Solana ウォレットが必要です。

GitHub

リポジトリの統計情報

  • スター数: 4
  • フォーク数: 0
  • ウォッチャー数: 4
  • コミット数: 7
  • ファイル数: 3
  • メインの言語: Rust

主な特徴

  • SOL と PREY トークンでチケット購入が可能なラッフル機能
  • 当選者は NFT や SPL トークンを受け取れる報酬ロジック
  • オンチェーン(Rust)プログラムと TypeScript CLI の二層構成
  • シンプルな開発セットアップ(node, yarn, ts-node)とローカルウォレット依存

技術的なポイント

本プロジェクトは典型的な Solana のラッフル実装アプローチを取っています。オンチェーンの raffle ディレクトリに Rust ベースのプログラムが置かれており、ここで抽選ロジック、受取用アカウント、賞品(NFT/SPL)管理用のプログラムアカウントが定義されている想定です。一方、/cli 側は TypeScript(ts-node 実行)で、ユーザー操作(チケット購入、抽選実行、賞品受領)を行うためのスクリプト群を提供します。SPL トークンの送受信や NFT(メタデータ付きトークン)の転送には solana/web3.js や @solana/spl-token といったクライアントライブラリを用いるのが一般的です。ローカルテストやデプロイにはウォレットキーペアファイル(README では /home/fury/.config/solana/id.json を参照)が必要で、CI やテストネットでの動作確認を行う設計になっています。セキュリティ面では、抽選の公正性(オンチェーン乱数の扱い)や資金移動の権限管理(署名要求/PDA の利用)が重要です。本リポジトリは軽量な PoC に近く、実運用前には乱数ソースの強化、権限分離、エラーハンドリングやイベント履歴の永続化などの追加実装が必要です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • README.md: file
  • raffle: dir

README の抜粋から分かる点:

  • チケット購入は SOL と PREY トークンに対応
  • 依存関係として node と yarn、グローバルな ts-node を使用
  • メインのクライアント処理は /cli/script.ts
  • プログラムアカウント型の定義は /cli/types.ts(続きあり)

開発の流れ(想定):

  1. Rust プログラムをビルドしてローカルまたはテストネットにデプロイ
  2. CLI の依存をインストール(yarn)し、ts-node でスクリプト実行
  3. ウォレットキーペアを用いてチケット購入、抽選、クレーム操作を実行

使い方(READMEに基づく)

  • 前提: node と yarn をインストール、ts-node をグローバルインストール
  • テスト実行時には Solana ウォレットのキーファイルパスを指定(README の例を参照)
  • /cli/script.ts が主要な操作スクリプト、/cli/types.ts に型定義があるためまずここを確認すると全体の操作フローが把握できます

注意点と拡張案

  • 乱数ソース: ラッフルの公正性確保のため、オンチェーンの十分に検証された乱数ソース(Oracle/VRF)の導入を検討
  • 権限設計: 賞品管理・資金移動の署名ロジックに関して、PDA とマルチシグの併用を検討
  • テスト: 単体テスト・統合テストを充実させ、ローカルネットワークでの自動化を推奨
  • UX: CLI のほか Web UI を用意すれば参加者の利便性が向上

まとめ

Solana ベースのラッフル PoC。運用前は乱数・権限・テスト強化が必要です(約50字)。

リポジトリ情報:

READMEの抜粋:

ApeX-Raffle-program

This is the raffle project that winners can receive the raffle NFT, spl-tokens or winners can buy NFTs by low price. You can buy tickets by $Sol and $PREY token.

Install Dependencies

  • Install node and yarn
  • Install ts-node as global command
  • Confirm the solana wallet preparation: /home/fury/.config/solana/id.json in test case

Usage

  • Main script source for all functionality is here: /cli/script.ts
  • Program account types are declared here: `/cli/types.t…