> ## Documentation Index
> Fetch the complete documentation index at: https://cantonfoundation-feature-integrate-google-analytics.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Splice.Api.Token.AllocationInstructionV1

> Documentation for Splice.Api.Token.AllocationInstructionV1

Interfaces to enable wallets to instruct the registry to create allocations.

## Interfaces

<div id="type-splice-api-token-allocationinstructionv1-allocationfactory-42588">
  **interface** AllocationFactory
</div>

> Contracts implementing `AllocationFactory` are retrieved from the registry app and are used by the wallet to create allocation instructions (or allocations directly).
>
> **viewtype** AllocationFactoryView
>
> * <div id="type-splice-api-token-allocationinstructionv1-allocationfactoryallocate-8885">
>     **Choice** AllocationFactory\_Allocate
>   </div>
>
>   Generic choice for the sender's wallet to request the allocation of assets to a specific leg of a settlement. It depends on the registry whether this results in the allocation being created directly or in an allocation instruction being created instead.
>
>   Controller: (DA.Internal.Record.getField @"sender" (DA.Internal.Record.getField @"transferLeg" allocation))
>
>   Returns: AllocationInstructionResult
>
>   | Field            | Type                                                                                                         | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
>   | ---------------- | ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
>   | expectedAdmin    | [Party](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-party-57932)                      | The expected admin party issuing the factory. Implementations MUST validate that this matches the admin of the factory. Callers should ensure they get `expectedAdmin` from a trusted source, e.g., a read against their own participant. That way they can ensure that it is safe to exercise a choice on a factory contract acquired from an untrusted source *provided* all vetted Daml packages only contain interface implementations that check the expected admin party.                                       |
>   | allocation       | AllocationSpecification                                                                                      | The allocation which should be created.                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
>   | requestedAt      | [Time](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-time-63886)                        | The time at which the allocation was requested.                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
>   | inputHoldingCids | \[[ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) Holding] | The holdings that SHOULD be used to fund the allocation. MAY be empty for registries that do not represent their holdings on-ledger; or for registries that support automatic selection of holdings for allocations. If specified, then the successful allocation MUST archive all of these holdings, so that the execution of the allocation conflicts with any other allocations using these holdings. Thereby allowing that the sender can use deliberate contention on holdings to prevent duplicate allocations. |
>   | extraArgs        | ExtraArgs                                                                                                    | Additional choice arguments.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
>
> * <div id="type-splice-api-token-allocationinstructionv1-allocationfactorypublicfetch-20324">
>     **Choice** AllocationFactory\_PublicFetch
>   </div>
>
>   Controller: actor
>
>   Returns: AllocationFactoryView
>
>   | Field         | Type                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
>   | ------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
>   | expectedAdmin | [Party](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-party-57932) | The expected admin party issuing the factory. Implementations MUST validate that this matches the admin of the factory. Callers should ensure they get `expectedAdmin` from a trusted source, e.g., a read against their own participant. That way they can ensure that it is safe to exercise a choice on a factory contract acquired from an untrusted source *provided* all vetted Daml packages only contain interface implementations that check the expected admin party. |
>   | actor         | [Party](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-party-57932) |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
>
> * **Choice** Archive
>
>   Controller: Signatories of implementing template
>
>   Returns: ()
>
>   (no fields)
>
> * **Method allocationFactory\_allocateImpl :** [ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationFactory -> AllocationFactory\_Allocate -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationInstructionResult
>
> * **Method allocationFactory\_publicFetchImpl :** [ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationFactory -> AllocationFactory\_PublicFetch -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationFactoryView

<div id="type-splice-api-token-allocationinstructionv1-allocationinstruction-29622">
  **interface** AllocationInstruction
</div>

> An interface for tracking the status of an allocation instruction, i.e., a request to a registry app to create an allocation.
>
> Registries MAY evolve the allocation instruction in multiple steps. They SHOULD do so using only the choices on this interface, so that wallets can reliably parse the transaction history and determine whether the creation of the allocation ultimately succeeded or failed.
>
> **viewtype** AllocationInstructionView
>
> * <div id="type-splice-api-token-allocationinstructionv1-allocationinstructionupdate-50223">
>     **Choice** AllocationInstruction\_Update
>   </div>
>
>   Update the state of the allocation instruction. Used by the registry to execute registry internal workflow steps that advance the state of the allocation instruction. A reason may be communicated via the metadata.
>
>   Controller: (DA.Internal.Record.getField @"admin" (DA.Internal.Record.getField @"instrumentId" (DA.Internal.Record.getField @"transferLeg" (DA.Internal.Record.getField @"allocation" (view this))))), extraActors
>
>   Returns: AllocationInstructionResult
>
>   | Field       | Type                                                                                       | Description                                                                                                                           |
>   | ----------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
>   | extraActors | \[[Party](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-party-57932)] | Extra actors authorizing the update. Implementations MUST check that this field contains the expected actors for the specific update. |
>   | extraArgs   | ExtraArgs                                                                                  | Additional context required in order to exercise the choice.                                                                          |
>
> * <div id="type-splice-api-token-allocationinstructionv1-allocationinstructionwithdraw-35988">
>     **Choice** AllocationInstruction\_Withdraw
>   </div>
>
>   Withdraw the allocation instruction as the sender.
>
>   Controller: (DA.Internal.Record.getField @"sender" (DA.Internal.Record.getField @"transferLeg" (DA.Internal.Record.getField @"allocation" (view this))))
>
>   Returns: AllocationInstructionResult
>
>   | Field     | Type      | Description                                                  |
>   | --------- | --------- | ------------------------------------------------------------ |
>   | extraArgs | ExtraArgs | Additional context required in order to exercise the choice. |
>
> * **Choice** Archive
>
>   Controller: Signatories of implementing template
>
>   Returns: ()
>
>   (no fields)
>
> * **Method allocationInstruction\_updateImpl :** [ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction -> AllocationInstruction\_Update -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationInstructionResult
>
> * **Method allocationInstruction\_withdrawImpl :** [ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction -> AllocationInstruction\_Withdraw -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationInstructionResult

## Data Types

<div id="type-splice-api-token-allocationinstructionv1-allocationfactoryview-21751">
  **data** AllocationFactoryView
</div>

> View for `AllocationFactory`.
>
> <div id="constr-splice-api-token-allocationinstructionv1-allocationfactoryview-66354">
>   AllocationFactoryView
> </div>
>
> > | Field | Type                                                                                    | Description                                                                                                             |
> > | ----- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
> > | admin | [Party](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-party-57932) | The party representing the registry app that administers the instruments for which this allocation factory can be used. |
> > | meta  | Metadata                                                                                | Additional metadata specific to the allocation factory, used for extensibility.                                         |
>
> **instance** [Eq](https://docs.daml.com/daml/stdlib/Prelude.html#class-ghc-classes-eq-22713) AllocationFactoryView
>
> **instance** [Show](https://docs.daml.com/daml/stdlib/Prelude.html#class-ghc-show-show-65360) AllocationFactoryView
>
> **instance** HasMethod AllocationFactory "allocationFactory\_publicFetchImpl" ([ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationFactory -> AllocationFactory\_PublicFetch -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationFactoryView)
>
> **instance** [HasFromAnyView](https://docs.daml.com/daml/stdlib/DA-Internal-Interface-AnyView.html#class-da-internal-interface-anyview-hasfromanyview-30108) AllocationFactory AllocationFactoryView
>
> **instance** [HasInterfaceView](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-interface-hasinterfaceview-4492) AllocationFactory AllocationFactoryView
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "admin" AllocationFactoryView [Party](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-party-57932)
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "meta" AllocationFactoryView Metadata
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "admin" AllocationFactoryView [Party](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-party-57932)
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "meta" AllocationFactoryView Metadata
>
> **instance** [HasExercise](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasexercise-70422) AllocationFactory AllocationFactory\_PublicFetch AllocationFactoryView
>
> **instance** [HasExerciseGuarded](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasexerciseguarded-97843) AllocationFactory AllocationFactory\_PublicFetch AllocationFactoryView
>
> **instance** [HasFromAnyChoice](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasfromanychoice-81184) AllocationFactory AllocationFactory\_PublicFetch AllocationFactoryView
>
> **instance** [HasToAnyChoice](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hastoanychoice-82571) AllocationFactory AllocationFactory\_PublicFetch AllocationFactoryView

<div id="type-splice-api-token-allocationinstructionv1-allocationinstructionresult-30943">
  **data** AllocationInstructionResult
</div>

> The result of instructing an allocation or advancing the state of an allocation instruction.
>
> <div id="constr-splice-api-token-allocationinstructionv1-allocationinstructionresult-54130">
>   AllocationInstructionResult
> </div>
>
> > | Field            | Type                                                                                                         | Description                                                                                                                                                                      |
> > | ---------------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
> > | output           | AllocationInstructionResult\_Output                                                                          | The output of the step.                                                                                                                                                          |
> > | senderChangeCids | \[[ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) Holding] | New holdings owned by the sender created to return "change". Can be used by callers to batch creating or updating multiple allocation instructions in a single Daml transaction. |
> > | meta             | Metadata                                                                                                     | Additional metadata specific to the allocation instruction, used for extensibility; e.g., fees charged.                                                                          |
>
> **instance** [Eq](https://docs.daml.com/daml/stdlib/Prelude.html#class-ghc-classes-eq-22713) AllocationInstructionResult
>
> **instance** [Show](https://docs.daml.com/daml/stdlib/Prelude.html#class-ghc-show-show-65360) AllocationInstructionResult
>
> **instance** HasMethod AllocationFactory "allocationFactory\_allocateImpl" ([ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationFactory -> AllocationFactory\_Allocate -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationInstructionResult)
>
> **instance** HasMethod AllocationInstruction "allocationInstruction\_updateImpl" ([ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction -> AllocationInstruction\_Update -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationInstructionResult)
>
> **instance** HasMethod AllocationInstruction "allocationInstruction\_withdrawImpl" ([ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction -> AllocationInstruction\_Withdraw -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationInstructionResult)
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "meta" AllocationInstructionResult Metadata
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "output" AllocationInstructionResult AllocationInstructionResult\_Output
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "senderChangeCids" AllocationInstructionResult \[[ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) Holding]
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "meta" AllocationInstructionResult Metadata
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "output" AllocationInstructionResult AllocationInstructionResult\_Output
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "senderChangeCids" AllocationInstructionResult \[[ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) Holding]
>
> **instance** [HasExercise](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasexercise-70422) AllocationFactory AllocationFactory\_Allocate AllocationInstructionResult
>
> **instance** [HasExercise](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasexercise-70422) AllocationInstruction AllocationInstruction\_Update AllocationInstructionResult
>
> **instance** [HasExercise](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasexercise-70422) AllocationInstruction AllocationInstruction\_Withdraw AllocationInstructionResult
>
> **instance** [HasExerciseGuarded](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasexerciseguarded-97843) AllocationFactory AllocationFactory\_Allocate AllocationInstructionResult
>
> **instance** [HasExerciseGuarded](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasexerciseguarded-97843) AllocationInstruction AllocationInstruction\_Update AllocationInstructionResult
>
> **instance** [HasExerciseGuarded](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasexerciseguarded-97843) AllocationInstruction AllocationInstruction\_Withdraw AllocationInstructionResult
>
> **instance** [HasFromAnyChoice](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasfromanychoice-81184) AllocationFactory AllocationFactory\_Allocate AllocationInstructionResult
>
> **instance** [HasFromAnyChoice](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasfromanychoice-81184) AllocationInstruction AllocationInstruction\_Update AllocationInstructionResult
>
> **instance** [HasFromAnyChoice](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hasfromanychoice-81184) AllocationInstruction AllocationInstruction\_Withdraw AllocationInstructionResult
>
> **instance** [HasToAnyChoice](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hastoanychoice-82571) AllocationFactory AllocationFactory\_Allocate AllocationInstructionResult
>
> **instance** [HasToAnyChoice](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hastoanychoice-82571) AllocationInstruction AllocationInstruction\_Update AllocationInstructionResult
>
> **instance** [HasToAnyChoice](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-template-functions-hastoanychoice-82571) AllocationInstruction AllocationInstruction\_Withdraw AllocationInstructionResult

<div id="type-splice-api-token-allocationinstructionv1-allocationinstructionresultoutput-46212">
  **data** AllocationInstructionResult\_Output
</div>

> The output of instructing an allocation or advancing the state of an allocation instruction.
>
> <div id="constr-splice-api-token-allocationinstructionv1-allocationinstructionresultpending-58494">
>   AllocationInstructionResult\_Pending
> </div>
>
> > Use this result to communicate that the creation of the allocation is pending further steps.
> >
> > | Field                    | Type                                                                                                                    | Description                                                               |
> > | ------------------------ | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
> > | allocationInstructionCid | [ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction | Contract id of the allocation instruction representing the pending state. |
>
> <div id="constr-splice-api-token-allocationinstructionv1-allocationinstructionresultcompleted-89210">
>   AllocationInstructionResult\_Completed
> </div>
>
> > Use this result to communicate that the allocation was created.
> >
> > | Field         | Type                                                                                                         | Description                   |
> > | ------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------- |
> > | allocationCid | [ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) Allocation | The newly created allocation. |
>
> <div id="constr-splice-api-token-allocationinstructionv1-allocationinstructionresultfailed-56799">
>   AllocationInstructionResult\_Failed
> </div>
>
> > Use this result to communicate that the creation of the allocation did not succeed and all holdings reserved for funding the allocation have been released.
>
> **instance** [Eq](https://docs.daml.com/daml/stdlib/Prelude.html#class-ghc-classes-eq-22713) AllocationInstructionResult\_Output
>
> **instance** [Show](https://docs.daml.com/daml/stdlib/Prelude.html#class-ghc-show-show-65360) AllocationInstructionResult\_Output
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "allocationCid" AllocationInstructionResult\_Output ([ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) Allocation)
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "allocationInstructionCid" AllocationInstructionResult\_Output ([ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction)
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "output" AllocationInstructionResult AllocationInstructionResult\_Output
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "allocationCid" AllocationInstructionResult\_Output ([ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) Allocation)
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "allocationInstructionCid" AllocationInstructionResult\_Output ([ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction)
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "output" AllocationInstructionResult AllocationInstructionResult\_Output

<div id="type-splice-api-token-allocationinstructionv1-allocationinstructionview-72001">
  **data** AllocationInstructionView
</div>

> View for `AllocationInstruction`.
>
> <div id="constr-splice-api-token-allocationinstructionv1-allocationinstructionview-32140">
>   AllocationInstructionView
> </div>
>
> > | Field                  | Type                                                                                                                                                                                                                                                         | Description                                                                                                                                                                                                                                |
> > | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
> > | originalInstructionCid | [Optional](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-prelude-optional-37153) ([ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction)                                 | The contract id of the original allocation instruction contract. Used by the wallet to track the lineage of allocation instructions through multiple steps. Only set if the registry evolves the allocation instruction in multiple steps. |
> > | allocation             | AllocationSpecification                                                                                                                                                                                                                                      | The allocation that this instruction should create.                                                                                                                                                                                        |
> > | pendingActions         | [Map](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-map-90052) [Party](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-party-57932) [Text](https://docs.daml.com/daml/stdlib/Prelude.html#type-ghc-types-text-51952) | The pending actions to be taken by different actors to create the allocation. ^ This field can by used to report on the progress of registry specific workflows that are required to prepare the allocation.                               |
> > | requestedAt            | [Time](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-time-63886)                                                                                                                                                                        | The time at which the allocation was requested.                                                                                                                                                                                            |
> > | inputHoldingCids       | \[[ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) Holding]                                                                                                                                                 | The holdings to be used to fund the allocation. MAY be empty for registries that do not represent their holdings on-ledger.                                                                                                                |
> > | meta                   | Metadata                                                                                                                                                                                                                                                     | Additional metadata specific to the allocation instruction, used for extensibility; e.g., more detailed status information.                                                                                                                |
>
> **instance** [Eq](https://docs.daml.com/daml/stdlib/Prelude.html#class-ghc-classes-eq-22713) AllocationInstructionView
>
> **instance** [Show](https://docs.daml.com/daml/stdlib/Prelude.html#class-ghc-show-show-65360) AllocationInstructionView
>
> **instance** [HasFromAnyView](https://docs.daml.com/daml/stdlib/DA-Internal-Interface-AnyView.html#class-da-internal-interface-anyview-hasfromanyview-30108) AllocationInstruction AllocationInstructionView
>
> **instance** [HasInterfaceView](https://docs.daml.com/daml/stdlib/Prelude.html#class-da-internal-interface-hasinterfaceview-4492) AllocationInstruction AllocationInstructionView
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "allocation" AllocationInstructionView AllocationSpecification
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "inputHoldingCids" AllocationInstructionView \[[ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) Holding]
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "meta" AllocationInstructionView Metadata
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "originalInstructionCid" AllocationInstructionView ([Optional](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-prelude-optional-37153) ([ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction))
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "pendingActions" AllocationInstructionView ([Map](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-map-90052) [Party](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-party-57932) [Text](https://docs.daml.com/daml/stdlib/Prelude.html#type-ghc-types-text-51952))
>
> **instance** [GetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-getfield-53979) "requestedAt" AllocationInstructionView [Time](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-time-63886)
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "allocation" AllocationInstructionView AllocationSpecification
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "inputHoldingCids" AllocationInstructionView \[[ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) Holding]
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "meta" AllocationInstructionView Metadata
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "originalInstructionCid" AllocationInstructionView ([Optional](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-prelude-optional-37153) ([ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction))
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "pendingActions" AllocationInstructionView ([Map](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-map-90052) [Party](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-party-57932) [Text](https://docs.daml.com/daml/stdlib/Prelude.html#type-ghc-types-text-51952))
>
> **instance** [SetField](https://docs.daml.com/daml/stdlib/DA-Record.html#class-da-internal-record-setfield-4311) "requestedAt" AllocationInstructionView [Time](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-time-63886)

## Functions

<div id="function-splice-api-token-allocationinstructionv1-allocationinstructionwithdrawimpl-26170">
  allocationInstruction\_withdrawImpl
  : AllocationInstruction -> [ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction -> AllocationInstruction\_Withdraw -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationInstructionResult
</div>

<div id="function-splice-api-token-allocationinstructionv1-allocationinstructionupdateimpl-49061">
  allocationInstruction\_updateImpl
  : AllocationInstruction -> [ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationInstruction -> AllocationInstruction\_Update -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationInstructionResult
</div>

<div id="function-splice-api-token-allocationinstructionv1-allocationfactoryallocateimpl-1231">
  allocationFactory\_allocateImpl
  : AllocationFactory -> [ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationFactory -> AllocationFactory\_Allocate -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationInstructionResult
</div>

<div id="function-splice-api-token-allocationinstructionv1-allocationfactorypublicfetchimpl-77778">
  allocationFactory\_publicFetchImpl
  : AllocationFactory -> [ContractId](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-contractid-95282) AllocationFactory -> AllocationFactory\_PublicFetch -> [Update](https://docs.daml.com/daml/stdlib/Prelude.html#type-da-internal-lf-update-68072) AllocationFactoryView
</div>
