> ## Documentation Index
> Fetch the complete documentation index at: https://cantonfoundation-generated-reference-full-stack-preview.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ContractCompanion

> Metadata and utilities associated with a template as a whole, rather than one single contract made from that template. Application code should not instantiate or subclass; instead, refer to the COMPANION field on generated Template subclasses. All protected members herein are considered part of the INTERNAL API. Every instance is either a ContractCompanion.WithKey or ContractCompanion.WithoutKey, depending on whether the template defined a key type. ContractCompanion.WithKey defines extra utilities for working with contract keys.

<div class="x2mdx-ref-page x2mdx-ref-page--collection" />

<p class="x2mdx-ref-back"><a href="./index">Back to package</a></p>

<div class="x2mdx-ref-hero">
  <p class="x2mdx-ref-eyebrow">com.daml.ledger.javaapi.data.codegen</p>

  <h1 class="x2mdx-ref-title">ContractCompanion</h1>

  <p class="x2mdx-ref-summary">Metadata and utilities associated with a template as a whole, rather than one single contract made from that template. Application code should not instantiate or subclass; instead, refer to the COMPANION field on generated Template subclasses. All protected members herein are considered part of the INTERNAL API. Every instance is either a ContractCompanion.WithKey or ContractCompanion.WithoutKey, depending on whether the template defined a key type. ContractCompanion.WithKey defines extra utilities for working with contract keys.</p>

  <div class="x2mdx-ref-badges">
    <span class="x2mdx-ref-badge x2mdx-ref-badge--protocol">Java</span>

    <a class="x2mdx-ref-badge x2mdx-ref-badge--added" href="#history-added-3-4-8">Added 3.4.8</a>
  </div>

  <dl class="x2mdx-ref-meta-grid">
    <div class="x2mdx-ref-meta-item">
      <dt>Package</dt>
      <dd>com.daml.ledger.javaapi.data.codegen</dd>
    </div>

    <div class="x2mdx-ref-meta-item">
      <dt>Upstream docs</dt>
      <dd><a href="https://javadoc.io/doc/com.daml/bindings-java/3.5.15/com/daml/ledger/javaapi/data/codegen/ContractCompanion.html">Open Javadoc</a></dd>
    </div>
  </dl>
</div>

## Signature

```java theme={null}
public abstract class ContractCompanion<Ct,Id,Data> extends ContractTypeCompanion<Ct,Id,Data,Data>
```

## Members

| Member                                                                 | Lifecycle     | Upstream docs                                                                                                                                                                                     |
| ---------------------------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `fromJson`                                                             | Added `3.4.8` | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.15/com/daml/ledger/javaapi/data/codegen/ContractCompanion.html#fromJson)                                                                 |
| `fromJson(String)`                                                     | Added `3.4.8` | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.15/com/daml/ledger/javaapi/data/codegen/ContractCompanion.html#fromJson%28java.lang.String%29)                                           |
| `getValueDecoder()`                                                    | Added `3.5.1` | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.15/com/daml/ledger/javaapi/data/codegen/ContractCompanion.html#getValueDecoder%28%29)                                                    |
| `valueDecoder(ContractCompanion<?, ? extends ContractId<Data>, Data>)` | Added `3.4.8` | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.15/com/daml/ledger/javaapi/data/codegen/ContractCompanion.html#valueDecoder%28com.daml.ledger.javaapi.data.codegen.ContractCompanion%29) |

## History

<div class="x2mdx-ref-history" aria-label="Reference history">
  <div class="x2mdx-ref-history-event x2mdx-ref-history-event--introduced" id="history-added-3-4-8">
    <div class="x2mdx-ref-history-event-head">
      <span class="x2mdx-ref-history-event-label">Added</span>
      <code class="x2mdx-ref-history-event-version">3.4.8</code>
    </div>
  </div>
</div>
