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

# Provisioning signers

> Provision signers to allow server-side access to user-created embedded wallets

Wallets created through Privy can either be used directly from a user's device or from a server. To allow wallets created on user devices to be used from the server, follow the guide below.

<View title="React" icon="react">
  To provision a signer for a user's wallets, use the `delegateWallet` method from the `useHeadlessDelegatedActions` hook:

  ```tsx theme={"system"}
  type delegateWallet = ({address: string, chainType: 'ethereum' | 'solana'}) => Promise<void>
  ```

  ### Usage

  ```tsx theme={"system"}
  import {useHeadlessDelegatedActions} from '@privy-io/react-auth';
  const {delegateWallet} = useHeadlessDelegatedActions();
  ```

  ### Parameters

  The `delegateWallet` method accepts a `params` object with the following fields:

  <ParamField path="address" type="string">
    Address of the embedded wallet to delegate.
  </ParamField>

  <ParamField path="chainType" type="'ethereum' | 'solana'">
    Chain type of the embedded wallet to delegate.
  </ParamField>

  <Tip>
    In addition to a full whitelabel experience, Privy also offers a default UI component to prompt users to delegate their wallet and add a signer. [Learn more](/wallets/using-wallets/signers/ui-component)
  </Tip>
</View>

<View title="React Native" icon="react">
  To provision server-side access for a user's wallets, use the `delegateWallet` method from the `useHeadlessDelegatedActions` hook:

  ```tsx theme={"system"}
  type delegateWallet: async ({address: string, chainType: 'ethereum' | 'solana'}) => Promise<void>
  ```

  ### Usage

  ```tsx theme={"system"}
  import {useHeadlessDelegatedActions} from '@privy-io/expo';
  const {delegateWallet} = useHeadlessDelegatedActions();
  ```

  ### Parameters

  The `delegateWallet` method accepts a `params` object with the following fields:

  <ParamField path="address" type="string">
    Address of the embedded wallet to delegate.
  </ParamField>

  <ParamField path="chainType" type="'ethereum' | 'solana'">
    Chain type of the embedded wallet to delegate.
  </ParamField>
</View>
