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

# AbstractJS SDK Reference

> Complete API reference for the AbstractJS SDK

The AbstractJS SDK provides a type-safe TypeScript interface for building gas-abstracted, cross-chain applications on the Biconomy stack.

## Installation

```bash theme={null}
npm install @biconomy/abstractjs viem
```

## Quick Reference

<CardGroup cols={2}>
  <Card title="Account" icon="wallet" href="/sdk-reference/account">
    `toMultichainNexusAccount`, `toNexusAccount`
  </Card>

  <Card title="Client" icon="plug" href="/sdk-reference/client">
    `createMeeClient`, `getQuote`, `executeQuote`
  </Card>

  <Card title="Instructions" icon="code" href="/sdk-reference/instructions">
    `buildComposable`, `build`
  </Card>

  <Card title="Runtime Functions" icon="syringe" href="/sdk-reference/runtime">
    `runtimeERC20BalanceOf`, `runtimeNativeBalanceOf`
  </Card>

  <Card title="Conditions" icon="shield-check" href="/sdk-reference/conditions">
    `createCondition`, `ConditionType`
  </Card>

  <Card title="Smart Sessions" icon="key" href="/sdk-reference/sessions">
    `getSessionQuote`, `signSessionQuote`, `executeSessionQuote`; `buildSessionAction`, `buildActionPolicy` (Account)
  </Card>

  <Card title="Utilities" icon="wrench" href="/sdk-reference/utilities">
    `getMeeScanLink`, `getMEEVersion`
  </Card>
</CardGroup>

## Core Imports

```typescript theme={null}
import {
  // Account
  toMultichainNexusAccount,
  toNexusAccount,
  
  // Client
  createMeeClient,
  
  // Runtime
  runtimeERC20BalanceOf,
  runtimeNativeBalanceOf,
  runtimeERC20AllowanceOf,
  runtimeParamViaCustomStaticCall,
  
  // Constraints
  greaterThanOrEqualTo,
  lessThanOrEqualTo,
  equalTo,
  
  // Conditions
  createCondition,
  ConditionType,
  
  // Sessions
  toSmartSessionsModule,
  meeSessionActions,
  getSudoPolicy,
  getUniversalActionPolicy,
  
  // Utilities
  getMeeScanLink,
  getMEEVersion,
  MEEVersion,
  
  // Types
  type MeeClient,
  type MultichainSmartAccount,
  type Instruction,
  type FeeTokenInfo,
  type Trigger,
} from "@biconomy/abstractjs";
```

## Version Constants

```typescript theme={null}
enum MEEVersion {
  V2_1_0 = "2.1.0",
  V2_2_0 = "2.2.0"
}

// Get version config
const version = getMEEVersion(MEEVersion.V2_1_0);
```

## Type Definitions

### FeeTokenInfo

```typescript theme={null}
type FeeTokenInfo = {
  address: Address;
  chainId: number;
};
```

### Trigger

```typescript theme={null}
type Trigger = {
  chainId: number;
  tokenAddress: Address;
  amount: bigint;
};
```

### Instruction

```typescript theme={null}
type Instruction = {
  chainId: number;
  calls: Call[];
  // Optional time bounds
  lowerBoundTimestamp?: number;
  upperBoundTimestamp?: number;
};

type Call = {
  to: Address;
  data?: Hex;
  value?: bigint;
};
```
