Astronaut-NFT-Staking(アストロノート NFT ステーキング)

Tool

概要

Astronaut-NFT-Staking は、Astronaut NFT コレクション向けに作られた NFT ステーキングのリファレンス実装です。README によれば「Multiple Factor Rewards Staking program」で、3つのステーキングモデルをサポートします。プロジェクトは TypeScript で書かれ、CLI ベースのスクリプト群(/cli/script.ts)がメインの操作ポイントです。プログラム側のアカウント型は /cli/types.ts に宣言され、IDL が用意されているため JavaScript 側からのバインディングが容易に行えます。開発環境には node、yarn、グローバルの ts-node が必要で、ローカルの Solana キーペアファイル(例:/home/fury/.config/solana/id.json)を利用するテストが示されています。(約300字)

GitHub

リポジトリの統計情報

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

主な特徴

  • マルチファクター報酬(複数条件に基づく報酬配分)を扱うステーキングモデルを実装
  • 3つの異なるステーキングモデルを提供し、柔軟な報酬設計が可能
  • CLI スクリプトと IDL による JS バインディングでデベロッパーが使いやすい
  • Solana ウォレット連携を前提としたオンチェーン操作のサンプル実装

技術的なポイント

本リポジトリは TypeScript ベースで、CLI から直接ステーキング操作を呼び出す構成になっています。README の記述から、/cli/script.ts がメインの操作入口であり、/cli/types.ts にプログラムのアカウント型が定義されている点が重要です。IDL(Interface Definition Language)が用意されているため、オンチェーンプログラムとのインタフェースを自動生成して JS から安全に呼び出せる設計です。Solana のウォレットパス例(/home/fury/.config/solana/id.json)が明示されており、ローカルキーを使ったテスト運用を想定しています。

「Multiple Factor Rewards」という設計方針は、ただ単に保有期間や数量だけで報酬を決めるのではなく、NFT の属性(稀少性)やステーキング期間、モデル別の係数など複数の要素を組み合わせて最終的な報酬を算出することを意味します。これを実現するためには、オンチェーンでのアカウント設計(報酬プール、ステーク記録、NFT 所有情報の参照)や、オフチェーンでの報酬ポリシー管理(パラメータの更新、配布トリガー)が必要になります。

プロジェクトは ts-node をグローバルに要求しているため、開発者はローカルで TypeScript を即時実行してスクリプトを動かせます。IDL の存在は Anchor 等のフレームワークを用いた設計を示唆しますが、README に明示はないため、IDL を使っている点のみを確実な情報として扱うのが安全です。セキュリティ面では、キー管理(ファイルパスや環境変数による取り扱い)、オンチェーンのアカウント変更時の検証、報酬付与ロジックに対するリプレイ防止や不正ステーク検知の実装が重要になります。現状はサンプル実装に近く、テストやドキュメント、エンドユーザー向けの UI/フロントエンド連携が今後の改善点として挙げられます。(約700字)

プロジェクトの構成

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

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

補足(推測含む)

  • /cli/script.ts: メインの CLI スクリプト。ステーキングの登録・解除・報酬計算などの操作を実行する入口。
  • /cli/types.ts: プログラムアカウントの型定義。オンチェーンでの状態構造をここで管理。
  • /cli/staking_… (IDL): IDL ファイル。API インターフェース定義により JS バインディングを生成可能。
  • backend ディレクトリ: オフチェーンでの補助ロジックや API、スケジューラ等が入る想定(具体内容はリポジトリ参照)。

まとめ

実践的な NFT ステーキングの参考実装として有用で、拡張や学習に適したリポジトリです。(約50字)

リポジトリ情報:

READMEの抜粋:

NFT-staking-Death

Multiple Factor Rewards Staking program for Astronaut NFT collections. This has 3 models to stake NFTs.

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.ts
  • Idl to make the JS binding easy is here: /cli/staking_...