# Transactions

## Private Key and Signature

After user create an account in zkLink, a layer3 private key need to be generated from the L1 wallet private key. User operations such as placing order, withdraw, transfer asset etc require this L3 private key to generate the signature. And zkLink server will verify the signature of the received transaction. This part will describe how to generate the L3 private key and encode the transaction to be signed. For the developers who use the SDK can ignore this part.

## Data Types

This part include all the transaction types and state update definition including the sdk example to sign the transactions.


---

# 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://docs.zk.link/developer/api-and-sdk.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.
