> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://www.openfort.io/api/mcp` to find what you need.
>
> **Have feedback?** Use `submit_feedback` on the same MCP server.

# wallet\_sendCalls

Requests for the Wallet to broadcast a bundle of calls to the network.

## Request

```ts
type Request = {
  method: 'wallet_sendCalls',
  params: [{
    /** Calls to prepare. */
    calls: {
      /** Recipient. */
      to: `0x${string}`;
      /** Calldata. */
      data?: `0x${string}`;
      /** Value to transfer. */
      value?: `0x${string}`;
    }[];
    /** Chain ID. Ignored; the Wallet sends on its active chain. */
    chainId?: `0x${string}`;
    /** Address of the sender. Ignored; the Wallet sends from the connected account. */
    from?: `0x${string}`;
  }]
}
```

## Response

```ts
type Response = {
  /** The bundle ID (transaction intent ID). */
  id: string
}
```

## Example

:::warning
To make these instructions concrete, we have created a sample cross-app wallet called **Rapidfire ID**. To interact with it, you can find its SDK in the NPM package directory: [@rapidfire/id](https://www.npmjs.com/package/@rapidfire/id).

You can check out the GitHub [repository for Rapidfire Wallet](https://github.com/openfort-xyz/ecosystem-sample) to learn how to create your own wallet.
:::

### Mint ERC20 Tokens

The example below demonstrates minting 100 EXP twice.

An interactive demo, runnable on this page.

```ts
import RapidfireID from '@rapidfire/id'
import { encodeFunctionData, parseAbi, parseEther } from 'viem'

const rapidfire = new RapidfireID()
const provider = rapidfire.getEthereumProvider()


const [account] = await provider.request({
  method: 'eth_accounts',
})

const mintCall = {
  to: '0x706aa5c8e5cc2c67da21ee220718f6f6b154e75c',
  data: encodeFunctionData({
    abi: parseAbi([
      'function mint(address, uint256)',
    ]),
    functionName: 'mint',
    args: [account, parseEther('100')],
  }),
}

const { id } = await provider.request({
  method: 'wallet_sendCalls',
  params: [{
    calls: [mintCall, mintCall],
  }],
})
```

### Send a Transaction

```ts
import RapidfireID from '@rapidfire/id'

const rapidfire = new RapidfireID()
const provider = rapidfire.getEthereumProvider()


const response = await provider.request({
  method: 'wallet_sendCalls',
  params: [{
    calls: [{
      to: '0xcafebabecafebabecafebabecafebabecafebabe',
      value: '0x12345678',
    }],
  }]
})
```
