> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rhinestone.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Clear signing

> Show Rhinestone's prepared-action review before passkey approval.

Clear signing displays Rhinestone's review of the server-prepared action before the browser asks the user to approve with a passkey. The review renders in your page and comes from the prepared payload instead of relying only on application-owned UI.

## Review behavior

Every passkey-signed request shows the review. No client or request option is required:

| Method | Review behavior |
| - | - |
| `sendIntent()`, `sendBatchIntent()`, `revokeSessionGrant()` | Always reviewed |
| `signMessage()` and `signTypedData()` | Always reviewed |

The `experimental_clear_signing` option is deprecated and has no effect. To send intents without any UI, sign with a [session key](/wallets/session-keys/create-a-session) through the `session` option for EVM intents. Session keys and detached message or typed-data signing do not support Solana.

`createPasskeyWalletClient()` builds on the same SDK methods: `sendTransaction()` and `sendCalls()` go through `sendIntent()`, and `signMessage()` and `signTypedData()` through their matching SDK methods, so they show the same review. Its `signTransaction()` throws, because a smart account has no signed raw transaction.

## Keep review and WebAuthn separate

Clear signing adds a review step; it does not replace WebAuthn approval.

| Stage | Owner | Result |
| - | - | - |
| Prepared-action review | Rhinestone review dialog | The user accepts or rejects the displayed server-prepared action |
| WebAuthn approval | Browser and passkey provider | The user authorizes the bound signing challenge |
| Verification and submission | Rhinestone | The server verifies the exact payload, challenge, origin, RP ID, account, and credential before submission |

The passkey prompt starts from the review's **Sign** button in your application's top-level page. Clear signing uses the same domain-bound passkey and account as authentication; it does not change the [account namespace](/wallets/embedded-wallets/passkeys-and-domains#how-domains-determine-the-account).

## What the review shows

The review displays the best safe representation available:

* verified actions from the Rhinestone clear-signing registry
* decoded ERC-20 transfers and approvals when available
* application-supplied ABI labels marked as unverified
* raw contract calls when no safe decode exists
* chain, amount, recipient, and policy details when available

Only registry metadata receives a verified badge. Application-supplied metadata can improve readability, but it does not become trusted registry data.

### Solana instruction review

Solana instruction review shows program identities, ordered accounts, signer and writable roles, raw instruction data, and address lookup tables. App-supplied labels are unverified. Program names are not a guarantee that instructions are decoded, simulated, or safe.

Instruction review can include selected-source funding details and returned cluster holdings. Those balances are snapshots, not a simulation of what the instructions will spend or proof of wallet readiness. See [Solana availability](/wallets/embedded-wallets/networks#availability) and [Fund the wallet](/transactions/multichain/send-a-transaction#fund-a-managed-solana-wallet).

<span id="label-a-call" />

## Label an EVM call

Add `label` and `sublabel` to a call to make the review readable:

```ts theme={null}
await wallet.sendIntent({
  destination: {
    chain: 8453,
    calls: [
      {
        to: merchantAddress,
        data: "0x",
        value: 10_000_000_000_000_000n,
        label: "Pay merchant",
        sublabel: "0.01 ETH on Base",
      },
    ],
  },
});
```

`label`, `sublabel`, `icon`, and `abi` are display hints for the review. The SDK truncates labels to 20 characters.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.