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

# Client Library

> Selected updates and improvements to the `@skip-go/client` [npm package](https://www.npmjs.com/package/@skip-go/client).

## v1.5.0

### Major Features

* **Gas on Receive Support:** Added `executeMultipleRoutes` function that enables simultaneous execution of multiple routes. This powers the gas on receive feature, allowing users to automatically receive native gas tokens on destination chains during cross-chain swaps. The function accepts multiple routes (e.g., main swap + gas fee route) and executes them in a shared transaction for Cosmos chains. [Learn more about Gas on Receive](/widget/gas-on-receive#client-library-usage).

## v1.1.9

### Enhancements

* **Batch Transaction Signing:** Added `batchSignTxs` parameter to `executeRoute`. When enabled (default: true), all transactions in a multi-transaction route are signed upfront before broadcasting, reducing the number of user prompts and improving the overall user experience.

## v1.1.0

### Enhancements

* **Transaction Timestamps:** The `ChainTransaction` type now includes an `on_chain_ts` field, providing a timestamp for when the transaction was confirmed on-chain. This can be useful for tracking and display purposes.
* **Exported JSON Types:** Relevant JSON types used by the client are now exported, improving the developer experience for those working directly with these underlying types.

## v1.0.0

This major release brings significant improvements to the `@skip-go/client` library, focusing on bundle size, developer experience, and performance. If you are upgrading from a version prior to v1.0.0, please see the [Migration Guide](../client/migration-guide) for detailed instructions. **For the best experience, including all subsequent enhancements and patches since the initial v1.0.0 release, we recommend upgrading directly to v1.1.0 or the latest available stable version.**

### Key Changes:

* **Improved Tree-Shaking:** The client library has been refactored to export separate functions instead of a single class. This allows for better tree-shaking, reducing the impact on your application's bundle size.
* **Consistent Naming Conventions:** All properties and variables now strictly follow camelCase (and PascalCase for enums). This change facilitates the auto-generation of interfaces based on the OpenAPI spec (swagger.yml) and simplifies the conversion between camelCase and snake\_case for API consumption.

## v0.10.3

* The `executeRoute` method now accepts `beforeMsg` and `afterMsg`  parameter to allow for the execution of custom Cosmos messages before/after the route is executed. This is useful for executing custom messages that are not part of the route definition.

```typescript theme={null}
// An example of how to use the `beforeMsg` parameter with a MsgSend
const msg = JSON.stringify({
  fromAddress: 'cosmos1...',  // Replace with sender address
  toAddress: 'cosmos1...',    // Replace with recipient address
  amount: [{
    denom: 'uatom',           // Replace with the actual denom, e.g., 'uatom' for ATOM
    amount: '1000000'         // Replace with the actual amount (in smallest unit, e.g., micro-ATOM)
  }]
});

await skip.executeRoute({
  route,
  userAddresses,
  beforeMsg: { msg, msgTypeURL: '/cosmos.bank.v1beta1.MsgSend' }
});
```

## v0.9.3

* Update client to include solana support via public RPC and show warning when public infrastructure is not overriden.

## v0.9.0

* Add `/balance` methods query API endpoint. See the [documentation](../client/balance-gas-and-fee-tooling) and the [API reference](/api-reference/prod/info/post-v2infobalances) for more details.
