# Contacts \[Name the addresses a team transacts with]

A contact is a team-wide name for an external address. Once saved, the name stands in for the raw address everywhere addresses appear: recipient search in [sends](/docs/transactions/sends), transaction feeds, the [Accounting page](/docs/accounting), and CSV exports. Contacts are shared by the whole team, and any member can create, edit, or delete them.

## Creating

Add contacts from the *Contacts* page, inline from any address shown in a transaction feed, or from the command menu. A contact is an address plus a display name; you can enter an ENS name, which is resolved once and stored as its address. Each address holds one contact per team, applied across all networks.

Two constraints: contacts must be EVM addresses, and the team's own Splits accounts can't be added as contacts (they're already named).

## Restrictions

:::note
This feature is in beta. Email support to enable it for your team.
:::

A **send rule** limits what a contact accepts. Pick one mode under *Restrict sends* when you create or edit the contact:

| Mode | What the contact accepts |
| --- | --- |
| No restrictions | Any token on any network. The default. |
| By network | Any token, on the networks you check. |
| By token and network | Only the token and network pairs you add. |

Rules are enforced when the transaction is created, so they cover a [send](/docs/transactions/sends), a [swap](/docs/transactions/swaps), or bridge that pays an external recipient. A send that no rule allows is rejected.

If a [schedule](/docs/transactions/schedules) already pays this contact in a token the new rules don't allow, saving the contact warns you first. The schedule keeps creating its drafts, but no one can sign them until the rules or the schedule changes.

## How addresses get named

When Splits displays an address, it uses the first name it finds: the team's account and bank-account names, then contact labels, then live ENS and Farcaster lookups, then [payee](/docs/contacts/compliance) details, and finally the shortened address. Saving a contact pins a name the whole team sees, instead of depending on what an address resolves to.

## Other named recipients

Two recipient types are stored separately from contacts but appear alongside them in recipient search:

* **Payees**: counterparties with a verified identity and tax forms; see [Compliance](/docs/contacts/compliance).
* **Vendor bank accounts**: fiat payees with a deposit address; see [Paying vendors](/docs/banking/paying-vendors).

## Programmatic access

Via the [Splits CLI / MCP](/docs/introduction/agents):

* `splits contacts list --q "acme"`: search contacts by name or address; returns up to 500 (**Read** scope)
* `splits contacts lookup --addresses 0x...,0x...`: batch address-to-name lookup, max 100 addresses (**Read** scope)

Creating and editing contacts is web-only today.
