> **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 to send the calls to.
     * If not provided, the current chain will be used.
     */
    chainId?: `0x${string}`;
    /**
     * Address of the account to send the calls from.
     * If not provided, the Account will be filled by the Wallet.
     */
    from?: `0x${string}`;
    /** Capabilities. */
    capabilities?: {
      permissions?: {
        /** ID of the permission to use. */
        id: `0x${string}`;
      };
    };
  }]
}
```

## Response

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

## Example

:::warning
To make these instructions concrete, we have created a sample global 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 hash = await provider.request({
  method: 'wallet_sendCalls',
  params: [{
    calls: [{
      to: '0x706aa5c8e5cc2c67da21ee220718f6f6b154e75c',
      data: encodeFunctionData({
        abi: parseAbi([
          'function mint(address, uint256)',
        ]),
        functionName: 'mint',
        args: [account, parseEther('100')],
      }),
    }],
  }],
})
```

### 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',
    }],
  }]
})
```
