> For the complete documentation index, see [llms.txt](https://hinkal-team.gitbook.io/hinkal/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hinkal-team.gitbook.io/hinkal/hinkal-api/api-reference/deposit-for-other.md).

# Deposit For Other

## Build a deposit transaction into another user's shielded balance (EVM / Tron)

> Returns an unsigned EVM or Tron transaction that deposits tokens into a recipient's\
> shielded balance. \`recipientInfo\` accepts either the recipient's \`recipientInfo\` (from\
> \`GET /recipient-info\`) or a plain Ethereum address.\
> \
> \*\*Solana\*\*: Use \`/deposit-solana-for-other\` instead.\
> \
> Authorized by a normal mode session (secp256k1 request signature, bound to\
> \`"POST /deposit-for-other"\`) or an EIP-712 mode session with a per-transaction EIP-712\
> typed-data signature (primary type \`DepositForOther\`).<br>

```json
{"openapi":"3.0.3","info":{"title":"Hinkal API","version":"1.0.0"},"tags":[{"name":"Deposit For Other"}],"servers":[{"url":"https://api.hinkal.io","description":"Production"}],"paths":{"/deposit-for-other":{"post":{"operationId":"depositForOther","summary":"Build a deposit transaction into another user's shielded balance (EVM / Tron)","description":"Returns an unsigned EVM or Tron transaction that deposits tokens into a recipient's\nshielded balance. `recipientInfo` accepts either the recipient's `recipientInfo` (from\n`GET /recipient-info`) or a plain Ethereum address.\n\n**Solana**: Use `/deposit-solana-for-other` instead.\n\nAuthorized by a normal mode session (secp256k1 request signature, bound to\n`\"POST /deposit-for-other\"`) or an EIP-712 mode session with a per-transaction EIP-712\ntyped-data signature (primary type `DepositForOther`).\n","tags":["Deposit For Other"],"parameters":[{"$ref":"#/components/parameters/XHinkalRequestSignatureNormalMode"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid"},"nonce":{"type":"string","format":"uuid"},"signature":{"type":"string","description":"EIP-712 signature (EIP-712 mode only)"},"chainId":{"type":"integer"},"tokenAddresses":{"type":"array","items":{"type":"string"}},"amounts":{"type":"array","items":{"type":"string"}},"recipientInfo":{"type":"string","description":"Recipient's recipientInfo from GET /recipient-info, or a plain Ethereum address"}},"required":["sessionId","nonce","chainId","tokenAddresses","amounts","recipientInfo"]}}}},"responses":{"200":{"description":"Unsigned deposit transaction","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"txData":{"$ref":"#/components/schemas/EvmTransactionRequest"},"nonce":{"type":"string","description":"Echoed per-request `nonce` from the request, added before signing."}},"required":["success","txData","nonce"]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"409":{"$ref":"#/components/responses/NonceConflict"},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"parameters":{"XHinkalRequestSignatureNormalMode":{"name":"x-hinkal-request-signature","in":"header","required":false,"schema":{"type":"string"},"description":"Required for **normal mode** sessions: hex-encoded compact secp256k1 signature `secp256k1_sign(SHA256(binding + \"\\n\" + JSON.stringify(body)))`, where `binding` is `\"POST <routePath>\"` for this endpoint. Omit for **EIP-712 mode** sessions — include `signature` in the request body instead. See [Authentication](/enclave-api/authentication) for the full signing scheme."}},"schemas":{"EvmTransactionRequest":{"type":"object","description":"Unsigned EVM transaction request (ethers TransactionRequest shape)","properties":{"type":{"type":"integer","description":"Transaction type (0 = legacy, 2 = EIP-1559)"},"to":{"type":"string","description":"Target contract address"},"from":{"type":"string","description":"Sender address (may be omitted)"},"nonce":{"type":"integer","description":"Not set by the server — client must fill before signing"},"gasLimit":{"type":"string","description":"Max gas, as a decimal string"},"gasPrice":{"type":"string","description":"Gas price — present on legacy (type 0) transactions only"},"maxFeePerGas":{"type":"string","description":"EIP-1559 max total fee per gas — present on type 2 transactions only"},"maxPriorityFeePerGas":{"type":"string","description":"EIP-1559 max priority fee per gas — present on type 2 transactions only"},"data":{"type":"string","description":"Hex-encoded calldata"},"value":{"type":"string","description":"Native token value in wei, as a decimal string"},"chainId":{"type":"integer"}}},"FailedResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"}},"required":["success","error"]}},"responses":{"BadRequest":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}},"Unauthorized":{"description":"Invalid signature or reused nonce","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}},"NonceConflict":{"description":"Request `nonce` already consumed. Each `nonce` is single-use; generate a fresh UUID for every request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}},"ServerError":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}}}}}
```

## Build a Solana deposit transaction into another user's shielded balance

> Solana-specific equivalent of \`/deposit-for-other\`. Returns a base64-encoded serialized\
> Solana transaction that deposits tokens into a recipient's shielded balance.\
> \`recipientInfo\` accepts either the recipient's \`recipientInfo\` (from\
> \`GET /recipient-info\`) or a plain Solana address.\
> \
> The body uses \`tokenAddresses\[]\` and \`amounts\[]\` arrays (only the first element of each\
> is used — Solana supports one token per deposit). Authorized by a normal mode session\
> (secp256k1 request signature, bound to \`"POST /deposit-solana-for-other"\`) or an EIP-712\
> mode session with a per-transaction ed25519 plain-text signature.<br>

```json
{"openapi":"3.0.3","info":{"title":"Hinkal API","version":"1.0.0"},"tags":[{"name":"Deposit For Other"}],"servers":[{"url":"https://api.hinkal.io","description":"Production"}],"paths":{"/deposit-solana-for-other":{"post":{"operationId":"depositSolanaForOther","summary":"Build a Solana deposit transaction into another user's shielded balance","description":"Solana-specific equivalent of `/deposit-for-other`. Returns a base64-encoded serialized\nSolana transaction that deposits tokens into a recipient's shielded balance.\n`recipientInfo` accepts either the recipient's `recipientInfo` (from\n`GET /recipient-info`) or a plain Solana address.\n\nThe body uses `tokenAddresses[]` and `amounts[]` arrays (only the first element of each\nis used — Solana supports one token per deposit). Authorized by a normal mode session\n(secp256k1 request signature, bound to `\"POST /deposit-solana-for-other\"`) or an EIP-712\nmode session with a per-transaction ed25519 plain-text signature.\n","tags":["Deposit For Other"],"parameters":[{"$ref":"#/components/parameters/XHinkalRequestSignatureNormalMode"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{"type":"string","format":"uuid"},"nonce":{"type":"string","format":"uuid"},"signature":{"type":"string","description":"ed25519 signature (EIP-712 mode only)"},"chainId":{"type":"integer","description":"Must be 501 (Solana mainnet)"},"tokenAddresses":{"type":"array","items":{"type":"string"},"description":"Array with exactly one Solana token mint address"},"amounts":{"type":"array","items":{"type":"string"},"description":"Array with exactly one amount in smallest units"},"recipientInfo":{"type":"string","description":"Recipient's recipientInfo from GET /recipient-info, or a plain Solana address"}},"required":["sessionId","nonce","chainId","tokenAddresses","amounts","recipientInfo"]}}}},"responses":{"200":{"description":"Base64-encoded unsigned Solana transaction","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"txData":{"type":"string","description":"Base64-encoded serialized Solana transaction for the client to sign and broadcast"},"nonce":{"type":"string","description":"Echoed per-request `nonce` from the request, added before signing."}},"required":["success","txData","nonce"]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"409":{"$ref":"#/components/responses/NonceConflict"},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"parameters":{"XHinkalRequestSignatureNormalMode":{"name":"x-hinkal-request-signature","in":"header","required":false,"schema":{"type":"string"},"description":"Required for **normal mode** sessions: hex-encoded compact secp256k1 signature `secp256k1_sign(SHA256(binding + \"\\n\" + JSON.stringify(body)))`, where `binding` is `\"POST <routePath>\"` for this endpoint. Omit for **EIP-712 mode** sessions — include `signature` in the request body instead. See [Authentication](/enclave-api/authentication) for the full signing scheme."}},"responses":{"BadRequest":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}},"Unauthorized":{"description":"Invalid signature or reused nonce","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}},"NonceConflict":{"description":"Request `nonce` already consumed. Each `nonce` is single-use; generate a fresh UUID for every request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}},"ServerError":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailedResponse"}}}}},"schemas":{"FailedResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"string"}},"required":["success","error"]}}}}
```
