# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gl-docs.gitbook.io/zkpass/zkpass-developers-guide/api-reference/typescript/type-aliases/types-ffitype.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
