# wallets.getPasskeyOwner

> Documentation index: [llms.txt](https://namera.ai/llms.txt).

Source: https://namera.ai/docs/sdk/reference/accounts/get-passkey-owner

Read the public passkey owner descriptor.

`namera.wallets.getPasskeyOwner()` read the public passkey owner descriptor.



## Usage [#usage]

Install `@namera-ai/sdk` and set `NAMERA_API_KEY` on your backend. IDs and responses below are illustrative fixtures; replace IDs with your own resources.

<Tabs items={["index.ts", "client.ts"]}>
<Tab value="index.ts">

```ts title="index.ts"
import { namera } from "./client";
const result = await namera.wallets.getPasskeyOwner("0199dfe1-0000-7000-8000-000000000004");
if (!result.success) throw new Error(result.error.message);

console.log(result.data);
```

</Tab>
<Tab value="client.ts">

```ts title="client.ts"
import { NameraClient } from "@namera-ai/sdk";

export const namera = new NameraClient({
  apiKey: process.env.NAMERA_API_KEY!,
});
```

</Tab>
</Tabs>

## Returns [#returns]

API methods return a `Promise<NameraResult<T, E>>`. When `success` is `true`,
`data` contains the value described below and `error` is `null`. On failure,
`data` is `null` and `error` describes the failure.

The JSON example shows the complete successful `data`, with illustrative values.
Date-time values use ISO strings in JSON; bigint values use decimal strings.
See [Handling Results and Errors](https://namera.ai/docs/sdk/handling-results-and-errors) for the error shape.

Returns `walletId` and `owner`. Managed accounts return `owner: null`. A passkey descriptor includes signing-key ID, uncompressed public key, credential ID, RP ID, and origin; it contains no signing capability.

<div className="docs-response">

```json
{
  "walletId": "0199dfe1-0000-7000-8000-000000000004",
  "owner": {
    "signingKeyId": "0199dfe1-0000-7000-8000-000000000016",
    "publicKeyHex": "0x0411111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
    "credentialId": "dGVzdA",
    "rpId": "app.example.com",
    "origin": "https://app.example.com"
  }
}
```

</div>

## Parameters [#parameters]

### walletId [#walletid]

Type: `string`. Required. Account UUID, not its address. Obtain it from account creation or listing.

```ts title="index.ts"
import { namera } from "./client";
const result = await namera.wallets.getPasskeyOwner("0199dfe1-0000-7000-8000-000000000004"); // [!code focus]
if (!result.success) throw new Error(result.error.message);

console.log(result.data);
```

## Behavior and errors [#behavior-and-errors]

Requires `wallet:read` for workspace-wide API-key access. `WALLET_NOT_FOUND` means the account is missing or outside the workspace. Use the descriptor together with independently reviewed account and installation configuration when validating a passkey approval.
