---
title: "Edit Contact"
method: POST
path: "/api/v1/addressbook/contacts/{id}/proposals"
tags: ["Address Book"]
---

# Edit Contact

`POST /api/v1/addressbook/contacts/{id}/proposals`

## Request

- Base URL: `https://api.fordefi.com`
- URL: `https://api.fordefi.com/api/v1/addressbook/contacts/{id}/proposals`
- Auth: HTTP bearer

Edit address book contact.

## Path parameters

- `id` string, uuid, required: ID of the address book contact.

## Headers

- `x-signature` string: Signature of the body. Base64 encoded string. If the request is made programatically by an API user, signing of the request is required and is intended to protect you from malicious backends. `x_signature` is valid for 120 seconds.
- `x-timestamp` integer: Timestamp of the signature. Integer. Specify an Epoch date. If the request is made programatically by an API user, the timestamp of the request is required and is intended to protect you from replay attacks.

## Request body

- union
  - EditAptosContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'aptos', required: The type of the chain.
    - `chains` AptosChainUniqueId[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` AptosAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'aptos', required: Aptos asset identifier type.
      - `details` union, required
        - AptosNativeAssetIdentifierRequest
          - `type` 'native', required: Aptos asset identifier type.
          - `chain` 'aptos_mainnet' | 'aptos_testnet' | 'aptos_movement_mainnet' | 'aptos_movement_testnet', required
        - AptosCoinAssetIdentifierRequest
          - `type` 'coin', required: Legacy coin asset identifier type.
          - `coin_type` AptosCoinTypeRequest, required: Coin type represents a blockchain legacy coin type.
            - `chain` 'aptos_mainnet' | 'aptos_testnet' | 'aptos_movement_mainnet' | 'aptos_movement_testnet', required
            - `coin_type_str` string, required: Coin type string representation.
        - AptosNewCoinAssetIdentifierRequest
          - `type` 'new_coin', required: New coin asset identifier type.
          - `new_coin_type` AptosNewCoinTypeRequest, required: New coin type represents a blockchain new coin type.
            - `chain` 'aptos_mainnet' | 'aptos_testnet' | 'aptos_movement_mainnet' | 'aptos_movement_testnet', required
            - `metadata_address` string, required: New coin's metadata address.
  - EditArchContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'arch', required: The type of the chain.
    - `chains` ArchChainUniqueId[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` ArchAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'arch', required: Arch asset identifier type.
      - `details` union, required
        - ArchNativeAssetIdentifierRequest
          - `type` 'native', required: Arch asset identifier type.
          - `chain` 'arch_mainnet' | 'arch_testnet', required
        - ArchAplTokenAssetIdentifierRequest
          - `type` 'apl_token', required: APL token asset identifier type.
          - `token` ArchAddressRequest, required: Address represents a blockchain address.
            - `chain` 'arch_mainnet' | 'arch_testnet', required
            - `base58_repr` string, required: Base58 representation of the address in the chain.
  - EditCantonContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'canton', required: The type of the chain.
    - `chains` CantonChainUniqueId[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` CantonAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'canton', required: Canton asset identifier type.
      - `details` union, required
        - CantonNativeAssetIdentifierRequest
          - `type` 'native', required: Canton asset identifier type.
          - `chain` 'canton_mainnet' | 'canton_testnet', required
        - CantonCip56TokenAssetIdentifierRequest
          - `type` 'cip56_token', required: CIP56 token asset identifier type.
          - `token` CantonInstrumentIdRequest, required: Instrument ID represents a Canton instrument identifier (address + id).
            - `address` CantonAddressRequest, required: Address represents a blockchain address.
              - …
            - `id` string, required: The instrument ID within the provider's namespace.
    - `memo` string: Memo is an additional address feature used for identifying a recipient.
  - EditCosmosContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'cosmos', required: The type of the chain.
    - `assets_identifiers` CosmosAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'cosmos', required: Cosmos asset identifier type.
      - `details` union, required
        - CosmosNativeAssetIdentifierRequest
          - `type` 'native', required: Cosmos asset identifier type.
          - `chain` 'cosmos_agoric-3' | 'cosmos_akashnet-2' | 'cosmos_archway-1' | 'cosmos_axelar-dojo-1' | 'cosmos_bbn-1' | 'cosmos_celestia' | 'cosmos_cosmoshub-4' | 'cosmos_dydx-mainnet-1' | 'cosmos_dydx-testnet-4' | 'cosmos_dymension_1100-1' | 'cosmos_injective-1' | 'cosmos_neutron-1' | 'cosmos_nillion-1' | 'cosmos_noble-1' | 'cosmos_osmosis-1' | 'cosmos_provider' | 'cosmos_ssc-1' | 'cosmos_pacific-1' | 'cosmos_stride-1' | 'cosmos_thorchain-1' | 'cosmos_mantra-1', required
        - CosmosTokenAssetIdentifierRequest
          - `type` 'token', required: Token asset identifier type.
          - `chain` 'cosmos_agoric-3' | 'cosmos_akashnet-2' | 'cosmos_archway-1' | 'cosmos_axelar-dojo-1' | 'cosmos_bbn-1' | 'cosmos_celestia' | 'cosmos_cosmoshub-4' | 'cosmos_dydx-mainnet-1' | 'cosmos_dydx-testnet-4' | 'cosmos_dymension_1100-1' | 'cosmos_injective-1' | 'cosmos_neutron-1' | 'cosmos_nillion-1' | 'cosmos_noble-1' | 'cosmos_osmosis-1' | 'cosmos_provider' | 'cosmos_ssc-1' | 'cosmos_pacific-1' | 'cosmos_stride-1' | 'cosmos_thorchain-1' | 'cosmos_mantra-1', required
          - `denom` string, required: The denom of the asset.
    - `memo` string: Memo is an additional address feature used for identifying a recipient.
  - EditEvmContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'evm', required
    - `chains` string[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` EvmAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'evm', required: Asset identifier type.
      - `details` union, required
        - EvmNativeAssetIdentifierRequest
          - `type` 'native', required: EVM asset identifier type.
          - `chain` string, required: The details of the chain of the native asset.
        - EvmErc20AssetIdentifierRequest
          - `type` 'erc20', required: EVM asset identifier type.
          - `token` EvmAddressRequest, required: Address represents a blockchain address.
            - `chain` string, required: The chain details this address is of.
            - `hex_repr` string, required: Hexadecimal representation of the address in the chain.
        - EvmErc721AssetIdentifierRequest
          - `type` 'erc721', required: EVM asset identifier type.
          - `token` EvmAddressRequest, required: Address represents a blockchain address.
            - `chain` string, required: The chain details this address is of.
            - `hex_repr` string, required: Hexadecimal representation of the address in the chain.
          - `token_id` string, required: The token id of the ERC-721 token.
        - EvmErc1155AssetIdentifierRequest
          - `type` 'erc1155', required: EVM asset identifier type.
          - `token` EvmAddressRequest, required: Address represents a blockchain address.
            - `chain` string, required: The chain details this address is of.
            - `hex_repr` string, required: Hexadecimal representation of the address in the chain.
          - `token_id` string, required: The token id of the ERC-1155 token.
        - EvmHyperLiquidAssetIdentifierRequest
          - `type` 'hyperliquid', required: EVM asset identifier type.
          - `chain` string, required: Currently artificially set to Arbitrum.
          - `token_id` string, required: The token id of the asset on Hyperliquid.
          - `index` integer, required: The index of the asset on Hyperliquid.
  - EditRippleContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'ripple', required: The type of the chain.
    - `chains` RippleChainUniqueId[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` RippleAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'ripple', required: Ripple asset identifier type.
      - `details` union, required
        - RippleNativeAssetIdentifierRequest
          - `type` 'native', required: Ripple asset identifier type.
          - `chain` 'ripple_mainnet' | 'ripple_testnet', required
        - RippleTrustLineAssetIdentifierRequest
          - `type` 'trust_line_asset', required: Ripple asset identifier type.
          - `currency` string, required: The 3-char or 40-char hex currency code.
          - `issuer` RippleAddressRequest, required: Address represents a Ripple (XRP Ledger) blockchain address.
            - `chain` 'ripple_mainnet' | 'ripple_testnet', required
            - `base58_repr` string, required: The classic (base58check) representation of the address.
    - `tag` string: The XRP Ledger destination tag, a numeric value used for identifying a recipient.
  - EditSolanaContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'solana', required: The type of the chain.
    - `chains` SolanaChainUniqueId[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` SolanaAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'solana', required: Solana asset identifier type.
      - `details` union, required
        - SolanaNativeAssetIdentifierRequest
          - `type` 'native', required: Solana asset identifier type.
          - `chain` 'solana_mainnet' | 'solana_devnet' | 'solana_eclipse_mainnet' | 'solana_fogo_mainnet' | 'solana_fogo_testnet', required
        - SolanaSplTokenAssetIdentifierRequest
          - `type` 'spl_token', required: SPL token asset identifier type.
          - `token` SolanaAddressRequest, required: Address represents a blockchain address.
            - `chain` 'solana_mainnet' | 'solana_devnet' | 'solana_eclipse_mainnet' | 'solana_fogo_mainnet' | 'solana_fogo_testnet', required
            - `base58_repr` string, required: Base58 representation of the address in the chain.
  - EditStacksContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'stacks', required: The type of the chain.
    - `chains` StacksChainUniqueId[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` StacksAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'stacks', required: Stacks asset identifier type.
      - `details` union, required
        - StacksNativeAssetIdentifierRequest
          - `type` 'native', required: Stacks asset identifier type.
          - `chain` 'stacks_mainnet', required
        - StacksSip10AssetIdentifierRequest
          - `type` 'sip10', required: Sip10 asset identifier type.
          - `sip10` StacksAddressRequest, required: Address represents a blockchain address.
            - `chain` 'stacks_mainnet', required
            - `hex_repr` string, required: Hexadecimal representation of the address in the chain.
    - `memo` string: Memo is an additional address feature used for identifying a recipient.
  - EditStarknetContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'starknet', required: The type of the chain.
    - `chains` StarknetChainUniqueId[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` StarknetAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'starknet', required: Starknet asset identifier type.
      - `details` union, required
        - StarknetNativeAssetIdentifierRequest
          - `type` 'native', required: Starknet asset identifier type.
          - `chain` 'starknet_mainnet', required
        - StarknetErc20AssetIdentifierRequest
          - `type` 'erc20', required: Erc20 asset identifier type.
          - `erc20` StarknetAddressRequest, required: Address represents a blockchain address.
            - `chain` 'starknet_mainnet', required
            - `hex_repr` string, required: Hexadecimal representation of the address in the chain.
  - EditStellarContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'stellar', required: The type of the chain.
    - `chains` StellarChainUniqueId[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` StellarAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'stellar', required: Stellar asset identifier type.
      - `details` union, required
        - StellarNativeAssetIdentifierRequest
          - `type` 'native', required: Stellar asset identifier type.
          - `chain` 'stellar_mainnet' | 'stellar_testnet', required
        - StellarClassicAssetIdentifierRequest
          - `type` 'classic_asset', required: Stellar asset identifier type.
          - `code` string, required: The 1-4 character asset code.
          - `issuer` StellarAddressRequest, required: Address represents a blockchain address.
            - `chain` 'stellar_mainnet' | 'stellar_testnet', required
            - `base32_repr` string, required: Hexadecimal representation of the address in the chain.
          - `chain` 'stellar_mainnet' | 'stellar_testnet', required
        - StellarSorobanAssetIdentifierRequest
          - `type` 'soroban_asset', required: Stellar asset identifier type.
          - `address` string, required: The Soroban asset address.
          - `chain` 'stellar_mainnet' | 'stellar_testnet', required
    - `memo` string: Memo is an additional address feature used for identifying a recipient.
  - EditSuiContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'sui', required: The type of the chain.
    - `chains` SuiChainUniqueId[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` SuiAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'sui', required: Sui asset identifier type.
      - `details` union, required
        - SuiNativeAssetIdentifierRequest
          - `type` 'native', required: Sui asset identifier type.
          - `chain` 'sui_mainnet' | 'sui_testnet', required
        - SuiCoinAssetIdentifierRequest
          - `type` 'coin', required: Coin asset identifier type.
          - `coin_type` SuiCoinTypeRequest, required: Coin type represents a blockchain coin type.
            - `chain` 'sui_mainnet' | 'sui_testnet', required
            - `coin_type_str` string, required: Coin type string representation.
  - EditTonContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'ton', required: The type of the chain.
    - `chains` TonChainUniqueId[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` TonAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'ton', required: TON asset identifier type.
      - `details` union, required
        - TonNativeAssetIdentifierRequest
          - `type` 'native', required: TON asset identifier type.
          - `chain` 'ton_mainnet' | 'ton_testnet', required
        - TonJettonAssetIdentifierRequest
          - `type` 'jetton', required: Jetton asset identifier type.
          - `jetton` TonAddressRequest, required: Address represents a blockchain address.
            - `chain` 'ton_mainnet' | 'ton_testnet', required
            - `address` string, required: Contract address in a raw format.
    - `comment` string: Comment is an additional address feature used for identifying a recipient.
  - EditTronContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'tron', required: The type of the chain.
    - `chains` TronChainUniqueId[]: The chains the contact belongs to. If not provided, the contact will be associated with all chains.
    - `assets_identifiers` TronAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'tron', required: TRON asset identifier type.
      - `details` union, required
        - TronNativeAssetIdentifierRequest
          - `type` 'native', required: TRON asset identifier type.
          - `chain` 'tron_mainnet' | 'tron_shasta', required
        - TronTrc20AssetIdentifierRequest
          - `type` 'trc20', required: Trc20 asset identifier type.
          - `trc20` TronAddressRequest, required: Address represents a blockchain address.
            - `chain` 'tron_mainnet' | 'tron_shasta', required
            - `base58_repr` string, required: Base58 representation of the address in the chain.
    - `memo` string: Memo is an additional address feature used for identifying a recipient.
  - EditUtxoContactRequest
    - `name` string, required: The name of the contact.
    - `contact_type` 'contract' | 'recipient', required
    - `type` 'utxo', required: The type of the chain.
    - `assets_identifiers` UtxoAssetIdentifierRequest[]: The assets identifiers of the contact.
      - `type` 'utxo', required: Utxo asset identifier type.
      - `details` UtxoNativeAssetIdentifierRequest, required
        - `type` 'native', required: Utxo asset identifier type.
        - `chain` 'bitcoin_mainnet' | 'bitcoin_testnet' | 'bitcoin_testnet_v4' | 'dogecoin_mainnet' | 'bitcoin_cash_mainnet' | 'pearl_testnet' | 'pearl_mainnet' | 'litecoin_mainnet' | 'litecoin_testnet' | 'bitcoin_cash_testnet' | 'dogecoin_testnet', required

## Response `200`

Successful Response

- unknown

## Other responses

- `400`: Bad Request
- `401`: Unauthorized User
- `403`: Forbidden User
- `408`: Request Timeout
- `422`: Validation Error
- `429`: Rate Limit Exceeded
- `500`: Unexpected Error

## Changes

- **2026-10-04** `2070400d3da0`: 14 breaking
  - added the new required request property `oneOf[subschema #10: EditStellarContactRequest]/contact_type`
  - added the new required request property `oneOf[subschema #11: EditSuiContactRequest]/contact_type`
  - added the new required request property `oneOf[subschema #12: EditTonContactRequest]/contact_type`
  - added the new required request property `oneOf[subschema #13: EditTronContactRequest]/contact_type`
  - …10 more
- **2026-09-17** `c73f4c863ec5`: 8 breaking, 3 warning, 1 info
  - the `oneOf[subschema #11: EditSuiContactRequest]/assets_identifiers/items/details/oneOf[subschema #2: SuiCoinAssetIdentifierRequest]/coin_type/coin_type_str` request property's minLength was increased from `0` to `1`
  - the `oneOf[subschema #1: EditAptosContactRequest]/assets_identifiers/items/details/oneOf[subschema #2: AptosCoinAssetIdentifierRequest]/coin_type/coin_type_str` request property's minLength was increased from `0` to `1`
  - the `oneOf[subschema #3: EditCantonContactRequest]/assets_identifiers/items/details/oneOf[subschema #2: CantonCip56TokenAssetIdentifierRequest]/token/address/account` request property's minLength was increased from `70` to `71`
  - the `oneOf[subschema #3: EditCantonContactRequest]/assets_identifiers/items/details/oneOf[subschema #2: CantonCip56TokenAssetIdentifierRequest]/token/id` request property's minLength was increased from `0` to `1`
  - …8 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/fordefi/apis/fordefi-api/changes/api/v1/addressbook/contacts/:id/proposals/post.md)

---

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