> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monei.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Transactions

> Send and track your Solana blockchain transactions

## Overview

Send Solana transactions with near-instant finality. Monei handles signing, fees, and broadcasting on your behalf — you get back a transaction signature you can use to verify and track the transaction on any Solana block explorer.

**What you'll learn:**

* Send SOL and SPL tokens
* Track transaction status via block explorers
* Understand Solana transaction states
* Handle transaction failures

***

## How It Works

Monei is a **custodial wallet**. This means:

* You don't manage private keys or RPC connections
* Monei signs and broadcasts the transaction on your behalf
* Transaction fees (lamports) are handled internally — you don't estimate or set them
* After a transaction is sent, Monei returns a `signature` you can use to verify it on any Solana block explorer
* Blockchain transactions are **not stored** on Monei's backend — use an explorer for on-chain details

***

## Transaction Types

<CardGroup cols={2}>
  <Card title="SOL Transfer" icon="coins">
    Send native SOL to any address
  </Card>

  <Card title="SPL Token Transfer" icon="badge-dollar">
    Send USDC, USDT, or any SPL token
  </Card>
</CardGroup>

***

## Send SOL

Transfer native SOL to another Solana address.

<CodeGroup>
  ```javascript Node.js theme={null}
  import MoneiSDK from 'monei-sdk';

  const monei = new MoneiSDK({
    apiKey: process.env.MONEI_API_KEY,
  });

  // Send 0.5 SOL
  const tx = await monei.solana.sendNativeToken({
    to: '9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g',
    amount: '0.5',
    network: 'mainnet-beta', // optional, defaults to mainnet-beta
  });

  console.log('Transaction Signature:', tx.signature);
  console.log('View on Solscan:', `https://solscan.io/tx/${tx.signature}`);
  console.log('View on Explorer:', `https://explorer.solana.com/tx/${tx.signature}`);
  ```

  ```python Python theme={null}
  from monei import MoneiClient

  monei = MoneiClient(
      api_key=os.getenv('MONEI_API_KEY')
  )

  tx = monei.solana.send_native_token(
      to='9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g',
      amount='0.5',
      network='mainnet-beta',
  )

  print(f'Signature: {tx.signature}')
  print(f'Solscan: https://solscan.io/tx/{tx.signature}')
  print(f'Explorer: https://explorer.solana.com/tx/{tx.signature}')
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.monei.cc/api/v1/solana/transfer \
    -H "x-api-key: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "to": "9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g",
      "amount": "0.5",
      "network": "mainnet-beta"
    }'
  ```
</CodeGroup>

**Request Parameters:**

| Parameter | Type   | Required | Description                                                            |
| --------- | ------ | -------- | ---------------------------------------------------------------------- |
| `to`      | string | Yes      | Recipient Solana address (Base58)                                      |
| `amount`  | string | Yes      | Amount in SOL (e.g., `"0.5"` for 0.5 SOL)                              |
| `network` | string | No       | Network: `mainnet-beta`, `devnet`, `testnet` (default: `mainnet-beta`) |

**Response:**

```json theme={null}
{
  "statusCode": 200,
  "message": "Transfer successful",
  "data": {
    "signature": "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnTPLgTLpjvS3yJG3TBhVLiYt5mMXe4EH7zJ2VSkQfpYjG"
  }
}
```

> **Note:** Save the `signature` from the response — this is your reference for tracking the transaction on-chain.

***

## Send SPL Token

Transfer SPL tokens like USDC, USDT, or any SPL token.

<CodeGroup>
  ```javascript Node.js theme={null}
  // Send 100 USDC
  const tx = await monei.solana.sendToken({
    to: '9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g',
    tokenMintAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC mint
    amount: '100',
    network: 'mainnet-beta',
  });

  console.log('Transaction Signature:', tx.signature);
  console.log('View on Solscan:', `https://solscan.io/tx/${tx.signature}`);
  ```

  ```python Python theme={null}
  tx = monei.solana.send_token(
      to='9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g',
      token_mint_address='EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
      amount='100',
      network='mainnet-beta',
  )

  print(f'Signature: {tx.signature}')
  print(f'Solscan: https://solscan.io/tx/{tx.signature}')
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.monei.cc/api/v1/solana/transfer-token \
    -H "x-api-key: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "to": "9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g",
      "tokenMintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "amount": "100",
      "network": "mainnet-beta"
    }'
  ```
</CodeGroup>

**Request Parameters:**

| Parameter          | Type   | Required | Description                       |
| ------------------ | ------ | -------- | --------------------------------- |
| `to`               | string | Yes      | Recipient Solana address          |
| `tokenMintAddress` | string | Yes      | SPL token mint address            |
| `amount`           | string | Yes      | Amount in token units             |
| `network`          | string | No       | Network (default: `mainnet-beta`) |

**Response:**

```json theme={null}
{
  "statusCode": 200,
  "message": "Token transfer successful",
  "data": {
    "signature": "3yKGPvn2mVTpVqKLh9nWxkqVZL9RHkP2Uh8N5GqYqR7rRqKJ3sVHnT8LJ5VYqR7rRqKJ3sVHnT8LJ5VYqR7rR"
  }
}
```

***

## Transaction Lifecycle

Solana transactions are extremely fast with near-instant finality.

```mermaid theme={null}
graph LR
    A[Initiated] --> B[Broadcast]
    B --> C[Confirmed]
    C --> D[Finalized]
    B --> E[Failed]
