> 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/recipient-info.md).

# Recipient Info

## Get the caller's shielded recipient handle

> Returns a \`recipientInfo\` handle that other users pass to \`/transfer\` or\
> \`/deposit-for-other\` (EVM/Tron) or \`/deposit-solana-for-other\` (Solana) to send funds\
> to this wallet's shielded balance. Read-only — requires an active session. Pass \`sessionId\`\
> and \`nonce\` as query parameters and include\
> \`x-hinkal-request-signature: secp256k1\_sign(SHA256("GET /recipient-info\n" + queryString))\`.<br>

```json
{"openapi":"3.0.3","info":{"title":"Hinkal API","version":"1.0.0"},"tags":[{"name":"Recipient Info"}],"servers":[{"url":"https://api.hinkal.io","description":"Production"}],"paths":{"/recipient-info":{"get":{"operationId":"recipientInfo","summary":"Get the caller's shielded recipient handle","description":"Returns a `recipientInfo` handle that other users pass to `/transfer` or\n`/deposit-for-other` (EVM/Tron) or `/deposit-solana-for-other` (Solana) to send funds\nto this wallet's shielded balance. Read-only — requires an active session. Pass `sessionId`\nand `nonce` as query parameters and include\n`x-hinkal-request-signature: secp256k1_sign(SHA256(\"GET /recipient-info\\n\" + queryString))`.\n","tags":["Recipient Info"],"parameters":[{"$ref":"#/components/parameters/XHinkalRequestSignature"},{"name":"sessionId","in":"query","required":true,"description":"Session identifier UUID from POST /create-session","schema":{"type":"string","format":"uuid"}},{"name":"nonce","in":"query","required":true,"description":"Per-request UUID. Echoed back in the response.","schema":{"type":"string","format":"uuid"}},{"name":"chainId","in":"query","required":true,"description":"Chain ID (e.g. 10 for Optimism, 501 for Solana mainnet)","schema":{"type":"string"}}],"responses":{"200":{"description":"Recipient handle","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"recipientInfo":{"type":"string"},"nonce":{"type":"string","description":"Echoed per-request `nonce` from the request."}},"required":["success","recipientInfo","nonce"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/ServerError"}}}}},"components":{"parameters":{"XHinkalRequestSignature":{"name":"x-hinkal-request-signature","in":"header","required":true,"schema":{"type":"string"},"description":"Hex-encoded compact secp256k1 signature: `secp256k1_sign(SHA256(binding + \"\\n\" + payload))`, where `binding` is `\"<METHOD> <routePath>\"` (this route's own method and path, e.g. `\"POST /refresh-cache\"` or `\"GET /balance\"`) and `payload` is `JSON.stringify(body)` for POST requests or the raw query string for GET requests. Binding the route into the signed digest stops a signature captured for one endpoint from being replayed against another. See [Authentication](/enclave-api/authentication) for the full signing scheme."}},"responses":{"Unauthorized":{"description":"Invalid signature or reused nonce","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"]}}}}
```
