Solana Staking Lootbox UI(Solana NFT ステーキング&ルートボックス フロントエンド)
概要
Solana 上で動作する NFT コレクションのフロントエンド DApp。ユーザーは NFT をミントし、それをステーキングして報酬トークン $PINK を獲得、獲得した $PINK を使ってランダムな Lootbox(報酬箱)を開き、Pink Floyd の楽曲コレクション等の特典と交換できます。フロントエンドは TypeScript で実装され、別レポジトリの Staking & Lootbox プログラム(スマートコントラクト)と通信してステーキングや報酬の処理を行います。NodeJS v16 以上を前提にローカルでの開発・動作確認が可能です(約300字)。
リポジトリの統計情報
- スター数: 16
- フォーク数: 0
- ウォッチャー数: 16
- コミット数: 30
- ファイル数: 18
- メインの言語: TypeScript
主な特徴
- NFT のミント、ステーキング、報酬請求までの一連の UX を提供
- 獲得した報酬 ($PINK) を Lootbox と交換しランダム報酬を付与
- フロントエンドは TypeScript ベースで静的型付けにより保守性を確保
- 別レポジトリのスマートコントラクト(Staking & Lootbox Program)と連携
技術的なポイント
本リポジトリは Solana のオンチェーンプログラム(Staking & Lootbox)と対話するフロントエンド実装に注力しています。一般的な実装要素として、ウォレット接続(Phantom 等のブラウザウォレット)、トランザクション生成・送信、トークン(SPL)や NFT(Metaplex 準拠)の取り扱いが含まれます。UI 側は TypeScript で型安全を担保しており、Babel や ESLint 設定ファイルが含まれていることからビルドとコード品質の管理が行われています。環境変数用の .env.sample があり、RPC エンドポイントやプログラム ID、コレクションのメタデータ URL 等を外部設定できる設計です。
フロントエンドはバックエンドのプログラム IDL(もしくは API エンドポイント)を参照し、ミントやステーキング時に必要なアカウントや PDA の計算、署名付きトランザクションを作成します。ルートボックス(Lootbox)はランダム性を伴う UX のため、オンチェーンの乱数ソースやオフチェーンの引当ロジックに依存しますが、UI はその結果表示と報酬交換フロー($PINK 消費→報酬割当→NFT/楽曲付与)を扱います。開発上の注意点としては、ローカル・テストネットでの動作検証、ウォレットの権限管理、トランザクション失敗時のリトライとユーザー通知、そしてメタデータ取得(IPFS 等)に起因する遅延対策が挙げられます。README に NodeJS v16 の要件があるため、依存パッケージの互換性にも留意する必要があります。(約700字)
プロジェクトの構成
主要なファイルとディレクトリ:
- .babelrc: file
- .editorconfig: file
- .env.sample: file
- .eslintignore: file
- .eslintrc.json: file
…他 13 ファイル
(補足).env.sample をコピーして環境変数を設定し、パッケージインストール(npm または yarn)→ 開発サーバ起動、という標準的なワークフローが想定されます。public ディレクトリにステーキング動作を示すデモ画像(stake-demo.png)が含まれており、UI のビジュアルを確認できます。
まとめ
Solana の NFT ステーキングと報酬交換を分かりやすく扱う TypeScript ベースのフロントエンド実装です。(50字)
リポジトリ情報:
- 名前: solana-staking-lootbox-ui
- 説明: 説明なし
- スター数: 16
- 言語: TypeScript
- URL: https://github.com/hydrogen7797/solana-staking-lootbox-ui
- オーナー: hydrogen7797
- アバター: https://avatars.githubusercontent.com/u/10045029?v=4
READMEの抜粋:
Solana DApp - NFTs, Staking and Lootbox
Mint NFT, Stake it and win $PINK as Reward. Change reward token for a random Lootbox.
A Pink Floyd NFT collection. Win $PINK and change it for Pink Floyd’s SONGs collection.

Use at least NodeJS v16