Solana Send SOL Tool

Solana Send SOL Tool (solana_send_sol_tool)

Performs an on-chain transaction to send a specified amount of SOL from the agent's (user's) wallet to a recipient's Solana address. Exercise caution as this involves real fund transfers.

Inputs: Requires sender's wallet details, recipient, and amount.

class SolanaSendSolInput(BaseModel):
    agent_public: str      # Sender's public key
    agent_private: str     # Sender's ENCRYPTED private key
    recipient_address: str # Recipient's Solana address
    amount_sol: float      # Amount of SOL to send (e.g., 0.1)

Key Functionality:

  • Securely decrypts the provided agent's private key.

  • Validates the amount and checks the sender's SOL balance.

  • Constructs and sends a versioned transaction to the Solana network to transfer SOL.

  • Returns a confirmation with the transaction signature and an explorer link upon success.


Sample Usage Queries (How an AI might use it): (These imply the agent has access to or will securely prompt for necessary wallet details)

  • "Send 0.5 SOL to RecipientPublicKeyHere from my wallet."

  • "Transfer 1.2 SOL from my primary account to FriendAddress."

  • "I need to send AmountX SOL to DestinationAddress."

  • "Initiate a SOL payment of Y to address Z."

  • "Execute a transaction: send 0.05 SOL to AnotherWalletAddress."

  • "Help me send SOL from my wallet." (Agent would then gather parameters)


Quick Code Glance:

class SolanaSendSolTool(BaseTool):
    name: ClassVar[str] = "solana_send_sol_tool"
    description: ClassVar[str] = "Send SOL from agent wallet to a specified Solana address."
    args_schema: ClassVar[Type[BaseModel]] = SolanaSendSolInput

⚠️ CRITICAL INFORMATION & SECURITY:

  • Real Transactions: This tool executes actual SOL transfers on the Solana blockchain. Transactions are irreversible.

  • Encrypted Private Key: Requires the agent's encrypted private key. The security of the encryption/decryption mechanism (WalletDecryptor) is paramount. Never expose raw private keys.

  • Network Dependent: Relies on a connection to a Solana RPC node (CONFIG.SOLANA_RPC_URL).

  • Asynchronous: Primarily designed for asynchronous execution (_arun).

Last updated