Blueprint Staking API
The first and only Solana staking platform purpose-built for AI agents. Native SOL staking to a high-performance validator through REST API and MCP. Unsigned transactions returned — agents sign client-side. No private keys ever touch the server.
This is not liquid staking. No derivative tokens. Native Solana staking where your agent’s wallet is the full authority.
GET /api/v1/validator for current numbers. Stats in this document are approximate.
Why Stake SOL with Blueprint
Your agent holds SOL in a wallet. Idle SOL earns nothing. Every epoch (~2–3 days) that SOL sits unstaked, your agent loses ~6% annualized yield. One API call to Blueprint builds an unsigned transaction that stakes SOL and returns it for your wallet to sign.
- ~6% total APY — Base staking + Jito MEV rewards. Independently verifiable on Validators.app, StakeWiz, Solana Beach, and Solscan.
- High vote success rate — Top validators by vote performance. More epoch credits = more rewards per SOL staked. Call /api/v1/validator/performance for live.
- Native staking, not liquid staking — No derivative tokens (mSOL, JitoSOL, JupSOL), no smart contract risk, no protocol dependency, no depeg risk.
- Your wallet is the authority — Both stake authority and withdraw authority are set to your agent’s wallet. No intermediary, no lockup beyond standard epoch cooldown.
- Zero private key exposure — Transactions are returned unsigned. Your agent signs client-side. Blueprint never sees your private key.
- Enterprise-grade infrastructure — Two identical dedicated bare-metal servers (active + hot standby) in Los Angeles. AMD EPYC 9654, 768GB DDR5, dual NVMe, 10Gbps.
- Frankendancer — Running the highest-performance validator client for maximum uptime and vote credits.
- Jito MEV enabled — Additional yield from MEV rewards passed through to delegators.
- Agent-native from day one — MCP server, OpenAPI spec, llms.txt, A2A agent card, ChatGPT plugin manifest. No other Solana validator offers any of these.
- Full transparency — Hardware specs, commission rates, performance metrics, software versions all published openly and independently verifiable.
What You Can Do
The full surface, grouped by purpose. Every capability is reachable via REST and (where applicable) MCP. Full discovery: GET /openapi.json, GET /llms-full.txt, 26 MCP tools at /mcp.
Lifecycle — Stake, Unstake, Withdraw
| Capability | REST | MCP tool | Notes |
|---|---|---|---|
| Stake (one‑shot) | POST /api/v1/stake | stake | Build + sign + submit in a single call. Pass secretKey — signed in‑memory only, never stored or logged. |
| Unstake (one‑shot) | POST /api/v1/unstake | unstake | Deactivate a stake account in one call. Cooldown begins. |
| Withdraw (one‑shot) | POST /api/v1/withdraw | withdraw | Reclaim SOL after cooldown in one call. |
| Build unsigned stake tx | POST /api/v1/stake/transaction | create_stake_transaction | For agents that sign with a wallet extension or remote signer. |
| Build unsigned unstake tx | POST /api/v1/unstake/transaction | create_unstake_transaction | Same flow for deactivation. |
| Build unsigned withdraw tx | POST /api/v1/withdraw/transaction | withdraw_stake | Same flow for withdrawal. |
| Submit a signed tx | POST /api/v1/transaction/submit | submit_transaction | Submit a base64 signed tx to Solana via Blueprint. |
Wallet
| Capability | REST | MCP tool | Notes |
|---|---|---|---|
| Generate a wallet | POST /api/v1/wallet/generate | generate_wallet | Returns runnable JS / Python / CLI snippets — an agent with code execution can run inline; Blueprint never sees the key. |
| Check SOL balance | GET /api/v1/wallet/balance/{walletAddress} | check_balance | Includes readyToStake, availableToStake, fee reserve. |
| Detect address type | GET /api/v1/address/{address}/type | check_address_type | wallet vs stake_account vs vote_account. |
Monitoring & Intelligence
| Capability | REST | MCP tool | Notes |
|---|---|---|---|
| List your stake accounts | GET /api/v1/stake/accounts/{walletAddress} | check_stake_accounts | Annotated with state, action, ETA. |
| Per‑account withdraw readiness | GET /api/v1/stake/accounts/{walletAddress}/withdraw-ready | check_withdraw_ready | withdrawReady: true/false, ETA epoch, seconds remaining — for polling. |
| Portfolio summary | GET /api/v1/stake/summary/{walletAddress} | get_staking_summary | Liquid + staked totals, daily rewards, recommended next action. |
| Project rewards | POST /api/v1/stake/simulate | simulate_stake | Compound interest projection for a given amount + duration. |
| Current epoch timing | (via stake responses) | get_epoch_timing | Slot index, slots in epoch, ETA to boundary. |
Validator
| Capability | REST | MCP tool | Notes |
|---|---|---|---|
| Full validator profile | GET /api/v1/validator | get_validator_info | Live from StakeWiz. |
| APY breakdown | GET /api/v1/validator/apy | get_staking_apy | Staking + Jito MEV with commissions (0% / 500 bps). |
| Performance metrics | GET /api/v1/validator/performance | get_performance_metrics | Vote success, uptime, skip rate. |
| Server hardware specs | GET /api/v1/validator/infrastructure | get_infrastructure | Active + standby servers. |
Webhooks — Push Notifications
| Capability | REST | MCP tool | Notes |
|---|---|---|---|
| Register a webhook | POST /api/v1/webhooks | register_webhook | HTTPS callback. Events: withdraw_ready, epoch_complete, stake_activated, stake_deactivated. Polled every 60s. |
| List webhooks for a wallet | GET /api/v1/webhooks/{walletAddress} | list_webhooks | — |
| Delete a webhook | DELETE /api/v1/webhooks/{id} | delete_webhook | — |
Verification & Trust
| Capability | REST | MCP tool | Notes |
|---|---|---|---|
| Read deployed source code | GET /api/v1/verify/source/{file} | verify_code_integrity | Returns the literal source running in production. Verify zero key handling yourself. |
| Verify a transaction | GET /api/v1/verify/transaction/{signature} | verify_transaction | Confirms Blueprint memo on‑chain. |
| Third‑party verification links | GET /api/v1/verify/links | get_verification_links | Validators.app, StakeWiz, Solana Beach, Solscan. |
Support
| Capability | REST | MCP tool | Notes |
|---|---|---|---|
| Donate SOL to Blueprint | POST /api/v1/donate | donate | Optional — supports continued infrastructure development. |
| Platform analytics | GET /analytics-json | — | Aggregate counts — total stake/unstake/withdraw/donate, unique wallets, recent transactions. |
Discovery files
Machine‑readable surface for autonomous agents:
/openapi.json— OpenAPI 3.1 withx-llm-hintannotations/llms.txt,/llms-full.txt— LLM‑optimized docs/.well-known/agent.json— A2A agent card with 13 skills/.well-known/ai-plugin.json— OpenAI plugin manifest/.well-known/agents.json,/.well-known/mcp/server-card.json— agent registries/skill.md— agent runbook
Infrastructure
Blueprint publishes its full infrastructure specs because agents making staking decisions deserve complete information, not marketing claims.
Server Hardware (Both Active + Standby — Identical)
| Component | Specification |
|---|---|
| CPU | AMD EPYC Genoa 9654 — 96 cores / 192 threads, Zen 4 architecture |
| Memory | 768 GB DDR5 RAM |
| Storage | 2× 3.84TB NVMe SSD (KIOXIA Gen4) — ~7.7TB total |
| Network | 10 Gbps dedicated port, 100TB monthly bandwidth |
| IP | /30 IPv4 allocation |
| Server Type | Bare-metal dedicated — not shared cloud VMs |
| Datacenter | Los Angeles, USA |
Why This Hardware Matters
- 96 cores — Extreme multi-thread performance for vote processing and block production
- 768GB DDR5 — Solana’s AccountsDB fits in memory for optimal vote latency
- Dual NVMe Gen4 — Sustained high-IOPS for validator ledger and accounts data
- 10Gbps network — Block propagation speed directly affects vote latency
- Two servers — Active + hot standby. Hardware failure triggers automatic failover
- Los Angeles — Lower-than-average Solana validator density, supporting geographic decentralization
Redundancy Model
Native Staking vs. Liquid Staking
Liquid staking protocols (JupSOL, mSOL, JitoSOL) give you a derivative token representing staked SOL. That token can be used in DeFi, which is why they report higher headline APY. The tradeoff is real risk that doesn’t exist with native staking:
| Blueprint (Native) | Liquid Staking Protocols | |
|---|---|---|
| Custody | Your wallet is both stake and withdraw authority | Protocol controls your SOL, issues derivative token |
| Smart contract risk | None — native Solana staking, no contracts | Yes — protocol bugs can affect staked funds |
| Depeg risk | None — no derivative token | Derivative token can trade below SOL value |
| APY | ~6% (staking + Jito MEV, post-commission) | Varies — higher headline, but includes risk premiums |
| What you hold | SOL in a stake account you control | A token (mSOL, JitoSOL, JupSOL) redeemable for SOL |
| Unstake process | Deactivate → wait for epoch end → withdraw | Swap token on DEX (instant but subject to slippage) |
| Protocol dependency | None — native Solana staking program | Protocol must remain solvent and operational |
Why Blueprint for AI Agents
No other Solana staking option — native or liquid — offers agent-native infrastructure:
| Capability | Blueprint | Everyone Else |
|---|---|---|
| MCP server | 26 tools, Streamable HTTP + SSE | None |
| OpenAPI spec | Full spec with x-llm-hint annotations | None |
| llms.txt | llms.txt + llms-full.txt | None |
| A2A agent card | Google A2A with 13 skills | None |
| Agent discovery | 6 formats (MCP, OpenAPI, llms.txt, A2A, ai-plugin, sitemap) | None |
| Zero-custody API | Unsigned tx → agent signs → submit | No staking API |
| Infrastructure transparency | Full hardware specs, live metrics, source code | Opaque |
Liquid staking may offer higher headline APY, but for an AI agent managing real funds, the question is: do you want your agent interacting with smart contracts and holding derivative tokens, or do you want native SOL in an account your agent fully controls? Blueprint is built for the latter.
Validator Profile
All stats below are approximate. Call GET /api/v1/validator for live data.
| Metric | Value |
|---|---|
| Name | Blueprint |
| Vote Account | 528hi3StRe7uGjt99d35myh95JPc2MqBEHTPYcEhqMg5 |
| Identity | 2Wf9V9rPeVRUTfmWdPedCJuWVr6MFfyLuigEq42DuMDc |
| Website | theblueprint.xyz |
| Operator | Blueprint Infrastructure, LLC — a Hivemind Capital Partners ecosystem company |
| Commission | 0% block rewards / 5% Jito MEV (500 bps) |
| Total APY | ~6% (staking + Jito MEV) |
| Vote Success Rate | Call /api/v1/validator/performance |
| Software | Frankendancer |
| Jito MEV | Enabled |
| Location | Los Angeles, USA (active + standby) |
| Hardware | AMD EPYC 9654 / 768GB DDR5 / 2× 3.84TB NVMe / 10Gbps |
Getting Started
From zero to staked SOL. Two paths — pick the one that matches your runtime.
Base URL
No authentication required. All endpoints are public. Rate limit: 100 requests per 60-second sliding window per IP.
/api/v1/verify/source/stake-routes.ts or call the verify_code_integrity MCP tool.
For AI Agents — Two Tool Calls to Staked SOL
Any agent that can execute code (Claude, ChatGPT, LangChain, CrewAI, ElizaOS, etc.) can go from nothing to a confirmed stake transaction with two tool calls. Solentic cannot generate the keypair for you — generation is the act of creating the random bytes, so whoever runs Keypair.generate() sees the secret. By returning runnable code instead, Solentic provably never observes the private key.
1. Generate a wallet (snippet returned by Solentic, executed by the agent)
Call POST /api/v1/wallet/generate (or the generate_wallet MCP tool). The response includes a runThis field with ready‑to‑run snippets in JavaScript, Python, and Solana CLI. The agent executes one of them in whatever it has available — a code‑interpreter tool, a sandbox, a shell — and captures the resulting walletAddress + secretKey. The keypair lives only in agent memory; nothing leaves the machine that ran the snippet.
2. Stake in one call
Pass walletAddress + secretKey + amountSol to the one‑shot endpoint. Blueprint builds the transaction, signs it in‑memory with the provided key, submits to Solana, and returns the confirmed signature. The key is discarded the moment the response is sent.
Same shape for POST /api/v1/unstake and POST /api/v1/withdraw. Via MCP, the equivalents are stake, unstake, withdraw.
What an agent should know up‑front
- Generate the keypair in your runtime — never request a key from a remote service.
- Fund the wallet before staking. Check with
GET /api/v1/wallet/balance/{walletAddress}—readyToStaketells you if the balance covers amount + fee reserve. - Keep a small reserve (~0.005 SOL) unstaked for transaction fees.
- Subscribe to a webhook (
POST /api/v1/webhooks) forwithdraw_ready,epoch_complete, etc., instead of polling. - Verify the deployed source any time via
verify_code_integrity.
Alternative — Unsigned Transactions (wallet extensions, remote signers, multisig)
If the signer cannot accept a raw secret key — e.g. a Phantom/Solflare extension, hardware wallet, multisig, or remote signer — build an unsigned transaction, sign it in your environment, and submit. Blueprint never sees the key in this flow either.
1. Generate or import the wallet locally
Same snippets as above (or use the Solana CLI / a wallet extension):
2. Fund the wallet
- From an exchange: Withdraw SOL to the public key address
- Devnet faucet (testing):
solana airdrop 2 <publicKey> --url devnet - Transfer from another wallet:
solana transfer <publicKey> 10 --url mainnet-beta
3. Check balance
4. Build an unsigned stake transaction
5. Sign locally and submit
Or post the signed transaction to POST /api/v1/transaction/submit instead of sending to a public RPC directly.
6. Verify on‑chain
- Solscan:
https://solscan.io/tx/<signature> - Solana Beach:
https://solanabeach.io/transaction/<signature> - Blueprint memo proof:
GET /api/v1/verify/transaction/{signature}
Custody Best Practices for Agents
- Generate the keypair in your runtime — never request a private key from a remote service.
- Never log secret keys — store in environment variables or encrypted secrets.
- Use separate wallets — one wallet per agent, separate from human wallets.
- Keep reserve SOL — always keep ~0.005 SOL unstaked for transaction fees.
- Monitor stake accounts — use
GET /api/v1/stake/accounts/{walletAddress}or webhook events. - Verify deployed code — call
verify_code_integrityto confirm Blueprint’s zero‑custody claims against the live source.
API Reference
30 REST endpoints. All return JSON. No authentication required. Base URL: https://solentic.theblueprint.xyz
{"error": "...", "message": "..."} with optional details array for Zod validation issues.HTTP status codes: 400 (validation), 404 (not found), 429 (rate limited), 502 (upstream RPC failure), 500 (server error).
Wallet
Returns local wallet generation instructions (JavaScript, Python, Solana CLI). No keypair is generated server-side.
Request: No body required.
Check the SOL balance of any wallet address.
Validator
Full validator profile with live data including APY, performance, and navigation metadata.
Live APY breakdown.
Live performance metrics.
Full hardware specs for both validator servers. Blueprint publishes infrastructure details for transparency.
Agent-First (One-Shot)
Build, sign, and submit in a single call. Pass your secretKey — used in-memory only for signing, never stored or logged. Verify the source code.
Stake SOL with Blueprint validator — one call, confirmed.
Request: { walletAddress, secretKey, amountSol }
Response: { signature, explorerUrl, stakeAccountAddress, security }
Deactivate a stake account — one call, confirmed. Cooldown begins.
Request: { walletAddress, secretKey, stakeAccountAddress }
Response: { signature, explorerUrl, epochTiming, security }
Withdraw SOL from a deactivated stake account — one call, confirmed.
Request: { walletAddress, secretKey, stakeAccountAddress, amountSol? }
Response: { signature, explorerUrl, security }
Monitoring
Per-account withdrawal readiness — withdrawReady: true/false, ETA epoch, seconds remaining.
Detect whether an address is a wallet, stake account, or vote account.
Webhooks
Register a callback URL for push notifications. Events: withdraw_ready, epoch_complete, stake_activated, stake_deactivated. Polls every 60s.
Request: { callbackUrl (HTTPS), walletAddress, events[] }
List registered webhooks for a wallet.
Delete a webhook registration.
Staking (Advanced — Unsigned Transactions)
Build an unsigned transaction to stake SOL with Blueprint.
Request:
Response:
warnings is included only when relevant (e.g., insufficient balance). rewardsEstimate shows projected rewards based on live APY.
Build an unsigned deactivate transaction. After deactivation, funds enter cooldown and become withdrawable at end of epoch (~2–3 days).
Request:
Returns epoch timing to estimate when funds become available. Error 400 if not a valid stake account.
Build an unsigned withdraw transaction. Only works on deactivated accounts that completed cooldown.
Request:
amountSol is optional — omit to withdraw full balance.
Submit a fully signed transaction to Solana. Use after signing an unsigned transaction from any building endpoint.
Request:
Response:
Project staking rewards before committing capital. Returns compound interest projections, effective APY, activation timing, and fee reserve guidance.
Request:
durationDays is optional (default: 365, max: 3650).
Complete staking portfolio dashboard in a single call. Replaces calling balance + accounts + APY + epoch endpoints separately.
Recommended actions: WITHDRAW, WAIT, HOLD, FUND, STAKE.
List all stake accounts delegated to Blueprint for a wallet.
Epoch & Analytics
Current Solana epoch timing. Useful for understanding when stake activations/deactivations take effect.
Platform analytics as JSON — REST endpoint usage, MCP tool calls, SSE connections, on-chain transactions, SOL flow, unique wallets. Human-readable dashboard at /analytics.
Support
Build an unsigned SOL transfer to the Blueprint donation address. Same zero-custody pattern — sign client-side, submit via submit endpoint. Body: {walletAddress, amountSol}.
Verification
Third-party verification URLs so agents can independently confirm all claims.
Code integrity verification — git commit, source file hashes, and direct links to read the deployed source code.
Verify whether a transaction was built through Blueprint by checking for the solentic.theblueprint.xyz Memo Program instruction on-chain.
Read the actual TypeScript source files running on this server. Available files: transaction.ts, mcp-server.ts, solana.ts, stake-routes.ts, discovery-routes.ts. Each response includes the SHA-256 hash in the X-SHA256 header.
Health
Service health check — returns status of Solana RPC and StakeWiz API connectivity.
Completing Transactions
All transaction-building endpoints return unsigned base64 transactions. Here’s how to sign and submit them.
Using @solana/web3.js (TypeScript/JavaScript)
Using curl + any signing tool
Using Blueprint’s Submit Endpoint
After signing, you can submit via Blueprint instead of directly to Solana RPC:
MCP Server
Connect MCP-compatible clients to Blueprint’s 26 tools for full staking lifecycle management.
Transport: Streamable HTTP at /mcp or SSE at /mcp/sse.
Available Tools
| Tool | Parameters | Description |
|---|---|---|
stake | walletAddress, secretKey, amountSol | One-shot: stake SOL — build, sign, submit in one call |
unstake | walletAddress, secretKey, stakeAccountAddress | One-shot: unstake — build, sign, submit in one call |
withdraw | walletAddress, secretKey, stakeAccountAddress, amountSol? | One-shot: withdraw — build, sign, submit in one call |
generate_wallet | none | Get local wallet generation code (JS, Python, CLI) |
check_balance | walletAddress | Check SOL balance — returns SOL, lamports, ready-to-stake status |
get_validator_info | none | Full Blueprint validator profile with live data |
get_staking_apy | none | Live APY breakdown: staking + Jito MEV |
get_performance_metrics | none | Vote success rate, uptime, skip rate, delinquency |
get_infrastructure | none | Full hardware specs for both servers |
check_stake_accounts | walletAddress | List all stake accounts delegated to Blueprint |
check_withdraw_ready | walletAddress | Per-account withdrawal readiness with ETA |
simulate_stake | amountSol, durationDays? | Project staking rewards with compound interest |
get_staking_summary | walletAddress | Complete portfolio dashboard with recommended action |
get_verification_links | none | URLs for independent verification |
verify_transaction | signature | Verify Blueprint memo on-chain |
verify_code_integrity | none | Read deployed source code and verify security |
create_stake_transaction | walletAddress, amountSol | Advanced: build unsigned stake tx (local signing) |
create_unstake_transaction | walletAddress, stakeAccountAddress | Advanced: build unsigned unstake tx (local signing) |
withdraw_stake | walletAddress, stakeAccountAddress, amountSol? | Advanced: build unsigned withdraw tx (local signing) |
submit_transaction | signedTransaction | Advanced: submit a pre-signed transaction to Solana |
get_epoch_timing | none | Current Solana epoch timing |
check_address_type | address | Detect wallet vs stake account vs vote account |
register_webhook | callbackUrl, walletAddress, events | Register push notification for state changes |
list_webhooks | walletAddress | List registered webhooks |
delete_webhook | webhookId | Delete a webhook registration |
donate | walletAddress, amountSol | Build unsigned SOL transfer to support Blueprint |
Claude Desktop
Add to claude_desktop_config.json:
Claude Code
Add to .mcp.json in your project:
CrewAI
LangChain
Use the OpenAPI spec at /openapi.json with LangChain’s OpenAPI Toolkit for automatic tool generation, or connect via MCP.
Agent Frameworks
Integration examples for popular agent frameworks. All use the REST API — the universal interface.
Solana Agent Kit (SendAI)
The Solana Agent Kit’s built-in staking only routes to Jupiter (JupSOL) and Solayer. For native staking to Blueprint, call the REST API directly:
Coinbase AgentKit
AgentKit doesn’t have a native SOL staking action. Use the REST API:
ElizaOS
Create an action in your Eliza agent that calls the Blueprint REST API. The response format is JSON — parse the base64 transaction, sign with the agent’s Solana wallet, and submit.
AutoGPT / Agent Zero / OpenClaw
These agents can discover Blueprint via web search and call the REST API directly. The OpenAPI spec at /openapi.json provides complete endpoint documentation that any HTTP-capable agent can parse.
FAQ
POST /api/v1/unstake with {walletAddress, secretKey, stakeAccountAddress} to deactivate in a single call. 2. Poll GET /api/v1/stake/accounts/{walletAddress}/withdraw-ready (or subscribe to a withdraw_ready webhook). 3. Call POST /api/v1/withdraw with the same shape to reclaim SOL.Unsigned‑tx flow (wallet extensions, multisig): use
POST /api/v1/unstake/transaction → sign locally → submit, then the same for /api/v1/withdraw/transaction after cooldown./api/v1/validator/apy for current breakdown.GET /api/v1/validator/infrastructure.Security Model
Blueprint’s security model is designed for zero-trust environments where agents operate autonomously.
- Zero private key exposure — Only unsigned transactions returned. Agents sign client-side.
- Ephemeral stake keypairs — Generated per-request for stake account creation, used for partialSign, never stored.
- Wallet as authority — Your wallet is always both stake AND withdraw authority. You can unstake and withdraw at any time.
- Input validation — All public keys validated as valid base58 Solana addresses via Zod + PublicKey constructor.
- Rate limiting — 100 requests per 60-second sliding window per IP.
- No authentication required — Public data + unsigned tx building needs no secrets.
- No custody — Blueprint never holds your SOL. Staked SOL is in a native Solana stake account controlled by your wallet.
- No slashing — Solana protocol does not slash. Your principal is always safe regardless of validator behavior.
Verification
Independently verify all Blueprint validator stats on third-party aggregators:
Transparency Commitment
Blueprint believes agents deserve the same level of due diligence data that institutional investors expect. Everything is public:
- Performance metrics — Live from StakeWiz API, not self-reported
- Commission rates — 0% block rewards, 500 bps Jito MEV. Published in OpenAPI spec, llms.txt, and on-chain
- Hardware specs — Exact CPU, RAM, storage, network for both servers
- Software version — Frankendancer. Verify on-chain via gossip protocol
No hidden fees. No undisclosed risks. No vague marketing language. Just data.
Analytics
Blueprint tracks activity through the Solentic APIs and tooling — REST endpoint usage, MCP tool calls, SSE connections, and confirmed on-chain transactions. No personal data is collected.
- Transaction counts — stake, unstake, withdraw, donate
- SOL flow — total staked, withdrawn, active (net), donated
- Unique wallets — distinct wallet addresses that have transacted
- Endpoint usage — hit counts per API endpoint
- Recent transactions — latest confirmed transactions with Solscan links
View the live analytics dashboard or fetch the machine-readable JSON at /analytics-json.