# Unlock outgoing transactions

Why can't I send transactions?
Ripple Custody (Wallet) uses a zero-trust security model. Every new wallet is **deposit-only** by default. The platform blocks all outgoing transactions until you explicitly configure what is allowed. This design prevents unauthorized transfers, but it also means you must complete the steps on this page before your wallet can send anything.

Three conditions must be met before a wallet can send outgoing transactions:

1. **At least one transaction policy** exists for the asset you want to send.
2. **At least one address book entry** exists for the destination (required for external addresses only — not needed for transfers between wallets in your organization).
3. **Outgoing transactions are enabled** on the wallet.


All three must be in place. If any one is missing, outgoing transactions are blocked.

## Step 1: Create a transaction policy

Owner or Administrator role required
Only users with the **Owner** or **Administrator** role can create a transaction policy. Other roles don't see **Add a new rule**. If you don't see it, ask an owner or administrator in your organization.

A transaction policy defines the rules for what outgoing transactions are permitted from a wallet. Without a policy for the asset you want to send, the platform rejects the transaction.

1. Open your wallet and go to the **Policy** tab.
2. Click **Add a new rule**. The **Add policy rule** form opens with six steps: **Direction**, **Rule**, **Conditions**, **Scope**, **Advanced**, and **Confirm**. (On a new wallet, you can also click **Add policy rule** in the **Set up your rules** banner.)
3. On the **Direction** step, keep **Outbound** selected, then click **Next**.
4. On the **Rule** step, keep **Limit** selected, then click **Next**.
5. On the **Conditions** step, select the **Asset** you want to create a policy rule for.


Non-standard assets
If the asset you need isn't listed, click **Add asset** and enter the asset's details, such as its standard, contract address, and symbol.

1. Enter the **Value limit**, then under **Apply limit to**, select how the limit applies:


| Option | What it controls | Example |
|  --- | --- | --- |
| Per transaction | Maximum amount for any single transaction | "No single transaction can exceed 10 ETH" |
| Rolling | Maximum amount within a time window | "No more than 100 ETH per 24 hours" |
| Max total value | Lifetime cap on total withdrawals | "No more than 1,000 ETH can ever leave this wallet" |


1. Click **Next**. On the **Scope** step, under **To**, select the allowed destinations. Choose which counterparties or addresses can receive funds under this rule:
  - **All counterparties and wallets** — Permits transactions to any registered address or internal wallet. This is the broadest option and the default.
  - **All counterparties** — Permits transactions to all counterparties and all of their registered addresses.
  - **Selected counterparties** — Permits transactions only to specific counterparties and all of their registered addresses.
  - **Selected addresses** — Permits transactions only to specific addresses from your address book.
  - **Selected wallets** — Permits transactions only to specific wallets within your organization.
2. Click **Next**. (Optional) On the **Advanced** step, under **The initiator**, select **User** or **API credential** to restrict which initiator can create transactions under this rule. The default, **All**, applies the rule to every initiator.
3. Click **Next**. On the **Confirm** step, review the rule and click **Add policy rule**.


If your organization has an approval group for policy rules, the rule shows **Inactive | Approval pending** on the **Policy** tab until it's approved. It takes effect after approval.

Recommended first policy
For sandbox testing, start with a **per transaction** policy with a reasonable limit and **all counterparties and wallets** as the destination. You can create more restrictive policies later.

Policies take effect immediately
The policy engine evaluates every outgoing transaction against your active policies. A policy rule takes effect as soon as it's active: immediately, or after approval if your organization requires approval for policy rules. Any transaction that exceeds the policy limits or targets an unpermitted destination is blocked.

You can create multiple policies for the same asset in a wallet. When you send a transaction, the platform checks all matching policies. The transaction must pass every applicable policy to proceed.

See [Policies](/pt-br/products/wallet/governance-and-controls/policies) to understand how policies work, and [Manage policies](/pt-br/products/wallet/governance-and-controls/policies/manage-policies) for step-by-step instructions.

## Step 2: Add an address book entry

Internal transfers only?
If you only plan to transfer funds between wallets within your own organization, skip this step. The address book is required only for transactions to external addresses.

Owner or Administrator role required
Only users with the **Owner** or **Administrator** role can add counterparties and addresses. Other roles don't see **Add counterparty** or **Add address**. If you don't see them, ask an owner or administrator in your organization.

The address book stores information about external counterparties and their blockchain addresses. Ripple Custody (Wallet) requires every external destination to be registered in the address book before you can send to it.

The **Address book** page has two tabs: **Counterparties** (to manage counterparties) and **Addresses** (to manage individual blockchain addresses).

1. Navigate to **Address book** in the console sidebar.
2. On the **Counterparties** tab, click **Add counterparty**.
3. Enter the counterparty's **Name** and, optionally, a **Description**.
4. Under **Type**, select the counterparty type:
  - **Dapp** — A decentralized application or smart contract.
  - **Individual** — A single person. Enter their first name, last name, and postal address.
  - **Organization** — A company or other business entity. This is the default. Enter its legal name and postal address.
5. Click **Next** to create the counterparty.
6. Open the counterparty from the **Counterparties** list and click **Add address** to register a blockchain address.
7. Enter the **Wallet address**, select the **Supported blockchains**, and enter a **Name** for the address. A description is optional.
8. Under **Add third party custodian details?**, keep **Do not add custodian details** or add the custodian's details.
9. Select the confirmation checkbox under **Submission**, then click **Add address**.


If your organization has an approval group for addresses, the address shows **Inactive | Approval pending** until it's approved. Addresses may also be subject to compliance checks before you can use them.

Verify the address and blockchain
Make sure the address is correct and belongs to the right blockchain. Sending funds to an incorrect or wrong-chain address can result in permanent loss of those assets.

![The Create counterparty form with the Dapp, Individual, and Organization types](../../images/get-started-add-counterparty.png)

See [Address book overview](/pt-br/products/wallet/governance-and-controls/address-book) and [Manage address book](/pt-br/products/wallet/governance-and-controls/address-book/manage-address-book) for the full reference.

## Step 3: Enable outgoing transactions

**Required role:** Owner, Administrator, or Proposer.

By default, outgoing transactions are disabled on new wallets even after you set up policies and addresses. You must enable them explicitly.

1. Open your wallet. A new wallet shows the **Disabled** status and a **DEPOSITS ONLY** label.
2. Click **Enable transactions**.
3. In the **Enable transactions** dialog, click **Enable**. The wallet status changes to **Enabled**.


![A new wallet with the Disabled status, the DEPOSITS ONLY label, and the Enable transactions button](../../images/get-started-wallet-enable-transactions.png)

You can disable outgoing transactions at any time from the wallet's settings (**Settings** > **Transactions** > **Outgoing**), or by clicking **Disable** at the top of the wallet page.

## Verify your setup

Before you send your first transaction, confirm that all three conditions are met:

- **Policy** — Your wallet's **Policy** tab shows at least one active policy for the asset you want to send.
- **Address book** — The **Address book** contains an entry for your intended destination (skip this check for internal wallet-to-wallet transfers).
- **Transactions enabled** — Your wallet shows the **Enabled** status.


## Next step

Send your first transaction:

- [Send your first transaction](/pt-br/products/wallet/get-started/console/send-your-first-transaction)