```

**Transaction States:**

| State       | Description                                | Approximate Time |
| ----------- | ------------------------------------------ | ---------------- |
| `Initiated` | Transaction created and submitted by Monei | Instant          |
| `Broadcast` | Sent to the Solana network                 | \~0.1s           |
| `Confirmed` | Included in a block                        | \~0.4s           |
| `Finalized` | Confirmed by supermajority of the cluster  | \~1.0s           |
| `Failed`    | Transaction rejected or reverted           | \~0.5s           |

***

## Tracking Transactions

Since Monei does not store blockchain transactions on its backend, use the `signature` returned from the send response to track your transaction directly on a Solana block explorer.

**Confirmation Levels:**

| Level       | Description                     | Approximate Time |
| ----------- | ------------------------------- | ---------------- |
| `processed` | Transaction processed by a node | \~0.4s           |
| `confirmed` | Confirmed by the cluster        | \~0.8s           |
| `finalized` | Finalized with supermajority    | \~1.0s           |

For important transfers, wait for `finalized` status before treating the transaction as complete.

***

## Block Explorers

<Tabs>
  <Tab title="Solscan">
    **URL:** `https://solscan.io/tx/{signature}`

    **Features:**

    * Detailed transaction info
    * Token transfers breakdown
    * Account changes
    * Fee breakdown

    **Example:**

    ```
    https://solscan.io/tx/5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnTPLgTLpjvS3yJG3TBhVLiYt5mMXe4EH7zJ2VSkQfpYjG
    ```
  </Tab>

  <Tab title="Solana Explorer">
    **URL:** `https://explorer.solana.com/tx/{signature}`

    **Features:**

    * Official Solana explorer
    * Raw transaction data
    * Program logs
    * Compute units used

    **Example:**

    ```
    https://explorer.solana.com/tx/5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnTPLgTLpjvS3yJG3TBhVLiYt5mMXe4EH7zJ2VSkQfpYjG
    ```
  </Tab>

  <Tab title="SolanaFM">
    **URL:** `https://solana.fm/tx/{signature}`

    **Features:**

    * User-friendly interface
    * Transaction flow visualization
    * Human-readable logs

    **Example:**

    ```
    https://solana.fm/tx/5VERv8NMvzbJMEkV8xnrLkEaWRtSz9CosKDYjCJjBRnTPLgTLpjvS3yJG3TBhVLiYt5mMXe4EH7zJ2VSkQfpYjG
    ```
  </Tab>
</Tabs>

***

## Speed Comparison

