首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
Solana代理工具包2026-05-0556分享添加福利群:解决AI开发者的「MCP实战痛点」
Solana 代理工具包是一个开源工具包,旨在将 AI 代理无缝集成到 Solana 区块链协议中。它支持 60 多种 Solana 操作,包括代币交易、NFT 管理、DeFi 集成、跨链桥接等。该工具包提供了多种插件,如代币插件、NFT 插件、DeFi 插件等,用户可以根据需求灵活选择。它还集成了 LangChain 和 Vercel AI SDK,支持自主模式和交互式聊天模式,使 AI 代理能够独立执行复杂的区块链操作。无论是开发者还是研究人员,都可以通过该工具包轻松将 AI 代理与 Solana 协议连接,实现多样化的区块链功能。
By sendaifun
2026-05-0556
github
详情内容

Solana 代理工具包

SAKCover2

NPM 下载量 GitHub forks GitHub 许可证

一个开源工具包,用于将 AI 代理连接到 Solana 协议。现在,任何使用任何模型的代理都可以自主执行 60 多种 Solana 操作:

  • 交易代币
  • 发行新代币
  • 借贷资产
  • 发送压缩空投
  • 执行 blinks
  • 在 AMM 上发行代币
  • 跨链桥接代币
  • 以及更多...

无论是基于 SF 的 AI 研究人员还是加密原生开发者,任何人都可以带来他们用任何模型训练的 AI 代理,并无缝集成到 Solana 中。

在 Repl.it 上运行

Replit 模板由 Arpit Singh 创建

🔧 核心区块链功能

  • 代币操作

    • 通过 Metaplex 部署 SPL 代币
    • 转移资产
    • 余额检查
    • 质押 SOL
    • 通过 Light Protocol 和 Helius 进行 Zk 压缩空投
    • 使用 Wormhole 跨链桥接代币
  • 3.Land 上的 NFT

    • 创建自己的收藏
    • NFT 创建并自动上架到 3.land
    • 以任何 SPL 代币出售你的 NFT
  • 通过 Metaplex 管理 NFT

    • 收藏部署
    • NFT 铸造
    • 元数据管理
    • 版税配置
  • DeFi 集成

    • Jupiter Exchange 交换
    • 通过 PumpPortal 启动 Pump
    • Raydium 池创建(CPMM, CLMM, AMMv4)
    • Orca Whirlpool 集成
    • Manifest 市场创建和限价订单
    • Meteora 动态 AMM, DLMM 池和 Alpha Vault
    • Openbook 市场创建
    • 注册和解析 SNS
    • Jito 捆绑包
    • 使用 Pyth 价格源获取资产价格
    • 注册/解析 Alldomains
    • 使用 Adrena Protocol 进行永续交易
    • Drift 金库、永续、借贷
    • 通过 deBridge DLN 进行跨链桥接
    • 通过 Wormhole 进行跨链桥接
  • Solana Blinks

    • 通过 Lulo 借贷(USDC 最佳 APR)
    • 发送街机游戏
    • JupSOL 质押
    • Solayer SOL (sSOL) 质押
  • 非金融操作

    • Gib Work 用于注册赏金
  • 市场数据集成

    • CoinGecko Pro API 集成
    • 实时代币价格数据
    • 热门代币和池
    • 涨幅最大者分析
    • 代币信息查询
    • 最新池跟踪

🤖 AI 集成功能

  • LangChain 集成

    • 现成的 LangChain 工具用于区块链操作
    • 支持 React 框架的自主代理
    • 用于持久交互的内存管理
    • 实时反馈的流式响应
  • Vercel AI SDK 集成

    • Vercel AI SDK 用于 AI 代理集成
    • 框架无关支持
    • 快速简便的工具包设置
  • 自主模式

    • 交互式聊天模式用于引导操作
    • 自主模式用于独立代理操作
    • 可配置的操作间隔
    • 内置错误处理和恢复
  • AI 工具

    • DALL-E 集成用于 NFT 艺术品生成
    • 自然语言处理用于区块链命令
    • 价格源集成用于市场分析
    • 自动化决策能力

📃 文档

你可以在 docs.sendai.fun查看工具包的完整文档。

为什么我们构建 V2 以及为什么要升级?

Solana 代理工具包 V2 是 V1 的重大升级,要了解原因,请查看我们的 迁移指南

📦 核心安装

npm install solana-agent-kit

📦 插件安装

你可以选择安装下面列出的任何插件,或者选择安装所有插件以体验 Solana 代理工具包的全部功能。

  1. 代币插件 (@solana-agent-kit/plugin-token):用于 SPL 代币的操作,如转移资产、交换、桥接和 rug 检查。
  2. NFT 插件 (@solana-agent-kit/plugin-nft):用于 Metaplex NFT 的操作,如铸造、上架和元数据管理。
  3. DeFi 插件 (@solana-agent-kit/plugin-defi):用于 Solana 协议的操作,如质押、借贷和现货及永续交易。
  4. 杂项插件 (@solana-agent-kit/plugin-misc):杂项操作,如空投、价格源、coingecko 代币信息和域名注册。
  5. Blinks 插件 (@solana-agent-kit/plugin-blinks):用于 Solana 协议的操作,如街机游戏等更多即将推出的功能。
