# Restricted wallet (https://docs-i0yym09dy-ton-core-docs.vercel.app/llms/standard/wallets/restricted/content.md)



<Callout type="danger" title="Security warning">
  Restricted Wallet is unmaintained and has unresolved security issues.
</Callout>

Restricted Wallet is a specialized wallet contract that restricts transfers to predefined owner address, and some operations with Elector and Config contracts. It is used in [Single Nominator](https://github.com/orbs-network/single-nominator) project to securely hold a validator stake and participate in elections without a risk of stealing funds from it.

## What makes it different [#what-makes-it-different]

Unlike standard wallets that allow transfers to any address, Restricted Wallet implements address-based restrictions that limit where funds can be sent.

**Standard wallet behavior:**\
You can send funds to any valid address.

**Restricted Wallet behavior:**\
You can only send funds to the predefined owner address or do operations with [Elector](/llms/foundations/system/content.md) (new stake, recover stake request, new complaint, and vote for a complaint) and [Config](/llms/foundations/system/content.md) (vote for specific proposal to change config) contracts.

## How it works [#how-it-works]

<Image src="/images/wallets/restricted.png" darkSrc="/images/wallets/restricted.png" alt="Single Nominator Architecture" />

### Allowed actions [#allowed-actions]

1. Send a message to the owner of this wallet.
2. Send "vote for a configuration proposal" message to the [Config contract](/llms/foundations/system/content.md).
3. Send "new stake", "recover stake request", "new complaint", or "vote for a complaint" messages to the [Elector contract](/llms/foundations/system/content.md).

It is allowed to use [message modes](/llms/languages/func/stdlib/content.md) 128, 64, 2, and 1. Mode 2 (ignore errors) is always enabled when sending messages from this wallet.

## Implementation [#implementation]

### Source code [#source-code]

* Repository: [EmelyanenkoK/nomination-contract/restricted-wallet](https://github.com/EmelyanenkoK/nomination-contract/tree/master/restricted-wallet)
