Desktop Transactions
Overview
Transactions are liquidity. Assets are worth nothing if they cannot be moved. This article demonstrates how to use the MPC desktop app to send funds from a Custody Infrastructure address to other internal and external destinations. First it looks at how transactions work and who can send transactions, then it walks you through making transaction requests from the MPC desktop app.
Transaction Flow
Transactions follow a set flow. A user requests funds be transferred from an address on the Custody Infrastructure platform to another address (this destination may be internal to the platform or to an external party). The transfer request is reviewed by approvers (how many approvers are needed is set by policy and can vary depending on the nature of the transaction). Once approved, the transaction is signed and sent to the blockchain system. There, it is picked up by a miner/validator, incorporated into a block, and added to the blockchain. Once enough blocks are added to the chain after the block containing our transaction, the transaction is considered confirmed.
sequenceDiagram
box LightBlue The Galaxy System
participant P1
participant P2
end
box The Blockchain System
participant P3
participant P4
participant P5
end
participant P1 as User
participant P2 as Approver
participant P3 as Mempool
participant P4 as Miner / Validator
participant P5 as Blockchain
P1 --> P5: Approved Transaction Flow
P1 ->> P2: Sends transaction request
P2 ->> P2: Approves transaction
P2 ->> P3: Approved transaction sent to mempool
P2 -->> P1: Notification: Transaction Approved
P3 ->> P4: Miner pulls transaction to block
P4 ->> P5: Block Added to Blockchain
P5 --> P1: Rejected Transaction Flow
P1 ->> P2: Send transaction request
P2 -x P2: Rejects transaction
P2 -->> P1: Notification: Transaction RejectedThe transaction status can be checked at any time. The status indicators are as follows (in order according to the flow above):
- Policy verification: The system checks that there is a policy that allows this user to request the transaction. This takes milliseconds; you will not see this policy flag but you will be notified if it fails.
- Awaiting approvers: The request has been made but not yet approved.
- Automated cosigners: The transaction has been approved and is being signed RIGHT NOW.
- (Optionally) Pending AML: The transaction's external addresses are being checked by Chainalysis.
- (Optionally) Blocked by AML: Chainalysis has found the transaction's external addresses are high risk, and the transaction has been blocked. This status is unique for outgoing transactions.
- Sent to blockchain: The request is either in the mempool or in a fresh, not-yet-confirmed block.
- Transaction confirmed: The transaction's block is old enough to be considered permanent.
Who Requests Transactions?
Only users with appropriate permissions can send transaction requests. Additionally, users are subject to limits on both the total fiat value they can send as well as the total amount they can spend as fees. Users will not be able to submit transactions that are beyond their limits. For more information about permissions and limits, see User ManagementUser Management.
The New Transaction button won't be available unless:
- There is a transaction policy configured for the account
- The user's role has limits above 0
- There is at least one asset with available funds
All the above conditions MUST be met or the new transaction button will not be available for the session.
Sending a secure transaction
The secure contacts address book lists all of your Custody Infrastructure cryptographically verified addresses. Create a transaction, set the value and use the preset modes to set your fee or input this manually. Finally the transaction goes through the approval process and is broadcast to the blockchain.
Making a Transaction Request
Transaction requests can only be made by a user who has permission to make transactions and is logged into the system with full (rather than read-only) access.
Click the + button at the top of the left sidebar to open the New Transaction menu. This button is available from all areas of the desktop.

Select your currency. You can only select currencies with current balances. If the currency's node is down, it will be unavailable.

Fill out the From information. Select where you want the transaction to come from. This can be a wallet, exchange, or Cashboxes. Options will only be available if they hold a balance (for wallets), are configured (for cashboxes), or are integrated (for exchanges).
Fill out the To information. Contacts allows you to select anyone in the account's address book, Wallets allows you to select any Custody Infrastructure account and wallet on the system, and New address allows you to send to a destination not yet registered in the system. The available options vary depending on the selection you made in From.
When selecting a To address, keep in mind that you can set any address. Policy filtering is not applied until you submit your request. If you set a destination that policy forbids, the transaction request attempt will automatically return an error.
You can optionally upload a .csv file in the format of Address, Amount to configure transactions to multiple destinations at once. CSV upload is not supported for all coins.

Fill out the Amount information. The system prevents you from setting a value higher than the available balance. Input the total amount of crypto asset you want to send and the dollar value will show below. Here, we are dealing in the net value, which is the amount that the destination address will receive. Fees are handled separately in the next step.
Configure the Fee information. The system checks the network and suggests three preset fees:
- No rush: This fee is below the market rate for a situation where the transaction can be processed during a period of lower demand and reduced fees.
- Market: This fee is in line with most other transactions in the network. It's unlikely to see your transaction picked up particularly quickly, but equally unlikely to see your transaction ignored.
- ASAP: This fee is notably higher than the market rate. It is likely to be picked up and added to a block relatively quickly.
Alternatively, select Custom to specify a fee value of your choice.
Preset fees are not always available.
Select Request to Send to send the transaction to the approval queue. It will be sent to the blockchain only after administrative approval.

If you attempt to request a transaction that surpasses any of your limits, you will receive an error and the transaction will not be sent for approval.
Transactions must be approved before being submitted to the blockchain. You will receive an automatic notification when your transaction request has been either approved or denied. Further details about the transaction's progress can be found by manually querying its status.
Checking Transaction Status
Go to the Transactions page to check the status of all pending, completed, and rejected transactions. They will be flagged according to the flow outlined earlier in this article.

Access the Transactions page by clicking the Transactions button.

The transactions page displays a detailed breakdown of each transaction. The Transactions PageTransactions Page article contains a detailed breakdown of the transactions page elements.
Anti-Money Laundering (AML) for transactions
For information on using the Internal and Chainalysis features in a desktop transaction, see Overriding Anti-Money Laundering (AML) flagged transactionsOverriding Anti-Money Laundering (AML) flagged transactions.
For general information about AML on Custody Infrastructure, see Anti-Money Laundering.
Further Reading
See User ManagementUser Management to learn how to control who can request and approve transactions.
See Anti-Money Laundering for details about the AML process.