5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EVM 開発者の Solana 参入には「Solana Agent Kit」が最適

Last updated at Posted at 2025-07-15

Solana Agent Kit は、TypeScript だけで AI を統合したアプリケーションを Solana 上に構築できる開発ツールキットです。Rust の知識は不要で、EVM 開発者が Solana に参入する際に直面する課題を解決します。

このツールの最大の特長は、「UX の洗練(AI や SNS との統合)」と「主要 Solana プロトコルとの統合」がワンツールで完結する点です。SNS 連携、AI エージェント構築、トークン・NFT・DeFi 操作など、ほぼすべての機能を TypeScript から直接呼び出すことができます。

なぜ Solana なのか?

近年、Solana を選ぶエンジニア・ビルダーが増えています。その理由として、以下のような背景があります。

  • ビジネスフィールドとして最も成功したチェーン
  • 強固なユーザー基盤と成熟したエコシステム
  • ビルダーや Founder を大切にする文化(Superteam という仕組みの成功)
  • EVM に比べて手数料・UX・速度で優位性がある

Solana Agent Kit の利点

EVM 開発者が Solana に参入する際には、以下のようなステップが必要です。

  1. EVM と Solana の技術的な違いを理解する
  2. Solana の主要エコシステムを把握する: Solana はビジネスライクに一つのエコシステムを構築する志向であり、既存エコシステムとの連携性を重視するため。自律分散的な発展を志向する Ethereum エコシステムと対照的
  3. ハッカソンに参加して、勝つ: Solana におけるハッカソンは他のチェーンと異なり特別な位置付けとなっており、ビジネスコンテストに近く、実業に直結する
  4. 優れた機能を優れた UX で提供する: Solana 上のプロダクト は技術的なコンセプトだけではなく UX が重視されるため

これらすべてに対して、Solana Agent Kit は非常に強力なサポートを提供します。

  • TypeScript のみで開発可能なため、Rust 未経験者でも安心
  • Solana Agent Kit の機能を通じて Solana エコシステムの理解につながる
  • SNS や AI との UX 統合が簡単に実装でき、Twitter や Vercel AI SDK との連携が容易
  • 主要プロトコル(DeFi・NFT・Token・Bridge など)の操作が API レベルで標準化されている
  • 「DeFAI」や「AI Agent x Web3」は Solana ハッカソンで勝ちやすいテーマの一つ(トレンドなだけでなく、レバレッジが効く事業ドメイン)

実装例

Solana Agent Kit では、以下のようなユースケースをわずかなコードで実現できます。

  • SPL トークンの作成・送金
  • Jupiter を用いたスワップ・LP 作成
  • Wormhole によるクロスチェーントランスファー
  • pump.fun でのミームトークン展開
  • Solana Name Service でのドメイン移転

Code Sample: Setup

// setup.ts
import { SolanaAgentKit } from 'solana-agent-kit';
import dotenv from 'dotenv';

dotenv.config();

// 環境変数から秘密鍵とRPC URLを取得
const privateKey = process.env.SOLANA_PRIVATE_KEY!;
const rpcUrl = process.env.RPC_URL || 'https://api.mainnet-beta.solana.com';

// Solana Agent Kitのインスタンスを作成
const agent = new SolanaAgentKit(privateKey, rpcUrl);

export default agent;

Code Sample: SPL Token 作成

// 新しいSPLトークンの作成
const createToken = async () => {
  const result = await agent.deployToken(
    'My First Token', // 名前
    'https://example.com/metadata.json', // メタデータURI
    'MFT', // シンボル
    9, // 小数点以下の桁数
    {}, // 追加オプション
    1000000 // 初期供給量(10^6 トークン)
  );

  console.log('トークンミントアドレス:', result.mint.toString());
  return result.mint;
};

// トークンの送金
const transferToken = async (tokenMint, recipient, amount) => {
  const signature = await agent.transferToken(
    new PublicKey(recipient),
    amount,
    new PublicKey(tokenMint)
  );

  console.log('送金トランザクション:', signature);
  return signature;
};

Code Sample: Jupiter

// トークンスワップ
const swapTokens = async (inputToken, outputToken, amount) => {
  const signature = await agent.trade(
    new PublicKey(outputToken), // 出力トークン
    amount, // スワップ量
    new PublicKey(inputToken), // 入力トークン
    300 // 3%のスリッページ
  );

  console.log('スワップトランザクション:', signature);
  return signature;
};

// Raydiumでのリクイディティプール作成
const createPool = async (tokenAMint, tokenBMint) => {
  const pool = await agent.createRaydiumPool(
    new PublicKey(tokenAMint),
    new PublicKey(tokenBMint),
    100, // 初期リクイディティトークンA
    100 // 初期リクイディティトークンB
  );

  console.log('プールアドレス:', pool);
  return pool;
};

Code Sample: Wormhole

// サポートされているチェーンの取得
const getSupportedChains = async () => {
  const chains = await agent.getWormholeSupportedChains();
  console.log('サポートされているチェーン:', chains);
  return chains;
};

// Wormholeを使ったトークン移動
const transferTokenCrossChain = async () => {
  const transfer = await agent.tokenTransfer({
    destinationChain: 'Base Sepolia', // 送金先チェーン
    tokenAddress: '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU', // トークンアドレス
    network: 'Testnet', // ネットワークタイプ
  });

  console.log('クロスチェーン転送結果:', transfer);
  return transfer;
};

Code Sample: Pump.fun

// Pump.funでトークンを立ち上げる例
const launchToken = async () => {
  // Pump.funトークンオプションの設定
  const tokenOptions = {
    twitter: 'yourTwitterHandle', // オプション: Twitterハンドル
    telegram: 'yourTelegramGroup', // オプション: Telegramグループ
    website: 'https://yourwebsite.com', // オプション: ウェブサイトURL
    initialLiquiditySOL: 1.5, // オプション: 初期流動性(SOL)
    slippageBps: 100, // オプション: スリッページ(ベーシスポイント)
    priorityFee: 100000, // オプション: 優先手数料(ラムポート)
  };

  const result = await agent.deployPumpFunToken(
    'MyToken', // トークン名
    'MTK', // トークンシンボル
    9, // 小数点以下の桁数
    1000000, // 総供給量
    tokenOptions // 追加オプション
  );

  console.log('Pump.funでのトークン立ち上げ成功:');
  console.log('- トランザクション署名:', result.signature);
  console.log('- トークンミントアドレス:', result.mint);

  return result;
};

Code Sample: SNS(Solana Name Service)

Code Sample: SNS(Solana Name Service)

// SNSドメインの所有権を転送する例
const transferDomain = async (domain, newOwner) => {
  try {
    const result = await agent.transferSNSOwnership(
      `${domain}.sol`,
      new PublicKey(newOwner)
    );

    console.log("SNSドメイン所有権転送成功:");
    console.log("- ドメイン名:", `${domain}.sol`);
    console.log("- 新しい所有者:", newOwner);
    console.log("- トランザクション署名:", result);

    return result;
  } catch (error) {
    console.error("SNSドメイン所有権転送エラー:", error);
    throw error;
  }
};

SendAI Japan

また、2025 年 2 月には SendAI 公式組織「SendAI Japan」も発足し、技術記事の執筆や OSS 貢献、開発合宿なども積極的に展開しています。

Solana 開発への第一歩として、Solana Agent Kit をぜひ活用してみてください。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?