> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genlabs.co/llms.txt
> Use this file to discover all available pages before exploring further.

# AbiContractRefDef

> **AbiContractRefDef** = \{ `instance`: \{ `component_code_name`: [`ComponentCodeName`](/reference/sdk/typescript/index/type-aliases/ComponentCodeName); `component_type_index?`: `number` | `null`; `contract?`: `string` | `null`; `contract_instance_name`: [`ContractInstanceName`](/reference/sdk/typescript/index/type-aliases/ContractInstanceName); }; } | \{ `implementation`: \{ `code_id?`: `string` | `null`; `component_code_name`: [`ComponentCodeName`](/reference/sdk/typescript/index/type-aliases/ComponentCodeName); `component_type_index?`: `number` | `null`; }; } | \{ `self_ref`: \{ `component_name`: [`ComponentName`](/reference/sdk/typescript/index/type-aliases/ComponentName); `component_type_index`: `number`; }; }

Defined in: [metacomputer/gen-framework/client-and-test-utils/client-sdk-ts/packages/client-sdk/src/rpc-types/types.ts:173](https://github.com/gen-bc/gen/blob/main/metacomputer/gen-framework/client-and-test-utils/client-sdk-ts/packages/client-sdk/src/rpc-types/types.ts#L173)

Contract reference definition with validation metadata.

This enum captures the validation parameters for contract reference types, enabling ABI consumers to understand what address or code ID a reference type validates against.

Uses compact addressing: - Instance: `contract` field with format "deployer\_entity::component\_index" - Implementation: `code_id` field with format "pusher\_entity::push\_index"

## JSON Format

Instance references serialize as: `json { "instance": { "component_code_name": "token-mock", "contract_instance_name": "alpha", "contract": "656e746974795f30...::1" } } `

Implementation references serialize as: `json { "implementation": { "component_code_name": "token-mock", "code_id": "656e746974795f30...::1" } } `
