> ## 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.

# Solana Services

> Interact with the Solana blockchain — manage wallets, transfer tokens, and track transactions using the Monei Node.js / TypeScript SDK.

# Overview

`monei.solana` provides methods to interact with the Solana blockchain on mainnet or devnet.

***

### Get Wallet Address

```typescript theme={null}
const { address } = await monei.solana.getAddress();
console.log(address); // Base58 public key
```

### Get SOL Balance

```typescript theme={null}
import { SolanaNetwork } from 'monei-sdk';

const { balance } = await monei.solana.getNativeBalance(SolanaNetwork.MAINNET);
console.log(`${balance} SOL`);
```

### Get SPL Token Balance

```typescript theme={null}
const { balance } = await monei.solana.getTokenBalance(
  'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC mint
  SolanaNetwork.MAINNET
);

console.log(balance);
```

### Get Portfolio

```typescript theme={null}
const portfolio = await monei.solana.getPortfolio(SolanaNetwork.MAINNET);
console.log(portfolio.tokens);
```

### Send SOL

```typescript theme={null}
const { signature } = await monei.solana.sendNativeToken({
  to: 'RecipientPublicKey',
  amount: '0.5',
  network: SolanaNetwork.MAINNET,
});

console.log(signature);
```

### Send SPL Token

```typescript theme={null}
const { signature } = await monei.solana.sendToken({
  to: 'RecipientPublicKey',
  tokenMintAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
  amount: '50',
  network: SolanaNetwork.MAINNET,
});

console.log(signature);
```

***

## Working with Response Objects

All methods return objects with property access:

```typescript theme={null}
// Wallet address response
const { address } = await monei.solana.getAddress();
console.log(address);      // Base58 public key

// SOL balance response
const { balance, symbol, decimals } = await monei.solana.getNativeBalance(
  SolanaNetwork.MAINNET
);
console.log(balance);   // SOL balance
console.log(symbol);    // "SOL"
console.log(decimals);  // Token decimals

// SPL token balance response
const { balance, symbol, decimals, mintAddress } = 
  await monei.solana.getTokenBalance(
    'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
    SolanaNetwork.MAINNET
  );
console.log(balance);      // Token balance
console.log(symbol);       // Token symbol (e.g., "USDC")
console.log(decimals);     // Token decimals
console.log(mintAddress);  // Token mint address

// Portfolio response
const portfolio = await monei.solana.getPortfolio(SolanaNetwork.MAINNET);
console.log(portfolio.tokens);       // Array of token balances
console.log(portfolio.totalValue);   // Total portfolio value in USD

// Transaction response (send SOL/SPL)
const { signature, blockhash, status, explorerUrl } = 
  await monei.solana.sendNativeToken({
    to: 'RecipientPublicKey',
    amount: '0.5',
    network: SolanaNetwork.MAINNET,
  });
console.log(signature);     // Transaction signature
console.log(blockhash);     // Block hash
console.log(status);        // Transaction status
console.log(explorerUrl);   // Solana explorer URL
```

***

## Network Options

```typescript theme={null}
import { SolanaNetwork } from 'monei-sdk';

// Mainnet (production)
const mainnetBalance = await monei.solana.getNativeBalance(SolanaNetwork.MAINNET);

// Devnet (testing)
const devnetBalance = await monei.solana.getNativeBalance(SolanaNetwork.DEVNET);
```

***

## Notes

* All methods require a properly configured `MoneiClient` instance with authentication
* Network parameter accepts: `SolanaNetwork.MAINNET` or `SolanaNetwork.DEVNET`
* All responses are strongly typed objects with property access
* SPL token addresses are mint addresses (Base58 format)
* Transaction signatures can be viewed on [Solana Explorer](https://explorer.solana.com)

***