npm install @solana-agent-kit/plugin-token @solana-agent-kit/plugin-nft @solana-agent-kit/plugin-defi @solana-agent-kit/plugin-misc @solana-agent-kit/plugin-blinks

快速开始

初始化钱包接口和带有插件的代理:

import { SolanaAgentKit, createVercelAITools, KeypairWallet } from "solana-agent-kit"; // 或者导入 createLangchainTools 如果使用 langchain 或 createOpenAITools 用于 OpenAI 代理
import TokenPlugin from "@solana-agent-kit/plugin-token";
import NFTPlugin from "@solana-agent-kit/plugin-nft";
import DefiPlugin from "@solana-agent-kit/plugin-defi";
import MiscPlugin from "@solana-agent-kit/plugin-misc";
import BlinksPlugin from "@solana-agent-kit/plugin-blinks";

const keyPair = Keypair.fromSecretKey(bs58.decode("你的私钥"))
const wallet = new KeypairWallet(keyPair)

// 使用私钥和可选的 RPC URL 初始化
const agent = new SolanaAgentKit(
  wallet,
  "你的RPC_URL",
  {
    OPENAI_API_KEY: "你的OPENAI_API_KEY",
  }
) // 添加你想使用的插件
  .use(TokenPlugin)
  .use(NFTPlugin)
  .use(DefiPlugin)
  .use(MiscPlugin)
  .use(BlinksPlugin);

// 创建 LangChain 工具
const tools = createVercelAITools(agent, agent.actions);

你也可以使用 Solana 钱包适配器提供的钱包接口用于嵌入式钱包。

使用代币、DeFi 和其他插件工具的示例

部署新代币

const result = await agent.methods.deployToken(
  agent,
  "我的 AI 代币", // 名称
  "uri", // uri
  "代币", // 符号
  9, // 小数位数
  {
    mintAuthority: null, // 默认,部署者账户
    freezeAuthority: null, // 默认,部署者账户
    updateAuthority: undefined, // 默认,部署者账户
    isMutable: false // 默认,true
  },
  1000000 // 初始供应量
);

console.log("代币铸造地址:", result.mint.toString());

部署新 Token2022

const result = await agent.methods.deployToken2022(
  "我的 AI 代币 2022", // 名称
  "uri", // uri
  "代币2022", // 符号
  9, // 小数位数
  {
    mintAuthority: null, // 默认,部署者账户
    freezeAuthority: null, // 默认,部署者账户
    updateAuthority: undefined, // 默认,部署者账户
    isMutable: false // 默认,true
  },
  1000000 // 初始供应量
);

console.log("Token2022 铸造地址:", result.mint.toString());

在 3Land 上创建 NFT 收藏

const isDevnet = false; // (可选)如果不存在,交易将在主网进行
const priorityFeeParam = 1000000; // (可选)如果不存在,默认优先费用为 50000

 const collectionOpts: CreateCollectionOptions = {
    collectionName: "",
    collectionSymbol: "",
    collectionDescription: "",
    mainImageUrl: ""
  };

const result = await agent.methods.create3LandCollection(
      collectionOpts,
      isDevnet, // (可选)如果不存在,交易将在主网进行
      priorityFeeParam, //(可选)
    );

在 3Land 上创建 NFT

使用 3Land 的工具创建 NFT 时,它会自动在 3.land 网站上出售

const isDevnet = true; // (可选)如果不存在,交易将在主网进行
const withPool = true; // (可选)仅在 NFT 将与特定 SPL 代币的流动性池一起创建时存在
const priorityFeeParam = 1000000; // (可选)如果不存在,默认优先费用为 50000
const collectionAccount = ""; // 收藏的哈希值
const createItemOptions: CreateSingleOptions = {
  itemName: "",
  sellerFee: 500, //5%
  itemAmount: 100, // 要创建的总项目数
  itemSymbol: "",
  itemDescription: "",
  traits: [
    { trait_type: "", value: "" },
  ],
  price: 0, //100000000 == 0.1 sol,可以设置为 0 以进行免费铸造
  splHash: "", // 如果以特定 SPL 代币上架,则存在,如果不存在,则以 $SOL 出售,如果 "withPool" 为 true,则必须存在
  poolName: "", // 仅在 "withPool" 为 true 时存在
  mainImageUrl: "",
};
const result = await agent.methods.create3LandSingle(
  {},
  collectionAccount,
  createItemOptions,
  isDevnet, // (可选)如果不存在,交易将在主网进行
  withPool
  priorityFeeParam, //(可选)
);

