> **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.

# Introduction

An HCA is a smart account for ENS. It has its own address, holds funds and executes calls as that
address. Its owner can act directly or enable a constrained session so an application can perform
specific ENS operations without asking the owner to sign every call.

`@ensforge/hca` connects those accounts to execution providers. You keep using `sdk.hca`, core actions
or React hooks; adding a provider does not create a second ENS client.

## Choose how to execute

| Path         | Who authorizes calls?                  | Who pays execution gas?   | Start here                                       |
| ------------ | -------------------------------------- | ------------------------- | ------------------------------------------------ |
| Owner wallet | The HCA owner                          | Owner wallet              | [Accounts and permissions](/hca/guides/accounts) |
| Pimlico      | The owner signs a UserOperation        | Paymaster, or HCA funds   | [Pimlico](/hca/pimlico/getting-started)          |
| Rhinestone   | An enabled session key signs an intent | Sponsored by the provider | [Rhinestone](/hca/rhinestone/getting-started)    |

Pimlico is useful when you want owner execution with optional gas sponsorship. Rhinestone is useful
when an application needs to reuse an authorized session. Rhinestone also exposes independent
[cross-chain funding](/hca/rhinestone/cross-chain) before normal ENS registration.

## Understand the two permissions

The owner or session authorizes **the HCA to execute**. The ENS name or resolver must separately
authorize **the HCA address to update records**. Connecting a wallet or enabling a session does not
automatically grant resolver permissions.

The usual flow is to deploy an account, grant it the required ENS permission, choose an execution
path, then submit and confirm the call. [Registration](/hca/guides/registration) additionally has a
commitment waiting period and a separate name price.

## Start building

1. [Install the packages](/hca/installation).
2. Follow your provider's getting-started guide, or [use the owner wallet](/hca/guides/accounts).
3. Add [storage and recovery](/hca/guides/storage) before running workflows across restarts.

The supplied deployment profile targets Sepolia. See [Supported deployments](/hca/compatibility)
for the account generation and provider limitations. Read playgrounds throughout core, SDK and React
use a deployed Sepolia example and never submit transactions.
