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

# Getting Started

<Warning>
  **You are viewing docs for the previous version of the Wallets SDK.** We recommend upgrading to V1.
  See the [updated version of this page](/sdk-reference/wallets/typescript/overview) or the [V1 migration guide](/wallets/guides/migrate-to-v1).
</Warning>

A Typescript SDK to interact with Crossmint Wallets. This SDK enables developers to easily create and manage wallets on Solana and EVM chains.

<CardGroup cols={2}>
  <Snippet file="before-you-start.mdx" />
</CardGroup>

<Steps>
  <Step title="Install the SDK">
    Run the following command to install the SDK:

    <Snippet file="wallets-sdk-installation-cmd.mdx" />
  </Step>

  <Step title="Create a wallet">
    ```tsx index.ts theme={null}
    import { CrossmintWallets, createCrossmint } from "@crossmint/wallets-sdk";

    const crossmint = createCrossmint({
        apiKey: "<your-client-OR-server-api-key>",
        jwt: "<your-jwt>", // required for client-side calls, optional for server-side calls
    });
    const crossmintWallets = CrossmintWallets.from(crossmint);
    const wallet = await crossmintWallets.getOrCreateWallet({
        chain: "<your-chain>",
        signer: {
            type: "email",
            email: "<your-email>",
        },
    });

    console.log(wallet.address);
    ```
  </Step>
</Steps>

## Wallet Examples

### Get wallet balances

```ts theme={null}
const balances = await wallet.balances();

console.log(balances.nativeToken.amount);
console.log(balances.usdc.amount);
```

### Transfer

```ts theme={null}
const transaction = await wallet.send(recipient, "usdc", "100");

console.log(transaction.explorerLink);
```

### Get wallet activity

```ts theme={null}
const activity = await wallet.experimental_activity();

console.log(activity.events);
```

### Operational signers

```ts theme={null}
// Add an operational signer
await wallet.addDelegatedSigner({ signer: "<signer-address>" });

const signers = await wallet.delegatedSigners();

console.log(signers);
```

### Create custom transactions

```ts theme={null}
import { SolanaWallet, EVMWallet } from "@crossmint/wallets-sdk";

// Solana
const solanaWallet = SolanaWallet.from(wallet);
const solTx = await solanaWallet.sendTransaction({ transaction: "<serialized-or-non-serialized-transaction>" });

console.log(solTx.explorerLink);

// EVM
const evmWallet = EVMWallet.from(wallet);
const evmTx = await evmWallet.sendTransaction({ transaction: "<serialized-or-non-serialized-transaction>" });

console.log(evmTx.explorerLink);
```

### Signers and custody

<CardGroup cols={2}>
  <Card title="Wallet Signers" icon="rocket" iconType="duotone" href="/wallets/v0/concepts/wallet-signers">
    Learn about signer types and how to choose the right ones.
  </Card>
</CardGroup>
