> For the complete documentation index, see [llms.txt](https://liquiidio.gitbook.io/unity-plugin-suite/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://liquiidio.gitbook.io/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp/interfaces/anchorlinksharp-ilinktransport.md).

# ILinkTransport

Protocol anchorLink transports need to implement. A transport is responsible for getting the request to the user, e.g. by opening request URIs or displaying QR codes.

## Summary

| Members                                                                                                                                                                                                                                                               | Descriptions                                                         |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| `public` [`ILinkStorage`](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md) [`Storage`](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)                                                                                                         | Can be implemented if transport provides a storage as well.          |
| `public void` [`OnRequest`](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)`(SigningRequest request, Action< object > cancel)`                                                                                                                            | Present a signing request to the user.                               |
| `public void` [`OnSuccess`](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)`(SigningRequest request,` [`TransactResult`](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp/anchorlinksharp-transactresult.md) `result)`                             | Called if the request was successful.                                |
| `public void` [`OnFailure`](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)`(SigningRequest request, Exception exception)`                                                                                                                                | Called if the request failed.                                        |
| `public void` [`OnSessionRequest`](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)`(` [`LinkSession`](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp/anchorlinksharp-linksession.md) `session, SigningRequest request, Action< object > cancel)` | Called when a session request is initiated.                          |
| `public Task< SigningRequest >` [`Prepare`](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)`(SigningRequest request,` [`LinkSession`](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp/anchorlinksharp-linksession.md) `session)`                  | Can be implemented to modify request just after it has been created. |
| `public void` [`ShowLoading`](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)`()`                                                                                                                                                                         | Called immediately when the transaction starts                       |

## Members

**`public`** [**`ILinkStorage`**](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md) [**`Storage`**](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)

Can be implemented if transport provides a storage as well.

**`public void`** [**`OnRequest`**](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)**`(SigningRequest request, Action< object > cancel)`**

Present a signing request to the user.

#### Parameters

* `request` The signing request.
* `cancel` Can be called to abort the request.

**`public void`** [**`OnSuccess`**](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)**`(SigningRequest request,`** [**`TransactResult`**](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp/anchorlinksharp-transactresult.md) **`result)`**

Called if the request was successful.

**`public void`** [**`OnFailure`**](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)**`(SigningRequest request, Exception exception)`**

Called if the request failed.

**`public void`** [**`OnSessionRequest`**](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)**`(`** [**`LinkSession`**](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp/anchorlinksharp-linksession.md) **`session, SigningRequest request, Action< object > cancel)`**

Called when a session request is initiated.

#### Parameters

* `session` Session where the request originated.
* `request` Signing request that will be sent over the session.

**`public Task< SigningRequest >`** [**`Prepare`**](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)**`(SigningRequest request,`** [**`LinkSession`**](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp/anchorlinksharp-linksession.md) **`session)`**

Can be implemented to modify request just after it has been created.

**`public void`** [**`ShowLoading`**](/unity-plugin-suite/anchorlink/api-docs/anchorlinksharp.md)**`()`**

Called immediately when the transaction starts
