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

# Message and transaction signing

> Sign messages and PSBTs.

Use `client = createArksatClient(provider)`. Example variables are supplied by the application.

## signMessage

Returns a hex signature. Preserve the original message, whitespace, and line endings. Defaults: ecdsa and utf8.

**Parameters**

```ts theme={null}
{ message: string; type?: 'ecdsa' | 'schnorr'; encoding?: 'utf8' | 'hex' } & ArksatSessionGuard
```

**Returns**

```ts theme={null}
Promise<{ signature: string }>
```

**Example**

```ts theme={null}
const { signature } = await client.signMessage({ message, type: 'schnorr', encoding: 'utf8' })
```

## signTransaction

Signs one PSBT without broadcasting.

**Parameters**

```ts theme={null}
{ psbtBase64: string; inputIndexes?: number[] } & ArksatSessionGuard
```

**Returns**

```ts theme={null}
Promise<{ psbtBase64: string }>
```

**Example**

```ts theme={null}
const signed = await client.signTransaction({ psbtBase64 })
```

## signTransactions

Signs a batch in input order without broadcasting.

**Parameters**

```ts theme={null}
{ transactions: ArksatSignTransactionParams[] } & ArksatSessionGuard
```

**Returns**

```ts theme={null}
Promise<{ transactions: { psbtBase64: string }[] }>
```

**Example**

```ts theme={null}
const signed = await client.signTransactions({ transactions: [{ psbtBase64 }] })
```

The application supplies message and PSBT data. Provider signatures return strings or string arrays; Client results use named fields.

[Errors](https://docs.arksat.xyz/en/errors.md) · [Type definitions](https://docs.arksat.xyz/en/reference/types.md)


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