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

# resumeHcaRegistration

Advance saved registration with explicit review/recovery inputs.

## Import

```ts
import { resumeHcaRegistration } from "@ensforge/core/hca";
```

## Usage

:::code-group
```ts [index.ts]
import { resumeHcaRegistration } from "@ensforge/core/hca";
import { config } from "./config";

const result = await resumeHcaRegistration(config, {
  id: "registration-instance-id",
});
```

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

## Parameters

```ts
import type { ResumeHcaRegistrationParameters } from "@ensforge/core/hca";
```

### limits

`HcaRegistrationLimits`

Accepted registration price and per-chain execution fee bounds.

### id

`string`

Saved operation identifier. Start registration can generate it from matching unfinished work.

### authorization

``{ readonly kind: "owner"; } | { readonly kind: "session"; readonly permissionId: `0x${string}`; readonly enableTransactionHash: `0x${string}`; } | undefined``

Owner authorization or an enabled destination session.

### signerReference

`string | undefined`

Protected application reference used to resolve a persistent session signer.

### submission

`HcaExecutionSubmission | undefined`

Previously returned or explicitly recovered execution submission.

### storage

`WorkflowStorage | HcaRegistrationStorage | undefined`

Optional storage override. Defaults to config storage.

### execution

`HcaRegistrationExecution | undefined`

Compatible execution adapter. Omit for direct owner execution when supported.

## Return Type

```ts
type ResumeHcaRegistrationResult = Awaited<ReturnType<typeof resumeHcaRegistration>>;
```

Narrow discriminated unions before accessing fields specific to a status or execution route.

| Property                 | Type                                                                                                                                                  |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `authorization`          | ``{ readonly kind: "owner"; } \| { readonly kind: "session"; readonly permissionId: `0x${string}`; readonly enableTransactionHash: `0x${string}`; }`` |
| `id`                     | `string`                                                                                                                                              |
| `chainId`                | `number`                                                                                                                                              |
| `owner`                  | `` `0x${string}` ``                                                                                                                                   |
| `profileId`              | `string`                                                                                                                                              |
| `salt`                   | `bigint`                                                                                                                                              |
| `hca`                    | `` `0x${string}` ``                                                                                                                                   |
| `registration`           | `ResumeHcaRegistrationResult["registration"]`                                                                                                         |
| `schemaVersion`          | `1`                                                                                                                                                   |
| `route`                  | `{ readonly kind: "owner"; } \| { readonly kind: "adapter"; readonly id: string; readonly instanceId: string; }`                                      |
| `revision`               | `number`                                                                                                                                              |
| `limits`                 | `ResumeHcaRegistrationResult["limits"]`                                                                                                               |
| `progress`               | `ResumeHcaRegistrationResult["progress"]`                                                                                                             |
| `createdAt`              | `bigint`                                                                                                                                              |
| `updatedAt`              | `bigint`                                                                                                                                              |
| `signerReference`        | `string \| undefined`                                                                                                                                 |
| `commitmentSubmission`   | `ResumeHcaRegistrationResult["commitmentSubmission"]`                                                                                                 |
| `registrationSubmission` | `ResumeHcaRegistrationResult["registrationSubmission"]`                                                                                               |

Registration results contain a commitment secret. Do not log or render the whole operation. Use [remote progress](/hca/remote) for a public response.

## Effect

Use `.effect` when composing the action in an Effect program. The success and error channels remain
fully typed.

```ts
import { Effect } from "effect";

const program = resumeHcaRegistration.effect(config, {
  id: "registration-instance-id",
});

type Success = Effect.Success<typeof program>;
type Failure = Effect.Error<typeof program>;

const result = await Effect.runPromise(program);
```

## Error

The Promise API rejects with the same typed failures exposed by the Effect error channel. Errors
have a stable `_tag`, `code`, and `message`; boundary errors retain their original `cause`.

See [Error Handling](/core/guides/error-handling).

## Related

* [`resumeHcaRegistration`](/sdk/api/hca/resume-hca-registration)
* [Guide](/core/guides/hca-registration)
