Solana
目次
Solana のウォレット・トークン・取引・NFT を米ドル建てで調べます。
skill の情報
| 提供元 | 追加で入れるもの — hermes skills install official/blockchain/solana で導入します |
| パス | optional-skills/blockchain/solana |
| バージョン | 0.2.0 |
| 作者 | Deniz Alagoz (gizdusum), enhanced by Hermes Agent |
| ライセンス | MIT |
| 対応プラットフォーム | linux, macos, windows |
| タグ | Solana, Blockchain, Crypto, Web3, RPC, DeFi, NFT |
参考: SKILL.md 全文
Solana Blockchain Skill
Solana のオンチェーンデータを取得し、CoinGecko の米ドル価格を添えて表示します。 コマンドは 8 つあります。ウォレットの資産一覧、トークンの情報、取引の中身、直近の履歴、NFT、 大口送金の検出、ネットワークの状況、そして価格の確認です。
API キーは要りません。Python の標準ライブラリ(urllib、json、argparse)だけで動きます。
こんなときに使います
- Solana のウォレット残高、保有トークン、資産の合計額を聞かれたとき
- 署名を指定して特定の取引の中身を見たいとき
- SPL トークンの基本情報、価格、発行量、上位保有者を知りたいとき
- あるアドレスの直近の取引履歴を見たいとき
- あるウォレットが持っている NFT を知りたいとき
- 大口の SOL 送金(クジラ)を見つけたいとき
- Solana ネットワークの状態、TPS、エポック、SOL の価格を知りたいとき
- 「BONK / JUP / SOL はいくら?」と聞かれたとき
事前に必要なもの
補助スクリプトは Python の標準ライブラリ(urllib、json、argparse)だけを使います。 外部パッケージを入れる必要はありません。
価格は CoinGecko の無料 API から取ります(キー不要、1 分あたり 10〜30 回程度の制限つき)。 早く結果がほしいときは --no-prices を付けてください。
早見表
RPC のアドレス(既定): https://api.mainnet-beta.solana.com 差し替えるとき: export SOLANA_RPC_URL=https://your-private-rpc.com
補助スクリプトの場所: ~/.hermes/skills/blockchain/solana/scripts/solana_client.py
python3 solana_client.py wallet <address> [--limit N] [--all] [--no-prices]
python3 solana_client.py tx <signature>
python3 solana_client.py token <mint_address>
python3 solana_client.py activity <address> [--limit N]
python3 solana_client.py nft <address>
python3 solana_client.py whales [--min-sol N]
python3 solana_client.py stats
python3 solana_client.py price <mint_or_symbol>手順
0. 動く状態か確かめる
python3 --version
# Optional: set a private RPC for better rate limits
export SOLANA_RPC_URL="https://api.mainnet-beta.solana.com"
# Confirm connectivity
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py stats1. ウォレットの資産一覧
SOL の残高、SPL トークンの保有量と米ドル換算、NFT の数、そして資産の合計額をまとめて出します。 トークンは金額順に並び、ごく少額のものは除かれ、名前の分かるトークン(BONK、JUP、USDC など)は 名前で表示されます。
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py \
wallet 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM指定できるもの:
--limit N— 上位 N 件のトークンを表示します(既定は 20)--all— 少額のものも含め、件数を絞らずすべて表示します--no-prices— CoinGecko の価格取得を省きます(RPC だけを使うので速くなります)
出力には、SOL の残高と米ドル換算、金額順に並んだトークン一覧と価格、少額トークンの件数、 NFT のまとめ、資産の合計額(米ドル)が含まれます。
2. 取引の中身
base58 の署名を指定して、取引の全体を見ます。残高の増減は SOL と米ドルの両方で表示されます。
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py \
tx 5j7s8K...your_signature_here出力は、スロット、時刻、手数料、成否、残高の増減(SOL と米ドル)、呼び出されたプログラムです。
3. トークンの情報
SPL トークンの基本情報、現在の価格、時価総額、発行量、小数点以下の桁数、 発行・凍結の権限、そして上位 5 名の保有者を調べます。
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py \
token DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263出力は、名称、シンボル、小数点以下の桁数、発行量、価格、時価総額、 上位 5 名の保有者と保有比率です。
4. 直近の動き
あるアドレスの直近の取引を並べます(既定は 10 件、最大 25 件)。
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py \
activity 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM --limit 255. NFT の一覧
ウォレットが持っている NFT を並べます(数量 1・小数点以下 0 桁の SPL トークンを NFT とみなす方法です)。
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py \
nft 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM注意: 圧縮 NFT(cNFT)はこの見分け方では拾えません。
6. 大口送金の検出
いちばん新しいブロックを調べて、大口の SOL 送金を米ドル換算つきで拾います。
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py \
whales --min-sol 500注意: 調べるのは最新のブロックだけです。その瞬間の断面であって、過去にさかのぼるものではありません。
7. ネットワークの状況
Solana ネットワークの今の状態です。スロット、エポック、TPS、供給量、バリデータの バージョン、SOL の価格、時価総額が分かります。
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py stats8. 価格の確認
ミントアドレスか、よく知られたシンボルを指定して、手早く価格を確かめます。
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py price BONK
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py price JUP
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py price SOL
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py price DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263名前で指定できるシンボル: SOL, USDC, USDT, BONK, JUP, WETH, JTO, mSOL, stSOL, PYTH, HNT, RNDR, WEN, W, TNSR, DRIFT, bSOL, JLP, WIF, MEW, BOME, PENGU。
つまずきやすいところ
- CoinGecko の回数制限 — 無料の枠は 1 分あたり 10〜30 回ほどです。
価格の取得はトークン 1 つにつき 1 回使うので、保有トークンが多いウォレットでは すべての価格がそろわないことがあります。速さがほしいときは --no-prices を使ってください。
- 公開 RPC の回数制限 — Solana メインネットの公開 RPC にも制限があります。
本格的に使うなら、SOLANA_RPC_URL に専用のアドレス(Helius、QuickNode、Triton)を 設定してください。
- NFT の見分けは目安 — 数量 1・小数点以下 0 桁という条件で判定しています。圧縮 NFT
(cNFT)や Token-2022 の NFT は出てきません。
- 大口送金の検出は最新ブロックだけ — 過去はさかのぼりません。いつ実行したかで
結果が変わります。
- 取引履歴 — 公開 RPC が保つのは 2 日ほどです。それより古い取引は
取れないことがあります。
- トークンの名称 — 名前が付くのはよく知られた 25 種類ほどです。それ以外は
ミントアドレスを短くしたものが出ます。詳しく知りたいときは token コマンドを使ってください。
- 429 のときは再試行 — RPC も CoinGecko も、回数制限のエラーが返ったときは
間隔を空けながら最大 2 回まで試し直します。
確かめかた
# Should print current Solana slot, TPS, and SOL price
python3 ~/.hermes/skills/blockchain/solana/scripts/solana_client.py stats