> For the complete documentation index, see [llms.txt](https://developer.1moneynetwork.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.1moneynetwork.com/user-guides/custodians-and-centralized-exchanges-cexs.md).

# Custodians & Centralized Exchanges (CEXs)

## Introduction

***

1Money's APIs enable seamless integration with automation, security, and compliance workflows common across custodian and centralized exchanges.

Key features include:

* Out-of-the-box support for [tracking account balances](#id-5.-balance-retrieval), [recent transactions](#id-5.-tracking-balance-changes), and [payment transfers](#id-6.-transferring-assets).
* Simplified management of accounts, thanks to the 1Money protocol’s gasless transactions, low latency, and high throughput—even during periods of high market volatility.
* Compatibility with Ethereum’s elliptic curve cryptography and address format, facilitating integration with MPC (Multi-Party Computation) signing processes.

## Integration Guide

***

The following provides How-To's on common functions for Custodians and Exchanges.&#x20;

1. [Infrastructure](#id-1.-infrastructure)
2. [Managing accounts](#id-2.-account-management)
3. [Asset standards](#id-3.-asset-standards)
4. [Retrieving balances](#id-4.-retrieving-balances)
5. [Tracking balance changes](#id-5.-tracking-balance-changes)
6. [Transferring assets](#step-6-transferring-assets)

## 1. Infrastructure

***

Get started immediately by connecting directly to 1Money Network's publicly available [**Rest API Endpoints and Websockets**](/integrations/network-access.md).&#x20;

## 2. Account management&#x20;

***

### <sub>Address and private key format</sub>

The 1Money Network uses the **same elliptic curve signature scheme and account addresses as Ethereum**, ensuring a familiar user experience.

Based on the Ethereum standard, a private key is made up of 64 hex characters and can be encrypted with a password.&#x20;

Example:

```sh
Private Key: 0x6d8e4df8f5177ed29a9c1742e1b774a2a6e1e7a2e397ad03b1b57e0b8a118536
```

The public key is generated from the private key using the Elliptic Curve Digital Signature Algorithm. You get a public address for your account by taking the last 20 bytes of the Keccak-256 hash of the public key and adding `0x` to the beginning.

Example:

```sh
Public Key: 0x5e97870f263700f46aa00d967821199b9bc5a120
```

### <sub>Account Creation</sub>

Account public/private keypairs from Ethereum can be reused seamlessly on the 1Money Network.&#x20;

New Accounts can be generated using any wallet within Ethereum and simply reused on 1Money.&#x20;

Wallet integrations both with popular existing wallets and native solutions will be coming in the near future.&#x20;

## 3. Asset standards

***

Tokens on the 1Money Network share the following attributes:

1. Token value can support 0–18 decimals.
2. Each token has a `master_authority`, designating the original issuer.

Use the [get token metadata](/integrations/rest-apis/tokens/get-token-metadata.md) API to pull specific metadata on a token.&#x20;

Example result:&#x20;

```sh
{
  "symbol": "LTEST2",
  "master_authority": "0x4f9f49f7f437da81fcc1b0cf82edb510ffe4b92c",
  "master_mint_authority": "0x0000000000000000000000000000000000000000",
  "minter_authorities": [],
  "pause_authority": "0x0000000000000000000000000000000000000000",
  "burn_authorities": [],
  "black_list_authorities": [],
  "black_list": [],
  "metadata_update_authority": "0x0000000000000000000000000000000000000000",
  "supply": "100000000000000",
  "decimals": 6,
  "is_paused": false,
  "is_private": false,
  "meta": null
}
```

## 4. Balance Retrieval

***

Use the [get account by token](/integrations/rest-apis/accounts/get-account-by-token.md)  API with your `account address` and `token address` as inputs to fetch balances.

Example result:&#x20;

<pre class="language-sh"><code class="lang-sh"><strong>{
</strong>  "token_account_address": "0x204ebf86a36fb93b80d077e55484bed31537b200",
  "balance": "99750399380000",
  "nonce": 2470
}
</code></pre>

## 5. Tracking balance changes

***

{% hint style="info" %}
**Checkpoint**:

The 1Money Network is a broadcast-based network which is different from a blockchain network. A checkpoint in the 1Money Network represents a specific point in time that captures the current state of each account.

Learn more in the [**system components**](/core-concepts/system-components.md) section.&#x20;
{% endhint %}

Balance changes can be queried by:&#x20;

1. Getting the [get checkpoint latest number API](/integrations/rest-apis/checkpoints/get-the-latest-checkpoint-number.md) to find the network's latest checkpoint number&#x20;
2. Compare the network's checkpoint number to your local checkpoint number&#x20;
3. If they match, use the [get checkpoint by number API](/integrations/rest-apis/checkpoints/get-checkpoint-by-number.md) to pull all the transaction data from that checkpoint &#x20;
4. Input the latest checkpoint number ( `number=`) and set `&full=true` to pull the transaction data

Example result:&#x20;

```sh
{
  "extra_data": "text",
  "hash": "0xf55f9525be94633b56f954d3252d52b8ef42f5fd5f9491b243708471c15cc40c",
  "number": "1500",
  "parent_hash": "0xf55f9525be94633b56f954d3252d52b8ef42f5fd5f9491b243708471c15cc40c",
  "receipts_root": "0xf55f9525be94633b56f954d3252d52b8ef42f5fd5f9491b243708471c15cc40c",
  "state_root": "0xf55f9525be94633b56f954d3252d52b8ef42f5fd5f9491b243708471c15cc40c",
  "timestamp": "1739760890",
  "transactions_root": "0xf55f9525be94633b56f954d3252d52b8ef42f5fd5f9491b243708471c15cc40c",
  "size": 1,
  "transactions": [
    {
      "data": {
        "decimals": "18",
        "master_authority": "0x9E1E9688A44D058fF181Ed64ddFAFbBE5CC742Ab",
        "symbol": "USDX"
      },
      "transaction_type": "TokenCreate"
    },
    {
      "chain_id": "21210",
      "checkpoint_hash": "0xf55f9525be94633b56f954d3252d52b8ef42f5fd5f9491b243708471c15cc40c",
      "checkpoint_number": "10",
      "fee": "10",
      "from": "0x9E1E9688A44D058fF181Ed64ddFAFbBE5CC742Ab",
      "hash": "0xf55f9525be94633b56f954d3252d52b8ef42f5fd5f9491b243708471c15cc40c",
      "nonce": "10",
      "signature": {
        "r": "72956732934625920503481762689501378577921804342307439094906376029324416116949",
        "s": "29902520081700531224291681396692026253288382272435451874524203378285409371412",
        "v": "1"
      },
      "transaction_index": "10"
    }
  ]
}
```

## 6. Asset Transfers

***

To transfer assets:&#x20;

1. Use the[ submit payment API](/integrations/rest-apis/transactions/submit-payment.md) to prepare the transaction with a private key signature
2. Submit a signed transaction to the network.
3. Upon submission, a transaction hash is returned.
4. Use [get transaction receipt by hash](/integrations/rest-apis/transactions/get-transaction-receipt-by-hash.md) to check on the status of your transaction.

Transactions are finalized instantly—no need to wait for checkpoint confirmations.

<br>

<br>
