Send SOL
Send native SOL to another wallet address on Solana. Simple value transfer using SystemProgram. Validates addresses and prevents self-transfers. Ideal for: payments, SOL distribution, funding accounts, automated payouts on Solana.
Catalog action Solana Onchain wallet send
Send native SOL to another wallet address on Solana. Simple value transfer using SystemProgram. Validates addresses and prevents self-transfers. Ideal for: payments, SOL distribution, funding accounts, automated payouts on Solana.
This action can require a wallet connector, gas, token movement, or an external side effect. Test with simulation or a controlled amount before using it in a live workflow.
At a Glance
| Field | Value |
|---|---|
| Action ID | send-sol |
| Category | Solana Onchain |
| Connector | wallet |
| Requires gas | No |
| Funds movement | send |
| Tags | blockchain, solana, native, transfer, sol, send, payment, write |
Payload Schema
| Field | Type | Required | Description |
|---|---|---|---|
recipientAddress | string | Yes | The Solana wallet address to send SOL to. |
amount | string | No | Amount of SOL to send in human-readable format (e.g., "1.5" for 1.5 SOL). Supports up to 9 decimal places. |
rawAmount | string | No | Raw amount in lamports (alternative to 'amount'). If provided, 'amount' is ignored. |
chainId | number | Yes | Solana network (Mainnet or Devnet) |
Result Schema
| Field | Type | Required | Description |
|---|---|---|---|
status | string | Yes | - |
signature | string | Yes | Transaction signature (base58 encoded) |
transactionHash | string | Yes | Transaction signature (aliased as transactionHash for workflow engine audit trail compatibility — the Go-side extractIndexedTransactionHashes looks for this key) |
slot | number | No | Slot number where the transaction was confirmed |
recipient | string | No | Recipient wallet address |
amount | string | No | Amount transferred in lamports |
formattedAmount | string | No | Human-readable amount in SOL (e.g., '1.5' instead of '1500000000') |
amountFormatted | string | No | Human-readable amount in SOL (alias of formattedAmount for backward compatibility) |
decimals | number | No | Number of decimal places (always 9 for SOL) |
chainId | number | No | Chain ID where the transaction was executed |
Examples
json{ "type": "send-sol", "payload": { "recipientAddress": "0x0000000000000000000000000000000000000000", "chainId": 7565164 }, "children": [], "connector": { "type": "wallet", "id": "conn_wallet" }}
bashcurl -X POST "https://api.b3os.org/v1/actions/send-sol/test" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "inputs": { "recipientAddress": "0x0000000000000000000000000000000000000000", "chainId": 7565164 }}'
Payload fields can use workflow expressions such as {{$trigger.body.amount}}, {{$nodes.fetch.result.price}}, and {{$props.asset}} when the value should come from a trigger, prior node, or reusable workflow prop.