| Network    | Block Time | Finality | Typical Confirmation |
| ---------- | ---------- | -------- | -------------------- |
| **Solana** | \~0.4s     | \~1.0s   | 1–2 seconds          |
| Ethereum   | \~12s      | \~3 min  | 3–5 minutes          |
| BSC        | \~3s       | \~45s    | \~1 minute           |
| Polygon    | \~2s       | \~4 min  | 4–5 minutes          |
| Base       | \~2s       | \~2s     | 2–5 seconds          |
| Arbitrum   | \~0.25s    | \~1 min  | 1–2 minutes          |

***

## Troubleshooting

<AccordionGroup>
  <Accordion icon="circle-xmark" title="Transaction Failed — Insufficient Balance">
    **Cause:** The sending wallet did not have enough SOL or token balance to complete the transfer.

    **Solution:** Ensure your Monei wallet holds sufficient balance before initiating a transfer. For SPL token transfers, the wallet also needs a small SOL balance — Monei handles fees internally, but if the custodial wallet's SOL balance is too low to cover lamport costs, the transaction may fail. Contact support if this persists.
  </Accordion>

  <Accordion icon="circle-xmark" title="Recipient Token Account Does Not Exist">
    **Cause:** The recipient address does not have an existing token account for the SPL token being sent.

    **What happens:** Monei will automatically create the recipient's token account as part of the transfer. This incurs a one-time rent fee (\~0.002 SOL) which is handled internally.

    **Note:** If the transfer fails due to this, contact support with your request details.
  </Accordion>

  <Accordion icon="circle-xmark" title="Transaction Simulation Failed">
    **Common causes:**

    * Insufficient wallet balance for the transfer amount
    * Invalid token mint address
    * Invalid recipient address format

    **Solution:** Verify the recipient address is a valid Base58 Solana address (32–44 characters), confirm the token mint address is correct, and ensure the wallet holds sufficient balance.
  </Accordion>

  <Accordion icon="clock" title="Transaction Taking Too Long">
    **Normal confirmation time:** 1–2 seconds

    **Actions:**

    1. Check the transaction on [Solscan](https://solscan.io) or [Solana Explorer](https://explorer.solana.com) using your signature
    2. Check the Solana network status at [status.solana.com](https://status.solana.com)
    3. Contact Monei support with your `signature` if the transaction is still unconfirmed after 1 minute
  </Accordion>

  <Accordion icon="exclamation-triangle" title="Invalid Address Format">
    **Cause:** The recipient address is not a valid Solana address.

    **Valid Solana address format:**

    * Base58 encoded
    * 32–44 characters
    * Only alphanumeric characters (no `0`, `O`, `I`, or `l`)
    * Example: `9B5XszUGdMaxCZ7uSQhPzdks5ZQSmWxrmzCSvtJ6Ns6g`

    **Solution:** Double-check the recipient address before sending. Solana addresses are case-sensitive.
  </Accordion>
</AccordionGroup>

***

## Best Practices

<CardGroup cols={2}>
  <Card title="Verify Addresses" icon="check-double">
    Always verify the recipient address before sending — Solana transactions are irreversible
  </Card>

  <Card title="Test Small First" icon="vial">
    Send a small test amount before large transfers
  </Card>

  <Card title="Save the Signature" icon="bookmark">
    Always store the signature from the response — it's your only reference for tracking the transaction on-chain
  </Card>

  <Card title="Verify on Explorer" icon="magnifying-glass">
    Use Solscan or Solana Explorer to confirm finality before treating a transaction as complete
  </Card>
</CardGroup>

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Wallet Operations" icon="wallet" href="/solana/wallet-operations">
    Learn about Solana wallet management
  </Card>

  <Card title="Token Swaps" icon="arrows-rotate" href="/solana/token-swaps">
    Swap SOL and SPL tokens on Jupiter
  </Card>

  <Card title="Transaction Management" icon="list" href="/transactions/management">
    Advanced transaction filtering
  </Card>

  <Card title="EVM Transactions" icon="ethereum" href="/evm-blockchain/transactions">
    Compare with EVM transactions
  </Card>
</CardGroup>
