---
title: "內部交易：通知使用者所有加密貨幣交易"
description: "Alchemy Notify 套件現已支援內部（智能合約）交易的通知。"
---

# 內部交易：通知使用者所有加密貨幣交易

Alchemy Notify 套件現在支援所有 ETH 和 Token 轉帳的通知，包括我們最新加入的內部\(智能合約\)交易——讓使用者對自己的交易有完整的透明度，每一步都能掌握。

如果想快速了解 Ethereum 地址活動通知，可以參考[這篇部落格文章](https://www.alchemy.com/blog/introducing-ethereum-address-activity-notifications)。

## 什麼是內部交易？
<ImageBlock
  src="https://media.alchemy.com/1704458111-illustration-of-user-receiving-push-notifications-on-mobile-for-my-ether-wallet-dapp.jpg"
  alt="使用者在手機上接收 My Ether Wallet DApp 推播通知的示意圖。"
  width={2540}
  height={1624}
  caption="透過 Alchemy Notify，使用者可以接收應用程式內部交易的推播通知。"
  priority
/>

內部交易通知

要理解什麼是內部交易，最好先退一步，看看 Ethereum 上有哪些交易類型。交易是對 Ethereum 鏈的狀態變更，也就是說它們不是在讀取資料，而是在向鏈上_寫入_資料。

Ethereum 上會發生許多種狀態變更，不過使用者通常最關心的是交易。為了通知使用者他們的交易情況，開發者可以接入[地址活動通知](https://www.alchemy.com/blog/introducing-ethereum-address-activity-notifications)，這會監控[轉帳](https://docs.alchemy.com/docs/reference/transfers-api)\(兩個 Ethereum 帳戶之間的價值交換\)。

Ethereum 上有三種轉帳類型：

### ETH 轉帳
ETH 轉帳是最基本的交易類型，使用 Ethereum 的原生貨幣。

**範例轉帳：** Rishub 傳送 0.5 ETH 給 Paul。

取得這類轉帳的方式是掃描每個新區塊中的交易物件。

### Token \(ERC-20 與 ERC-721\) 轉帳
Token 轉帳包含任何與 ERC-20 token 或非同質化 ERC-721 token \(NFT\) 相關的轉帳。

**範例轉帳：** Omar 從交易所\(智能合約\)或另一位使用者那裡購買 10 個 AAVE。

一般取得這類轉帳的方式，是查看你關心的 token 合約的[事件日誌](https://www.alchemy.com/docs/deep-dive-into-eth_getlogs)。

### 內部轉帳
內部轉帳是指發送方\(fromAddress\)為內部\(智能合約\)地址的 Eth 轉帳。這包括一個智能合約傳送 Eth 給另一個智能合約，或智能合約傳送 Eth 給外部地址。

**範例轉帳：** 內部轉帳非常複雜，但開發者和使用者關心的是他們的錢從哪裡開始、最終流向何處，這正是內部轉帳重要的原因。以下範例展示兩筆內部交易：

Elan 想用 Sushiswap 將一些 [Sushi](https://www.alchemy.com/dapps/sushi) token 換成 ETH。這是一個涉及多種轉帳的多步驟流程。

1. 首先，她與 Sushi 智能合約互動，透過 token 轉帳將她的 Sushi token 傳送給該智能合約。
1. 接著，智能合約將她的 Sushi 存入 SUSHI/WETH 資金池，這是另一個智能合約，因此這是一筆 token 轉帳。作為交換，合約取得等值的 WETH。
1. 因為 Elan 想要的是 ETH 而非 WETH，Sushi 智能合約接著與 WETH 智能合約互動，將 WETH 換成 ETH\(解包\)，這會產生一筆**內部交易**，因為是 WETH 智能合約傳送 ETH 給 Sushi 智能合約。
1. 接下來，Sushi 合約將這筆 ETH 送回給 Elan，這是另一筆內部交易\(Sushi 智能合約傳送 ETH 給外部地址 Elan\)。

\(3\)和\(4\)屬於內部交易而非 token 轉帳，因為交換的是 ETH\(而非 ERC-20 token\)；它們也不是外部轉帳，因為這是_智能合約_在傳送 ETH\(而非帳戶地址\)。

現在你應該能體會，光是_解釋_什麼是內部轉帳就已經這麼複雜，那麼想像一下要**即時**取得這些資料會是什麼情況。聽起來並不輕鬆。

雖然內部交易影響重大，但要取得它們卻相當棘手。智能合約可能在底層觸發多層內部合約呼叫，其中有些甚至沒有任何價值轉移。

此外，內部交易並不像 ETH 和 token 交易那樣以相同方式儲存在鏈上，這表示使用者必須從父交易一路追蹤到每一個子交易，才能取得這些資料。更麻煩的是，要執行這種追蹤，開發者需要用到一種昂貴且容易出錯的特殊軟體，叫做 Parity Trace node，而它的同步需要花費數週時間。

## 讓使用者即時掌握交易的每一步動態
透過對外部、token 與內部交易的通知，使用者可以隨時完整掌握資金的去向。現在錢包能夠在每次發生與帳戶相關的轉帳時通知使用者，即使是複雜的內部交易也不例外。這些通知同時也讓開發者對自己所建構、互動的智能合約有更多資訊。

使用 Alchemy 設定這三種交易類型的通知非常簡單。[在這裡建立免費帳戶](https://dashboard.alchemy.com/signup?referral=affiliate:cae22cbb-7cbf-49ab-8ee9-619191f0e318)，幾分鐘內就能解鎖 Alchemy Notify 的使用權限。

## 花 3 分鐘開始接收交易通知\(而不是 3 週\)
不用自行同步 Parity Trace node、苦等數週才能使用，只要花 3 分鐘整合 Alchemy 即可。

1. [註冊 Alchemy](https://dashboard.alchemy.com/signup?referral=affiliate:cae22cbb-7cbf-49ab-8ee9-619191f0e318)
1. 使用網址和相關地址[建立 webhook](https://dashboard.alchemy.com/notify)\(我們也提供[建立新 webhook 的 API](https://www.alchemy.com/docs/reference/custom-webhooks-quickstart)\)
1. Alchemy 傳送通知給你
1. 你的使用者不再需要擔心加密貨幣交易的狀態
