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

# Usage

Use the account and adapter from [Getting started](/hca/rhinestone/getting-started), then complete
[session setup](/hca/rhinestone/sessions). The same HCA address must have resolver permission.

## Update a record

The session key signs the reviewed intent. The owner does not sign this update again.

:::code-group
```ts [rhinestone-calls.ts]
// [!include ~/snippets/hca/guides/rhinestone-calls.ts]
```

```ts [session.ts]
// [!include ~/snippets/hca/guides/session.ts]
```

```ts [rhinestone.ts]
// [!include ~/snippets/hca/guides/rhinestone.ts]
```

```ts [account.ts]
// [!include ~/snippets/hca/guides/account.ts]
```

```ts [client.ts]
// [!include ~/snippets/hca/guides/client.ts]
```
:::

Inspect `outcome.status` before reporting completion. Save the submission reference when it is
returned; if waiting times out, reconcile it with the same adapter. Do not import the session-setup
module again simply to recover an already submitted intent.

## Batch supported calls

Put additional ENS `.call(...)` intents in `calls`. Each call must fit the enabled session policy and
the HCA's resolver permissions. A session for one resolver does not authorize calls to a different
resolver. The adapter checks the returned route and refuses extra source approvals or swaps.

## Register a name

Registration uses a session prepared for the chosen V2 resolver. Use this setup instead of the
record-update session when those resolver addresses differ.

:::code-group
```ts [rhinestone-registration.ts]
// [!include ~/snippets/hca/guides/rhinestone-registration.ts]
```

```ts [registration.ts]
// [!include ~/snippets/hca/guides/registration.ts]
```

```ts [rhinestone.ts]
// [!include ~/snippets/hca/guides/rhinestone.ts]
```
:::

`signerReference` is your application's lookup key for the protected session signer; it is not the
private key. Keep it stable when recovering saved work. The HCA needs the payment token even when
execution gas is sponsored.

Follow [Registration](/hca/guides/registration) for the commitment waiting period, funding pauses
and resumption. If the tokens are on another chain, first complete
[cross-chain funding](/hca/rhinestone/cross-chain), then start or resume registration normally.

## Route errors

An unsupported route can fail before anything is signed or submitted. It must not be retried by
removing route checks or increasing allowances. Token-paid refund routes are outside the current
supported boundary; use the default sponsored mode.
