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

# ContractWithKey

> A superclass for all codegen-generated Contracts whose templates have a key defined.

<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">ContractWithKey</h1>

  <p class="x2mdx-ref-summary">A superclass for all codegen-generated Contracts whose templates have a key defined.</p>

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

  <div class="x2mdx-ref-meta-grid">
    <div class="x2mdx-ref-meta-item">
      <span class="x2mdx-ref-meta-label">Package</span>
      <span class="x2mdx-ref-meta-value">com.daml.ledger.javaapi.data.codegen</span>
    </div>

    <div class="x2mdx-ref-meta-item">
      <span class="x2mdx-ref-meta-label">Upstream docs</span>
      <span class="x2mdx-ref-meta-value"><a href="https://javadoc.io/doc/com.daml/bindings-java/3.5.17/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html">Open Javadoc</a></span>
    </div>
  </div>
</div>

## Signature

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
public abstract class ContractWithKey<Id,Data,Key> extends Contract<Id,Data>
```

## Members

| Member | Lifecycle | Upstream docs |
| - | - | - |
| `equals(Object)` | - | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.17/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html#equals%28java.lang.Object%29) |
| `hashCode()` | - | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.17/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html#hashCode%28%29) |
| `key` | - | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.17/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html#key) |
| `keyJsonEncoder()` | - | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.17/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html#keyJsonEncoder%28%29) |
| `keyToJson()` | - | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.17/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html#keyToJson%28%29) |
| `toString()` | - | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.17/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html#toString%28%29) |
