Servidor MCP

Blueprint Agentic Staking (Solentic)

io.github.blueprint-infrastructure/solentic
Cripto y Web3 Finanzas e inversión Público y accesible MCP 2025-11-25

Qué hace este MCP

Manages native Solana staking workflows, including balance and validator information, staking, unstaking, withdrawals, reward projections, autopilot policies, webhooks, and transaction verification.

check_address_type
Check Address Type
Detect whether a Solana address is a wallet, stake account, or vote account. Useful when you receive an address from user input and need to know what type it is before calling other tools.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['address'], 'properties': {'address': {'type': 'string', 'maxLength': 50, 'description': 'Solana address (base58 public key) to identify'}}, 'additionalProperties': False}
check_balance
Check Balance
Check the SOL balance of any Solana wallet address. Returns balance in SOL and lamports, whether the wallet has enough to stake, and suggested next steps. Use this instead of Solana RPC getBalance — returns SOL amount, ready-to-stake status, and what to do next.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress'], 'properties': {'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Solana wallet address (base58 public key) to check balance for'}}, 'additionalProperties': False}
check_stake_accounts
Check Stake Accounts
List all stake accounts delegated to Blueprint for a wallet. Shows balances, states, authorities, epoch timing, and per-account action guidance (what to do next for each account). Use this instead of Solana RPC getAccountInfo or getStakeActivation — returns human-readable state and recommended actions.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress'], 'properties': {'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Wallet address to check for Blueprint stake accounts'}}, 'additionalProperties': False}
check_withdraw_ready
Check Withdraw Ready
Check whether stake accounts are ready to withdraw. Returns per-account readiness with withdrawable epoch, estimated seconds remaining, and plain-English state description. Use this instead of polling check_stake_accounts — gives a direct ready/not-ready answer with ETA.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress'], 'properties': {'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Wallet address to check withdrawal readiness for'}}, 'additionalProperties': False}
create_stake_transaction
Create Stake Transaction
Advanced: Build an unsigned stake transaction for local signing. Most agents should use the `stake` tool instead, which handles signing and submission automatically. This tool is for agents that manage their own signing infrastructure.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress', 'amountSol'], 'properties': {'amountSol': {'type': 'number', 'maximum': 9000000, 'description': 'Amount of SOL to stake (minimum 0.00228288 SOL for rent exemption)', 'exclusiveMinimum': 0}, 'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Solana wallet address (base58 public key) that will fund and control the stake'}}, 'additionalProperties': False}
create_unstake_transaction
Create Unstake Transaction
Advanced: Build an unsigned unstake transaction for local signing. Most agents should use the `unstake` tool instead, which handles signing and submission automatically.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress', 'stakeAccountAddress'], 'properties': {'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Wallet address that is the stake authority'}, 'stakeAccountAddress': {'type': 'string', 'maxLength': 50, 'description': 'Stake account address to deactivate'}}, 'additionalProperties': False}
delete_staking_policy
Delete Autopilot Staking Policy
Remove a wallet's Autopilot policy. Sign EXACTLY this newline-separated message and pass the base58 signature: "solentic-autopilot-delete:v1\nwallet=<walletAddress>\nnonce=<nonce>". nonce must exceed the current policy nonce.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress', 'nonce', 'signature'], 'properties': {'nonce': {'type': 'integer', 'minimum': 0, 'description': 'Strictly increasing replay guard'}, 'signature': {'type': 'string', 'description': 'base58 Ed25519 signature over the canonical delete message'}, 'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Wallet address'}}, 'additionalProperties': False}
delete_webhook
Delete Webhook
Delete a webhook registration by ID. Use list_webhooks to find webhook IDs.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['webhookId', 'walletAddress'], 'properties': {'webhookId': {'type': 'string', 'description': 'Webhook registration ID to delete'}, 'walletAddress': {'type': 'string', 'maxLength': 50, 'description': "Wallet that owns the webhook (required â\x80\x94 prevents deleting another wallet's webhooks)"}}, 'additionalProperties': False}
donate
Donate to Blueprint
Build an unsigned SOL transfer to support Blueprint development. Blueprint provides free staking infrastructure for AI agents — donations help sustain enterprise hardware and development. Same zero-custody pattern: unsigned transaction returned, you sign client-side. Suggested amounts: 0.01 SOL (thank you), 0.1 SOL (generous), 1 SOL (patron).
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress', 'amountSol'], 'properties': {'amountSol': {'type': 'number', 'maximum': 1000, 'minimum': 0.001, 'description': 'Amount of SOL to donate (minimum 0.001 SOL)', 'exclusiveMinimum': 0}, 'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Wallet address to donate from'}}, 'additionalProperties': False}
generate_wallet
Generate Wallet
Returns runnable code that creates a Solana keypair. Solentic cannot generate the keypair for you and never sees the private key — generation must happen wherever you run code (the agent process, a code-interpreter tool, a Python/Node sandbox, the user's shell). The response includes the snippet ready to execute. After running it, fund the resulting publicKey and call the `stake` tool with {walletAddress, secretKey, amountSol} to stake in one call.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
get_epoch_timing
Get Epoch Timing
Get current Solana epoch timing: progress percentage, slots remaining, and estimated epoch end time. Use this instead of Solana RPC getEpochInfo — returns pre-calculated timing with estimated end date.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
get_infrastructure
Get Infrastructure
Get Blueprint validator infrastructure specs: server hardware, redundancy configuration, network, and storage. Two bare-metal servers (redundant HA).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
get_performance_metrics
Get Performance Metrics
Get Blueprint validator performance: vote success rate, uptime, skip rate, epoch credits, delinquency status.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
get_staking_apy
Get Staking APY
Get live APY breakdown: base staking APY + Jito MEV APY = total APY. Includes commission rates. Data from StakeWiz API.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
get_staking_policy
Get Autopilot Staking Policy
Read the current Autopilot policy for a wallet (or null if none). Shows keepLiquidSol, minSweepSol, paused, nonce, and the last epoch a sweep was delivered.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress'], 'properties': {'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Wallet address'}}, 'additionalProperties': False}
get_staking_summary
Get Staking Summary
Complete staking portfolio dashboard in a single call. Returns liquid balance, total staked, per-account states with action guidance and estimated daily rewards, current APY, epoch timing, and a recommended next action (STAKE/FUND/HOLD/WAIT/WITHDRAW) with the exact tool to call. Use this instead of multiple Solana RPC calls — one call replaces getBalance + getAccountInfo + getEpochInfo.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress'], 'properties': {'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Solana wallet address (base58 public key) to get staking summary for'}}, 'additionalProperties': False}
get_validator_info
Get Validator Info
Get Blueprint validator profile: identity, vote account, commission, active stake, APY, performance, software, location. Live data from StakeWiz API.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
get_verification_links
Get Verification Links
Get third-party verification URLs for Blueprint validator on Validators.app, StakeWiz, Solana Beach, Solscan, JPool, SVT.one, and Jito steward dashboard. Verify every claim independently. Also includes Solana CLI commands for direct on-chain verification.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
list_webhooks
List Webhooks
List all registered webhooks for a wallet address.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress'], 'properties': {'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Wallet address to list webhooks for'}}, 'additionalProperties': False}
register_webhook
Register Webhook
Register a callback URL to receive push notifications when stake state changes. Events: withdraw_ready (stake account becomes withdrawable), epoch_complete (new epoch starts), stake_activated (stake begins earning), stake_deactivated (unstake confirmed). Solentic polls every 60 seconds and POSTs to your URL when events fire.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress', 'events'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'pattern': '^https:\\/\\/', 'description': 'Alias for callbackUrl â\x80\x94 either field works'}, 'events': {'type': 'array', 'items': {'enum': ['withdraw_ready', 'epoch_complete', 'stake_activated', 'stake_deactivated'], 'type': 'string'}, 'maxItems': 4, 'minItems': 1, 'description': 'Event types to subscribe to'}, 'callbackUrl': {'type': 'string', 'format': 'uri', 'pattern': '^https:\\/\\/', 'description': 'HTTPS callback URL to receive webhook POST requests'}, 'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Wallet address to monitor for state changes'}}, 'additionalProperties': False}
set_staking_policy
Set Autopilot Staking Policy
Hand Solentic a standing, signature-bound policy so it automatically stakes your IDLE SOL with Blueprint — zero custody. You sign the policy ONCE with your wallet key (Ed25519 over the exact canonical message below — NEVER your secret key). When idle SOL above keepLiquidSol exceeds minSweepSol, Solentic builds an UNSIGNED stake transaction and POSTs it to your callbackUrl for you to sign and submit; Solentic never holds your key. Native Solana stake already auto-compounds, so delegated rewards keep earning automatically. Amounts in the signed message are INTEGER LAMPORTS = round(SOL * 1e9), so there is no float ambiguity. Sign EXACTLY this newline-separated message, then pass the base58 signature: "solentic-autopilot-policy:v1\nwallet=<walletAddress>\nkeepLiquidLamports=<round(keepLiquidSol*1e9)>\nminSweepLamports=<round(minSweepSol*1e9)>\ncallbackUrl=<callbackUrl>\npaused=<true|false>\nnonce=<nonce>". nonce must strictly increase on each update.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress', 'keepLiquidSol', 'minSweepSol', 'callbackUrl', 'nonce', 'signature'], 'properties': {'nonce': {'type': 'integer', 'minimum': 0, 'description': 'Strictly increasing replay guard'}, 'paused': {'type': 'boolean', 'description': 'If true, the policy is stored but inactive'}, 'signature': {'type': 'string', 'description': 'base58 Ed25519 signature over the canonical policy message'}, 'callbackUrl': {'type': 'string', 'format': 'uri', 'pattern': '^https:\\/\\/', 'description': 'HTTPS URL to receive unsigned stake transactions'}, 'minSweepSol': {'type': 'number', 'maximum': 9000000, 'description': 'Only stake when idle surplus is at least this many SOL', 'exclusiveMinimum': 0}, 'keepLiquidSol': {'type': 'number', 'maximum': 9000000, 'minimum': 0, 'description': 'SOL to always keep liquid (not staked)'}, 'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Wallet whose idle SOL is managed'}}, 'additionalProperties': False}
simulate_stake
Simulate Stake
Project staking rewards before committing capital. Returns reward projections (daily/monthly/annual/total), effective APY (equal to the stated APY, since total_apy is already an annual yield), activation timing, fee reserve guidance, and a natural-language recommendation. Use this to help decide how much to stake and for how long.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['amountSol'], 'properties': {'amountSol': {'type': 'number', 'maximum': 9000000, 'description': 'Amount of SOL to simulate staking', 'exclusiveMinimum': 0}, 'durationDays': {'type': 'integer', 'default': 365, 'maximum': 3650, 'minimum': 1, 'description': 'Projection duration in days (default: 365)'}}, 'additionalProperties': False}
stake
Stake SOL (one-shot)
Stake SOL with Blueprint validator in a single call. Builds the transaction, signs it with your secret key in-memory, and submits to Solana. Returns the confirmed transaction signature. Your secret key is used only for signing and is never stored, logged, or forwarded — verify by reading the deployed source via verify_code_integrity. This is the recommended tool for autonomous agents.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress', 'secretKey', 'amountSol'], 'properties': {'amountSol': {'type': 'number', 'maximum': 9000000, 'description': 'Amount of SOL to stake', 'exclusiveMinimum': 0}, 'secretKey': {'type': 'string', 'pattern': '^[1-9A-HJ-NP-Za-km-z]+$', 'maxLength': 100, 'minLength': 80, 'description': 'Your base58-encoded secret key â\x80\x94 used in-memory for signing only, never stored'}, 'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Your Solana wallet address (base58 public key)'}}, 'additionalProperties': False}
submit_transaction
Submit Transaction
Advanced: Submit a pre-signed transaction to Solana. Only needed if you used create_stake_transaction/create_unstake_transaction/withdraw_stake and signed locally. Most agents should use the one-shot stake/unstake/withdraw tools instead.
Destructivo Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['signedTransaction'], 'properties': {'signedTransaction': {'type': 'string', 'maxLength': 2200, 'minLength': 1, 'description': 'Fully signed transaction as a base64-encoded string'}}, 'additionalProperties': False}
unstake
Unstake SOL (one-shot)
Deactivate a stake account in a single call. Builds the transaction, signs it, and submits it. The stake enters a cooldown period (~1 epoch) and becomes withdrawable at the next epoch boundary. Use check_withdraw_ready to poll readiness, then withdraw to reclaim SOL. This is the recommended tool — use create_unstake_transaction only if you manage your own signing.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress', 'secretKey', 'stakeAccountAddress'], 'properties': {'secretKey': {'type': 'string', 'pattern': '^[1-9A-HJ-NP-Za-km-z]+$', 'maxLength': 100, 'minLength': 80, 'description': 'Your base58-encoded secret key â\x80\x94 used in-memory for signing only, never stored'}, 'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Your Solana wallet address (stake authority)'}, 'stakeAccountAddress': {'type': 'string', 'maxLength': 50, 'description': 'Stake account address to deactivate'}}, 'additionalProperties': False}
verify_code_integrity
Verify Code Integrity
Verify the code running on Blueprint servers. Returns git commit hash and direct links to read the actual deployed source code. Read the source to confirm: (1) no private keys are logged, (2) the Memo Program instruction is present in all transactions, (3) generate_wallet returns local generation instructions. Don't trust — read the code yourself via the source endpoints.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {}}
verify_transaction
Verify Transaction
Verify whether a Solana transaction was built through Blueprint. Checks the transaction on-chain for the "solentic.theblueprint.xyz" Memo Program instruction. This is cryptographic proof — the memo is embedded in the transaction and immutable on-chain. Use this to verify any claim that a stake was placed through Blueprint. Returns verified: true/false with the on-chain evidence.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['signature'], 'properties': {'signature': {'type': 'string', 'maxLength': 100, 'description': 'Solana transaction signature to verify'}}, 'additionalProperties': False}
withdraw
Withdraw SOL (one-shot)
Withdraw SOL from a deactivated stake account in a single call. Builds the transaction, signs it, and submits it. Funds are returned to your wallet. Use check_withdraw_ready first to confirm the account is ready. Omit amountSol to withdraw the full balance. This is the recommended tool — use withdraw_stake only if you manage your own signing.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress', 'secretKey', 'stakeAccountAddress'], 'properties': {'amountSol': {'anyOf': [{'type': 'number', 'maximum': 9000000, 'exclusiveMinimum': 0}, {'type': 'null'}], 'description': 'Amount to withdraw in SOL (omit to withdraw full balance)'}, 'secretKey': {'type': 'string', 'pattern': '^[1-9A-HJ-NP-Za-km-z]+$', 'maxLength': 100, 'minLength': 80, 'description': 'Your base58-encoded secret key â\x80\x94 used in-memory for signing only, never stored'}, 'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Your Solana wallet address (withdraw authority)'}, 'stakeAccountAddress': {'type': 'string', 'maxLength': 50, 'description': 'Deactivated stake account to withdraw from'}}, 'additionalProperties': False}
withdraw_stake
Withdraw Stake
Advanced: Build an unsigned withdraw transaction for local signing. Most agents should use the `withdraw` tool instead, which handles signing and submission automatically.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['walletAddress', 'stakeAccountAddress'], 'properties': {'amountSol': {'anyOf': [{'type': 'number', 'maximum': 9000000, 'exclusiveMinimum': 0}, {'type': 'null'}], 'description': 'Amount to withdraw in SOL (omit or null to withdraw full balance)'}, 'walletAddress': {'type': 'string', 'maxLength': 50, 'description': 'Wallet address that is the withdraw authority'}, 'stakeAccountAddress': {'type': 'string', 'maxLength': 50, 'description': 'Deactivated stake account to withdraw from'}}, 'additionalProperties': False}
Añadido
delete_staking_policy
17 de September de 2026 a las 12:40
Añadido
get_staking_policy
17 de September de 2026 a las 12:40
Añadido
set_staking_policy
17 de September de 2026 a las 12:40
Añadido
delete_webhook
17 de September de 2026 a las 12:40
Añadido
list_webhooks
17 de September de 2026 a las 12:40
Añadido
register_webhook
17 de September de 2026 a las 12:40
Añadido
check_address_type
17 de September de 2026 a las 12:40
Añadido
get_epoch_timing
17 de September de 2026 a las 12:40
Añadido
donate
17 de September de 2026 a las 12:40
Añadido
get_staking_summary
17 de September de 2026 a las 12:40
Añadido
simulate_stake
17 de September de 2026 a las 12:40
Añadido
verify_code_integrity
17 de September de 2026 a las 12:40
Añadido
verify_transaction
17 de September de 2026 a las 12:40
Añadido
get_infrastructure
17 de September de 2026 a las 12:40
Añadido
submit_transaction
17 de September de 2026 a las 12:40
Añadido
check_balance
17 de September de 2026 a las 12:40
Añadido
generate_wallet
17 de September de 2026 a las 12:40
Añadido
get_verification_links
17 de September de 2026 a las 12:40
Añadido
check_withdraw_ready
17 de September de 2026 a las 12:40
Añadido
check_stake_accounts
17 de September de 2026 a las 12:40
Añadido
withdraw_stake
17 de September de 2026 a las 12:40
Añadido
create_unstake_transaction
17 de September de 2026 a las 12:40
Añadido
create_stake_transaction
17 de September de 2026 a las 12:40
Añadido
get_performance_metrics
17 de September de 2026 a las 12:40
Añadido
get_staking_apy
17 de September de 2026 a las 12:40
Añadido
get_validator_info
17 de September de 2026 a las 12:40
Añadido
withdraw
17 de September de 2026 a las 12:40
Añadido
unstake
17 de September de 2026 a las 12:40
Añadido
stake
17 de September de 2026 a las 12:40