> For the complete documentation index, see [llms.txt](https://gl-docs.gitbook.io/zkpass/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gl-docs.gitbook.io/zkpass/zkpass-developers-guide/api-reference/typescript/type-aliases/types-ffitype.md).

# Types: ffiType

### Table of contents

#### Types: ffiType

* [FfiResultUserDataToken](#ffiresultuserdatatoken)
* [FfiResultDvrToken](#ffiresultdvrtoken)
* [FfiResultZkPassProofToken](#ffiresultzkpassprooftoken)
* [FfiResultVerifyZkPassProofToken](#ffiresultverifyzkpassprooftoken)
* [PublicKeyFfi](#publickeyffi)
* [KeysetEndpointFfi](#keysetendpointffi)
* [PublicKeyOptionUnionFfi](#publickeyoptionunionffi)
* [PublicKeyOptionFfi](#publickeyoptionffi)
* [UserDataRequestFfi](#userdatarequestffi)
* [DvrDataFfi](#dvrdataffi)
* [ExpectedDvrMetadataFfi](#expecteddvrmetadataffi)
* [UserDataRequestArrayFfi](#userdatarequestarrayffi)
* [UserDataVerifyingKeysFfi](#userdataverifyingkeysffi)

### Types: ffiType

#### **FfiResultUserDataToken**

▸ FfiResultUserDataToken: StructType A structure representing the result of a user data token operation.

Parameters:

| Name     | Type                           | Description          |
| -------- | ------------------------------ | -------------------- |
| `result` | ref.refType(ref.types.CString) | The operation result |
| `error`  | ref.types.CString              | Error message if any |

***

#### **FfiResultDvrToken**

▸ FfiResultDvrToken: StructType A structure representing the result of a DVR token operation.

Parameters:

| Name     | Type                             | Description          |
| -------- | -------------------------------- | -------------------- |
| `result` | `ref.refType(ref.types.CString)` | The operation result |
| `error`  | `ref.types.CString`              | Error message if any |

***

#### **FfiResultZkPassProofToken**

▸ FfiResultZkPassProofToken: StructType A structure representing the result of a zkPass proof token operation.

Parameters:

| Name     | Type                             | Description          |
| -------- | -------------------------------- | -------------------- |
| `result` | `ref.refType(ref.types.CString)` | The operation result |
| `error`  | `ref.types.CString`              | Error message if any |

***

#### **FfiResultVerifyZkPassProofToken**

▸ FfiResultVerifyZkPassProofToken: StructType A structure representing the result of a zkPass proof verification token operation.

Parameters:

| Name     | Type                             | Description          |
| -------- | -------------------------------- | -------------------- |
| `result` | `ref.refType(ref.types.CString)` | The operation result |
| `error`  | `ref.types.CString`              | Error message if any |

***

#### **PublicKeyFfi**

▸ PublicKeyFfi: StructType A structure representing a public key.

Parameters:

| Name | Type                | Description                    |
| ---- | ------------------- | ------------------------------ |
| `x`  | `ref.types.CString` | X coordinate of the public key |
| `y`  | `ref.types.CString` | Y coordinate of the public key |

***

#### **KeysetEndpointFfi**

▸ KeysetEndpointFfi: StructType A structure representing a keyset endpoint.

Parameters:

| Name  | Type                | Description          |
| ----- | ------------------- | -------------------- |
| `jku` | `ref.types.CString` | JSON Web Key Set URL |
| `kid` | `ref.types.CString` | Key identifier       |

***

#### **PublicKeyOptionUnionFfi**

▸ PublicKeyOptionUnionFfi: StructType A structure representing a union of public key and keyset endpoint.

Parameters:

| Name              | Type                                      | Description                   |
| ----------------- | ----------------------------------------- | ----------------------------- |
| `public_key`      | [`PublicKeyFfi`](#publickeyffi)           | The public key structure      |
| `keyset_endpoint` | [`KeysetEndpointFfi`](#keysetendpointffi) | The keyset endpoint structure |

***

#### **PublicKeyOptionFfi**

▸ PublicKeyOptionFfi: StructType A structure representing a public key option with tag and value.

Parameters:

<table><thead><tr><th width="189">Name</th><th width="298">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>tag</code></td><td><code>ref.types.uint64</code></td><td>Type identifier</td></tr><tr><td><code>value</code></td><td><a href="#publickeyoptionunionffi"><code>PublicKeyOptionUnionFfi</code></a></td><td>The key data</td></tr></tbody></table>

***

#### **UserDataRequestFfi**

▸ UserDataRequestFfi: StructType A structure representing a user data request.

Parameters:

| Name    | Type                                        | Description   |
| ------- | ------------------------------------------- | ------------- |
| `key`   | `ref.types.CString`                         | Request key   |
| `value` | [`PublicKeyOptionFfi`](#publickeyoptionffi) | Request value |

***

#### **DvrDataFfi**

▸ DvrDataFfi: StructType A structure representing DVR data.

Parameters:

| Name                     | Type                                                  | Description                        |
| ------------------------ | ----------------------------------------------------- | ---------------------------------- |
| `zkvm`                   | `ref.types.CString`                                   | ZKVM identifier                    |
| `dvr_title`              | `ref.types.CString`                                   | DVR title                          |
| `dvr_id`                 | `ref.types.CString`                                   | DVR identifier                     |
| `query`                  | `ref.types.CString`                                   | Query string                       |
| `user_data_requests`     | [`UserDataRequestArrayFfi`](#userdatarequestarrayffi) | Array of user data requests        |
| `user_data_requests_len` | `ref.types.uint64`                                    | Length of user data requests array |
| `dvr_verifying_key`      | [`PublicKeyOptionFfi`](#publickeyoptionffi)           | DVR verifying key                  |

***

#### **ExpectedDvrMetadataFfi**

▸ ExpectedDvrMetadataFfi: StructType A structure representing expected DVR metadata.

Parameters:

| Name                           | Type                                                    | Description                    |
| ------------------------------ | ------------------------------------------------------- | ------------------------------ |
| `ttl`                          | `ref.types.uint64`                                      | Time to live                   |
| `dvr`                          | `ref.types.CString`                                     | DVR data token                 |
| `user_data_verifying_keys`     | [`UserDataVerifyingKeysFfi`](#userdataverifyingkeysffi) | Array of verifying keys        |
| `user_data_verifying_keys_len` | `ref.types.uint64`                                      | Length of verifying keys array |

#### UserDataRequestArrayFfi

▸ UserDataRequestArrayFfi: ArrayType An array type of [`UserDataRequestFfi`](#userdatarequestffi) structures.

***

#### UserDataVerifyingKeysFfi

▸ UserDataVerifyingKeysFfi: ArrayType An array type of [`UserDataRequestFfi`](#userdatarequestffi) structures used for verifying keys.
