> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://ensforge.com/api/mcp` to find what you need.

# Gas and sponsorship

Gas sponsorship applies to the UserOperation. It does not fund the name price, resolver permission
transactions sent by the owner, or an explicit owner deployment.

## Default sponsorship

The [getting-started adapter](/hca/pimlico/getting-started) uses `sponsorship: {}`. Pimlico chooses
its default policy for the configured API endpoint.

## Select a policy

Use a policy created for your application. Keep policy restrictions aligned with the chain, HCA and
calls you intend to sponsor.

```ts [execution.ts]
import { pimlico } from "@ensforge/hca/pimlico";
import { sepolia } from "viem/chains";

import { owner, profile } from "./client";
import { pimlicoClient } from "./pimlico";

export const execution = pimlico({
  profile,
  chain: sepolia,
  owner,
  client: pimlicoClient,
  sponsorship: { policyId: "your-policy-id" },
});
```

You can also supply a separate sponsorship client through `sponsorship.client`. It must expose
`getPaymasterData` and `getPaymasterStubData`; see the [Pimlico API](/hca/api/pimlico).

## Pay from the HCA

Omit `sponsorship` entirely to create a self-funded adapter:

```ts [execution.ts]
import { pimlico } from "@ensforge/hca/pimlico";
import { sepolia } from "viem/chains";

import { owner, profile } from "./client";
import { pimlicoClient } from "./pimlico";

export const execution = pimlico({
  profile,
  chain: sepolia,
  owner,
  client: pimlicoClient,
});
```

Fund the HCA with Sepolia ETH or [add an EntryPoint deposit](/sdk/api/hca/add-hca-deposit). The
adapter checks available prefund before submitting. ETH held only by the owner does not count as
HCA prefund. Value transfers also require enough ETH in the HCA itself.

## Handle rejection

A rejected sponsorship request returns an error. The adapter never switches to spending HCA funds
without an explicit configuration change. Review revised fee limits or policy conditions before retrying.
If a submission hash already exists, reconcile its status before trying another payment path.
