---
title: "Add wallets to a project in bulk"
method: POST
path: "/v2/accounts/{accountSlug}/projects/{projectSlug}/wallets"
tags: ["Wallets"]
---

# Add wallets to a project in bulk

`POST /v2/accounts/{accountSlug}/projects/{projectSlug}/wallets`

## Request

- Base URL: `https://api.tenderly.co/api`
- URL: `https://api.tenderly.co/api/v2/accounts/{accountSlug}/projects/{projectSlug}/wallets`
- Auth: one of:
  - API key in header `X-Access-Key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/tenderly/apis/tenderly-api/docs/v2/accounts/:accountSlug/projects/:projectSlug/wallets/post.ts> (a function with typed inputs; its response is checked against the schema)

Add many wallet addresses to a project in one request. Each wallet lists one or more networks, and each address and network combination is one wallet-network pair. A request takes at most 100 pairs; a pair repeated in the request counts once.

The response sorts the requested addresses into two lists:

- `added`: wallets this request added to the project.
- `existing`: addresses the project already had, as wallets or contracts. Their type and display name are not changed, so sending the same list again is safe.

An address is added as a wallet even when it is a contract. Every network must be a public network supported by Tenderly. An unsupported network returns `400` and nothing is added. If the new addresses would exceed your account's address limit, the request returns `403` and nothing is added.

**Tags**

Tags are added on every network the wallet is listed on, including addresses the project already had. Tags the address already has are kept; this endpoint never removes tags. A request that includes tags requires the `update_contract` project permission in addition to `add_contract`. Tagged addresses can be targeted as a group by [alerts](https://docs.tenderly.co/monitoring/alerts/types).

## Path parameters

- `accountSlug` string, required
- `projectSlug` string, required

## Request body

- BulkAddWalletsPayload
  - `wallets` BulkAddWallet[], required: Wallets to add. Across all wallets, the request takes at most 100 wallet-network pairs (one pair per address and network). A pair repeated in the request counts once.
    - `address` string, required: Wallet address, `0x` followed by 40 hex characters. The address is stored lowercase.
    - `network_ids` string[], required: IDs of the networks to add the wallet on. Each network is one wallet-network pair.
    - `display_name` string: Optional name of the wallet to be displayed. Applies only to wallets this request adds; the display name of an address the project already had is not changed. If the same address and network appear more than once in the request, the first display name is used.
    - `tags` string[]: Optional tags to add to the wallet on every listed network. At most 10 tags per wallet, each up to 255 characters. Surrounding whitespace is trimmed, an empty tag is rejected, and duplicate tags are ignored. Requires the `update_contract` project permission.

## Response `200`

A successful response.

- BulkAddWalletsResponse: Every requested address and network pair, sorted by whether this request added it.
  - `added` ProjectAddress[]: Wallets this request added to the project, one entry per wallet-network pair.
    - `id` string: ID of the address on the network, in the form `eth:{network_id}:{address}`.
    - `contract` object: Details of the address on the network.
      - `id` string
      - `network_id` string
      - `address` string
      - `type` string: Stored type of the address, `wallet` or `contract`.
    - `account` object: Same details as `contract`.
    - `project_id` string, uuid: ID of the project.
    - `added_by_id` string, uuid: ID of the user who added the address to the project.
    - `display_name` string: Display name of the address in the project. Empty when none is set.
    - `account_type` string: How the project tracks the address, `wallet` or `contract`.
    - `tags` object[]: Tags on the address in the project. Omitted when the address has no tags.
      - `tag` string
      - `created_at` string, date-time
    - `details_visible` boolean
    - `include_in_transaction_listing` boolean
    - `verification_type` string
    - `previous_versions` object[], nullable
    - `added_at` string, date-time: When the address was added to the project.
  - `existing` ProjectAddress[]: Requested addresses the project already had, as wallets or contracts. Their type and display name are unchanged; tags from the request are added to them.
    - `id` string: ID of the address on the network, in the form `eth:{network_id}:{address}`.
    - `contract` object: Details of the address on the network.
      - `id` string
      - `network_id` string
      - `address` string
      - `type` string: Stored type of the address, `wallet` or `contract`.
    - `account` object: Same details as `contract`.
    - `project_id` string, uuid: ID of the project.
    - `added_by_id` string, uuid: ID of the user who added the address to the project.
    - `display_name` string: Display name of the address in the project. Empty when none is set.
    - `account_type` string: How the project tracks the address, `wallet` or `contract`.
    - `tags` object[]: Tags on the address in the project. Omitted when the address has no tags.
      - `tag` string
      - `created_at` string, date-time
    - `details_visible` boolean
    - `include_in_transaction_listing` boolean
    - `verification_type` string
    - `previous_versions` object[], nullable
    - `added_at` string, date-time: When the address was added to the project.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: The resource was not found.
- `429`: The request was rate limited. See the [rate limits](#section/Introduction/Rate-limits) section for the current limits and how request counts expire.
- `500`: Server error.

## Changes

- **2026-10-06** `766e383288b3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/tenderly/apis/tenderly-api/changes/v2/accounts/:accountSlug/projects/:projectSlug/wallets/post.md)

---

[API](https://skmtc.dev/tenderly/apis/tenderly-api.md) - [All operations](https://skmtc.dev/tenderly/apis/tenderly-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tenderly/apis/tenderly-api/revisions/766e383288b3?raw)
