Every transaction in Utila is labeled incoming or outgoing. This article explains what each label means, how Utila assigns it, and how it affects your transaction policy and compliance screening.
The short version
Direction | What it means
|
Outgoing | Your vault started the action: a transfer, a contract call, a message signature, or an exchange withdrawal you initiated in Utila. |
Incoming | Utila detected onchain activity that sent assets to a wallet address in your vault, or that altered the balance of a tracked token, and you did not start that action in Utila. |
Terminology
Outgoing means you sent or signed something.
Incoming for common simple transfers means that something arrived from outside your vault.
Direction describes your vault's relationship to the transaction. It does not mirror the blockchain's from and to fields.
Outgoing transactions
Utila creates an outgoing transaction as soon as someone starts an action in Utila, before it is signed, published, or confirmed onchain.
Common examples:
Transferring assets from the web console or the mobile app
Sending a transaction through the API
Signing a transaction requested through WalletConnect or a connected dApp
Withdrawing from a connected exchange to an onchain address, when you start that withdrawal in Utila
Batch transfers, sponsored transfers, and contract calls you start
Message signing, such as a personal sign or typed data on an EVM chain
Because your vault started the action, every outgoing transaction goes through your governance flow.
Transaction policy. The first rule that matches the transaction decides whether it is allowed, denied, or requires approval.
AML/KYT screening. If screening is enabled, Utila screens the transaction after the policy check. A deny result stops the transaction. If the rule requires approval, approvers vote after screening.
Signing. Signers approve the transaction with their key shares.
Publishing. Utila broadcasts the signed transaction to the blockchain.
Confirmation. Utila tracks the transaction until it is mined and confirmed.
An outgoing transaction appears in your transaction list as soon as it is created, often while it is still waiting for approval or a signature and before anything exists onchain.
Incoming transactions
Utila monitors supported blockchains. When a transfer arrives at a deposit address that belongs to one of your wallets, Utila creates an incoming transaction. You do not initiate, approve, or sign it.
Common examples:
A customer or partner sends crypto to your wallet's deposit address
An airdrop or other unsolicited token transfer arrives at your address
A transfer arrives from an external wallet, started outside Utila
An incoming transaction does not need a transaction policy rule, a signer, or an initiation step from you. Policy rules govern what your vault may send or sign, not what it receives.
Incoming transactions still move through states, for example from mined to confirmed. If AML/KYT screening is enabled for your vault, Utila screens the deposit after it is recorded. The funds stay in your usable balance while screening runs.
Special cases
Transfers between two wallets in the same vault
When you transfer assets from Wallet A to Wallet B in the same vault through Utila, Utila creates one outgoing transaction and updates that same record when it confirms. The receiving wallet does not get a separate incoming transaction.
If the transfer was not initiated in Utila, Utila records one incoming transaction for the vault.
Transfers to another Utila customer's vault
Your vault records an outgoing transaction. The recipient's vault records an incoming transaction when the funds arrive. Each vault has its own record.
Smart contract interactions
A contract call or swap you start in Utila is one outgoing transaction, even when several tokens move or assets land in another wallet in the same vault. Those token movements are part of the outgoing record.
If a transaction you did not start touches several wallets in your vault, Utila creates one incoming record for the vault, not one per wallet.
A movement between contracts that never touches a wallet address in your vault, such as an internal hop between two contracts, is not recorded as its own transaction. If you started the contract call, you still have your one outgoing transaction.
Exchange deposits and withdrawals
Action | Direction
|
You start a withdrawal in Utila from a connected exchange to your onchain wallet | Outgoing. This is the withdrawal you started. |
Those funds then arrive at a wallet address in your vault | Incoming. This is a separate record from the withdrawal. |
Funds arrive on the exchange account and sync in from the connection | Incoming. You did not start that movement in Utila. |
Message signing and token approvals
Signing a message or approving a token allowance is outgoing. Your vault started the signature, even though no assets moved.
Unexpected small incoming transfers
Some small incoming transfers are sent from an address that closely resembles one you already transact with, in the hope that you copy it from your transaction history for a future transfer. This is known as address poisoning.
Always take destination addresses from your address book, never from your transaction history. See Best practices to keep your assets secure.
What direction affects
Transaction policy
Only outgoing transactions are evaluated by your transaction policy. Policy cannot stop an outside party from sending assets to your address.
AML/KYT screening
AML/KYT screening is separate from transaction policy.
If screening is enabled for your vault:
Outgoing transactions are screened after the policy check and before approval. A deny result stops the transaction.
Incoming deposits are screened after they are recorded, and the funds stay in your usable balance while screening runs. If the result is deny, the amount is removed from your available balance and stays frozen until the alert is resolved. Allow and alert results do not freeze the funds.
Webhooks and integrations
Incoming and outgoing transactions trigger the same webhook events: TRANSACTION_CREATED, TRANSACTION_STATE_UPDATED, and, when screening is enabled, TRANSACTION_AML_SCREENING_RESULT_READY.
The webhook body does not include the direction. To tell incoming from outgoing, read the direction on the transaction itself.
Common questions
Can I change a transaction from incoming to outgoing?
No. Utila sets the direction based on how the transaction entered your vault, and you cannot edit it.
When can I cancel an outgoing transaction?
While it is waiting on transaction policy, AML/KYT screening, approval, or a signature. Once it is signed or waiting to be published, you can no longer cancel it. After it is published, dropping it requires a replacement transaction.
I sent a transaction from Utila but don't see it as outgoing.
Check the filters on your transaction list. A newly created transaction may still be waiting for approval or a signature. See The transaction lifecycle.
I received funds onchain but don't see an incoming transaction.
The most common reasons are that the funds were sent to an address that is not a wallet in this vault, Utila is still processing that chain, or the network is not supported for that wallet. Confirm that the destination address is a wallet address in your vault.
Another reason is that the deposit was flagged as spam by Utila, and are thus hidden. Spam transactions are unsolicited digital deposits sent to your wallet, often as part of fraudulent schemes.
Why does a same-vault transfer show as incoming?
This happens when the transfer was not initiated by Utila - Utila records one incoming transaction for the vault.
When a transfer is between two wallets in the same vault that you start in Utila, it is one outgoing transaction.