Native Solana staking with Blueprint validator via the GOAT SDK. Stake, unstake, withdraw, and monitor SOL staking positions through AI agents.
npm install @goat-sdk/plugin-solenticMake sure you also have the required peer dependencies:
npm install @goat-sdk/core @goat-sdk/wallet-solanaimport { getOnChainTools } from "@goat-sdk/adapter-vercel-ai";
import { solana } from "@goat-sdk/wallet-solana";
import { solentic } from "@goat-sdk/plugin-solentic";
const tools = await getOnChainTools({
wallet: solana({ /* wallet config */ }),
plugins: [solentic()],
});
// Use with your LLM framework of choice (Vercel AI, LangChain, etc.)solentic({ baseUrl: "https://your-solentic-instance.com" })| Tool | Description |
|---|---|
stakeSol |
Stake SOL with Blueprint validator. Builds, signs, and submits in one call. |
unstakeSol |
Deactivate a stake account. SOL becomes withdrawable after the epoch ends (~2-3 days). |
withdrawStake |
Withdraw SOL from a fully deactivated stake account back to the wallet. |
| Tool | Description |
|---|---|
getValidatorInfo |
Full validator details: commission, rank, APY, performance, infrastructure. |
getStakingApy |
APY breakdown: base staking APY, Jito MEV APY, total combined APY. |
getStakeAccounts |
List all stake accounts for a wallet delegated to Blueprint validator. |
checkWithdrawReady |
Check which stake accounts are ready for withdrawal after unstaking. |
simulateStake |
Project staking returns for a given amount and duration without transacting. |
- Zero custody: The plugin never handles private keys. All transactions are built as unsigned base64 payloads by the Solentic API and signed by the GOAT wallet client.
- No key storage: Private keys remain in the wallet client and are never sent to the Solentic API.
- Verifiable: The Solentic API provides a
verify_code_integritytool for auditing the server-side transaction building code.
- Stake: Call
stakeSolwith an amount. Returns a transaction signature and new stake account address. The stake activates at the next epoch boundary. - Monitor: Use
getStakeAccountsto see status. UsesimulateStaketo project returns. - Unstake: Call
unstakeSolwith the stake account address. Begins the cooldown (deactivation) period. - Withdraw: After the epoch ends, call
checkWithdrawReadyto verify, thenwithdrawStaketo reclaim SOL.
MIT