> ## Documentation Index
> Fetch the complete documentation index at: https://cantonfoundation-tj-tea-grpc-api-docs.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>

  <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/ContractWithKey.html">Open Javadoc</a></dd>
    </div>
  </dl>
</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.15/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.15/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html#hashCode%28%29)               |
| `key`              | -         | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.15/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html#key)                          |
| `keyJsonEncoder()` | -         | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.15/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html#keyJsonEncoder%28%29)         |
| `keyToJson()`      | -         | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.15/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html#keyToJson%28%29)              |
| `toString()`       | -         | [Open](https://javadoc.io/doc/com.daml/bindings-java/3.5.15/com/daml/ledger/javaapi/data/codegen/ContractWithKey.html#toString%28%29)               |
