# Koi Paymaster Service

By utilizing [zkSync Era account abstraction paymasters](https://era.zksync.io/docs/reference/concepts/account-abstraction.html#paymasters), Mute allows for gas to be paid with other tokens instead of ETH.&#x20;

{% hint style="info" %}
Instead of paying a transaction fee of $0.40 with ETH, the user can opt in to use any of the supported tokens below. The conversion price is based on the token/ETH LP pool on the Mute Switch.
{% endhint %}

This is a free to use service.

## Integration

You can easily integrate the Mute Paymaster into your dApp - [Official documentation](https://era.zksync.io/docs/api/js/features.html)\
\
[Official Paymaster Address](https://era.zksync.network/address/0x4ae2Ba9A5C653038C6d2F5D9F80B28011A454597)

```jsx
const PAYMASTER_ADDRESS = '0x4ae2Ba9A5C653038C6d2F5D9F80B28011A454597'
...
// approve the token for spending via the paymaster
... 
const greeting = "a new greeting";
const tx = await greeter.populateTransaction.setGreeting(greeting);
const gasPrice = await sender.provider.getGasPrice();
const gasLimit = await greeter.estimateGas.setGreeting(greeting);

const paymasterParams = utils.getPaymasterParams(testnetPaymaster, {
  type: "ApprovalBased",
  TOKEN_ADDRESS,
  minimalAllowance: ethers.BigNumber.from(1),,
  innerInput: new Uint8Array(),
});

const sentTx = await sender.sendTransaction({
  ...tx,
  maxFeePerGas: gasPrice,
  maxPriorityFeePerGas: BigNumber.from(0),
  gasLimit,
  customData: {
    gasPerPubdata: utils.DEFAULT_GAS_PER_PUBDATA_LIMIT,
    paymasterParams,
  },
});
```

## Supported Tokens

* [USDC](https://explorer.zksync.io/address/0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4)
* [WBTC](https://explorer.zksync.io/address/0xBBeB516fb02a01611cBBE0453Fe3c580D7281011)
* [MUTE](https://explorer.zksync.io/address/0x0e97C7a0F8B2C9885C8ac9fC6136e829CbC21d42)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.koi.finance/mute-switch/koi-paymaster-service.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