创建 NFT 收藏

const collection = await agent.methods.deployCollection(agent, {
  name: "我的 NFT 收藏",
  uri: "https://arweave.net/metadata.json",
  royaltyBasisPoints: 500, // 5%
  creators: [
    {
      address: "creator-wallet-address",
      percentage: 100,
    },
  ],
});

交换代币

import { PublicKey } from "@solana/web3.js";

const signature = await agent.methods.trade(
  agent,
  new PublicKey("目标代币铸造地址"),
  100, // 数量
  new PublicKey("源代币铸造地址"),
  300 // 3% 滑点
);

借贷代币

import { PublicKey } from "@solana/web3.js";

const signature = await agent.methods.lendAssets(
  agent,
  100 // 要借贷的 USDC 数量
);

质押 SOL

const signature = await agent.methods.stakeWithJup(
  agent,
  1 // 要质押的 SOL 数量
);

在 Solayer 上质押 SOL

const signature = await agent.methods.stakeWithSolayer(
  agent,
  1 // 要质押的 SOL 数量
);

通过 ZK 压缩发送 SPL 代币空投

import { PublicKey } from "@solana/web3.js";

(async () => {
  console.log(
    "~空投成本估算:",
    getAirdropCostEstimate(
      1000, // 接收者
      30_000 // 优先费用(以 lamports 为单位)
    )
  );

  const signature = await agent.methods.sendCompressedAirdrop(
    agent,
    new PublicKey("JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN"), // 铸造地址
    42, // 每个接收者的数量
    9,
    [
      new PublicKey("1nc1nerator11111111111111111111111111111111"),
      // ... 添加更多接收者
    ],
    30_000 // 优先费用(以 lamports 为单位)
  );
})();

从 Pyth 获取价格数据


const priceFeedID = await agent.methods.fetchPythPriceFeedID("SOL");

const price = await agent.methods.fetchPythPrice(priceFeedID);

console.log("SOL/USD 价格:", price);

打开 PERP 交易

import { PublicKey } from "@solana/web3.js";

const signature = await agent.methods.openPerpTradeLong({
  agent: agent,
  price: 300, // $300 SOL 最高价格
  collateralAmount: 10, // 10 jitoSOL 投入
  collateralMint: new PublicKey("J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn"), // jitoSOL
  leverage: 50000, // x5
  tradeMint: new PublicKey("J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn"), // jitoSOL
  slippage: 0.3, // 0.3%
});

关闭 PERP 交易

import { PublicKey } from "@solana/web3.js";

const signature = await agent.methods.closePerpTradeLong({
  agent: agent,
  price: 200, // $200 SOL 价格
  tradeMint: new PublicKey("J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn"), // jitoSOL
});

关闭空代币账户


const { signature } = await agent.methods.closeEmptyTokenAccounts(agent);

创建 Drift 账户

创建带有初始代币存款的 Drift 账户。

const result = await agent.methods.createDriftUserAccount(
  agent,
  // 要存入的代币数量
  100,
  // 要存入的代币符号
  "USDC"
)

创建 Drift 金库

创建 Drift 金库。

const signature = await agent.methods.createDriftVault(agent, {
  name: "我的-drift-金库",
  marketName: "USDC-SPOT",
  redeemPeriod: 1, // 以天为单位
  maxTokens: 100000, // 以代币单位为单位,例如 100000 USDC
  minDepositAmount: 5, // 以代币单位为单位,例如 5 USDC
  managementFee: 1, // 1%
  profitShare: 10, // 10%
  hurdleRate: 5, // 5%
  permissioned: false, // 公共金库或白名单
})

存入 Drift 金库

将代币存入 Drift 金库。

const signature = await agent.methods.depositIntoDriftVault(agent, 100, "41Y8C4oxk4zgJT1KXyQr35UhZcfsp5mP86Z2G7UUzojU")

存入你的 Drift 账户

将代币存入你的 Drift 账户。

const {txSig} = await agent.methods.depositToDriftUserAccount(agent, 100, "USDC")

派生 Drift 金库地址

派生 Drift 金库地址。

const vaultPublicKey = await agent.methods.deriveDriftVaultAddress(agent, "我的-drift-金库")

你有 Drift 账户吗

检查代理是否有 Drift 账户。

const {hasAccount, account} = await agent.methods.doesUserHaveDriftAccount(agent)

获取 Drift 账户信息

获取 Drift 账户信息。

const accountInfo = await agent.methods.driftUserAccountInfo(agent)

请求从 Drift 金库提款

请求从 Drift 金库提款。

const signature = await agent.methods.requestWithdrawalFromDriftVault(agent, 100, "41Y8C4oxk4zgJT1KXyQr35UhZcfsp5mP86Z2G7UUzojU")

使用 Drift 金库进行永续交易

使用委托给你的 Drift 金库进行永续交易。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档