ApeX ラッフルプログラム
概要
ApeX-Raffle-program は Solana ブロックチェーン上でのラッフル(抽選)運用を目的とした簡易プロジェクトです。本リポジトリでは、オンチェーン側のプログラム(Rust)とオフチェーンの CLI(TypeScript)を組み合わせ、参加者が SOL または PREY トークンでチケットを購入し、当選者が NFT や SPL トークンを受け取れる仕組みを実装しています。開発用には Node と yarn、ts-node を用いるクライアント群が含まれ、テスト用にローカル/指定パスの Solana ウォレットが必要です。
リポジトリの統計情報
- スター数: 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(続きあり)
開発の流れ(想定):
- Rust プログラムをビルドしてローカルまたはテストネットにデプロイ
- CLI の依存をインストール(yarn)し、ts-node でスクリプト実行
- ウォレットキーペアを用いてチケット購入、抽選、クレーム操作を実行
使い方(READMEに基づく)
- 前提: node と yarn をインストール、ts-node をグローバルインストール
- テスト実行時には Solana ウォレットのキーファイルパスを指定(README の例を参照)
- /cli/script.ts が主要な操作スクリプト、/cli/types.ts に型定義があるためまずここを確認すると全体の操作フローが把握できます
注意点と拡張案
- 乱数ソース: ラッフルの公正性確保のため、オンチェーンの十分に検証された乱数ソース(Oracle/VRF)の導入を検討
- 権限設計: 賞品管理・資金移動の署名ロジックに関して、PDA とマルチシグの併用を検討
- テスト: 単体テスト・統合テストを充実させ、ローカルネットワークでの自動化を推奨
- UX: CLI のほか Web UI を用意すれば参加者の利便性が向上
まとめ
Solana ベースのラッフル PoC。運用前は乱数・権限・テスト強化が必要です(約50字)。
リポジトリ情報:
- 名前: ApeX-Raffle-program
- 説明: 説明なし
- スター数: 4
- 言語: Rust
- URL: https://github.com/yurii-k49/ApeX-Raffle-program
- オーナー: yurii-k49
- アバター: https://avatars.githubusercontent.com/u/50834641?v=4
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
nodeandyarn - Install
ts-nodeas global command - Confirm the solana wallet preparation:
/home/fury/.config/solana/id.jsonin test case
Usage
- Main script source for all functionality is here:
/cli/script.ts - Program account types are declared here: `/cli/types.t…