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

# EVM Services

> Interact with EVM-compatible blockchains for deposits, transfers using the Monei Node.js / TypeScript SDK.

# Overview

`monei.evm` provides methods to interact with EVM-compatible blockchains (BSC, Polygon, Ethereum, Base, Arbitrum, Optimism, Scroll, Lisk).

***

### Get Supported Networks

```typescript theme={null}
const { networks } = await monei.evm.getSupportedNetworks();
networks.forEach(n => console.log(n.name, n.chainId));
```

### Get Portfolio

Full token breakdown for a wallet on a given chain.

```typescript theme={null}
const portfolio = await monei.evm.getPortfolio(56); // BSC
console.log(portfolio.tokens);
```

### Get Native Balance

```typescript theme={null}
const { balance, symbol } = await monei.evm.getNativeBalance(137); // Polygon
console.log(`${balance} ${symbol}`);
```

### Get Token Balance

```typescript theme={null}
const { balance } = await monei.evm.getTokenBalance(
  '0xdAC17F958D2ee523a2206206994597C13D831ec7', // USDT contract
  1 // Ethereum
);

console.log(balance);
```

### Send Native Token

```typescript theme={null}
const tx = await monei.evm.sendNativeToken({
  to: '0xRecipientAddress',
  amount: '0.01',
  chainId: 56,
});

console.log(tx.txHash);
```

### Send ERC-20 Token

```typescript theme={null}
const tx = await monei.evm.sendToken({
  to: '0xRecipientAddress',
  tokenAddress: '0xTokenContractAddress',
  amount: '100',
  chainId: 137,
});

console.log(tx.txHash);
```

***

## Working with Response Objects

All methods return objects with property access:

```typescript theme={null}
// Supported networks response
const { networks } = await monei.evm.getSupportedNetworks();
networks.forEach(network => {
  console.log(network.name);      // Network name (e.g., "Ethereum")
  console.log(network.chainId);   // Chain ID (e.g., 1)
  console.log(network.symbol);    // Native token symbol (e.g., "ETH")
});

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

// Native balance response
const { balance, symbol } = await monei.evm.getNativeBalance(137);
console.log(balance);  // Native token balance
console.log(symbol);   // Token symbol (e.g., "MATIC")

// Token balance response
const { balance, decimals, symbol } = await monei.evm.getTokenBalance(
  '0xdAC17F958D2ee523a2206206994597C13D831ec7',
  1
);
console.log(balance);   // Token balance
console.log(decimals);  // Token decimals
console.log(symbol);    // Token symbol

// Transaction response
const tx = await monei.evm.sendNativeToken({...});
console.log(tx.txHash);       // Transaction hash
console.log(tx.status);       // Transaction status
console.log(tx.explorerUrl);  // Block explorer URL
console.log(tx.blockNumber);  // Block number
```

***

## Notes

* All methods require a properly configured `MoneiClient` instance with authentication
* EVM methods require `chainId` parameter (e.g., 56 for BSC, 137 for Polygon, 1 for Ethereum)
* Supported chains: BSC (56), Polygon (137), Ethereum (1), Base (8453), Arbitrum (42161), Optimism (10), Scroll (534352), Lisk (1135)
* All responses are strongly typed objects with property access

***
