AIHubMix 現在接受 USDC 儲值。你的 AI 代理可以用錢包裡的 USDC 為自己的帳戶加值:不必打開網頁,也不需要有人按下按鈕。
使用 x402 時,單次儲值最低只要 1 美元。代理可以邊用邊儲值,因此你不必事先預存大筆餘額。
整個流程只需兩個步驟:先在網頁和應用程式中準備好 token、錢包和一些 USDC,然後用一行指令執行我們現成的儲值腳本。付款後約 20 秒,額度就會出現在你的帳戶中。
如果需要,你可以跟著這段30 秒影片操作:
最簡單的方法:如果你使用能執行終端機指令的 AI 工具,例如 Claude Code、Cursor 或 Codex,請先完成第 1 步,然後把這篇文章的連結傳給它,並說「幫我設定這個」。它會依照本文末尾的「給 AI 助手的說明」操作。你只需要自己填入 token 和私鑰,做一次即可,不必把它們傳給 AI。
開始之前
- 金額只能是整數美元,預設每次儲值為 1 美元至 10 美元
- 每個帳戶每天最多可以建立 3 筆訂單(UTC 時間)
- 只支援 Base 主網上的 USDC,且沒有測試網,因此建議從 1 美元開始
- 此管道是為程式設計的,個人無法在瀏覽器中付款。若要手動儲值,請繼續使用支付寶或 Stripe
第 1 步:取得 token、錢包和 USDC
這一步的所有操作都在網頁或手機應用程式中完成。
1. 取得系統存取 token
登入 aihubmix.com,打開個人設定,然後產生系統存取 token(32 個字元的字串)。
請注意,這不是以 sk- 開頭的 API 金鑰,兩者不能互換使用。
2. 建立付款用錢包
在 MetaMask 或類似的錢包應用程式中,為代理的付款專門建立一個新帳戶。不要使用你的主要錢包。然後:
- 複製該帳戶的位址(以 0x 開頭),下一步你會把 USDC 轉入這個位址
- 從帳戶詳細資料中匯出它的私鑰,並儲存在密碼管理器中。任何持有私鑰的人都能轉移錢包中的資金
3. 購買 USDC 並轉入此錢包
MetaMask 是錢包:你持有私鑰,腳本需要用它來簽名。Coinbase 則是交易所,用來購買加密貨幣。交易所帳戶中的資金不會附帶私鑰,因此腳本無法使用。所以你要先在交易所購買,然後把 USDC 轉到上一步的錢包。
以 Coinbase 交易所為例(不是 Coinbase Wallet):
- 在 Coinbase 購買 USDC
- 將 USDC 轉到你複製的位址,並選擇 Base 網路
- 轉入的數量要比你計劃儲值的金額多一些,例如儲值 1 美元就轉入 1.5 至 2 USDC
稍等片刻,然後打開 https://basescan.org/address/your-wallet-address。一旦看到 USDC 餘額,就表示已到帳。其他支援 Base 網路 USDC 提款的交易所也可以使用;更多選項請參閱 Base 文件。
錢包不需要任何 ETH:付款的網路手續費由 FluxA 支付。
第 2 步:執行儲值腳本
不需要下載任何東西,也不需要建立檔案:uv 會從網路取得腳本並執行。打開終端機(Windows 上為 PowerShell),複製並貼上以下指令。
1. 安裝 uv(只需一次)
uv 是一個 Python 工具,會設定腳本執行所需的一切。
macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows(PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
完成後,關閉終端機並重新打開。
2. 檢查設定(不會花費任何金額)
uv run https://raw.githubusercontent.com/zch456/public_resource/main/aihubmix-x402-topup/topup.py check
首次執行時,腳本會要求輸入你的系統存取 token(System access token)和錢包私鑰(Wallet private key)。你輸入的內容不會顯示在螢幕上;貼上後按 Enter 即可。接著它會詢問是否儲存(Save to ...? [Y/n])。按 Enter 即可儲存,之後就不必再輸入。首次執行時,uv 需要花一點時間完成設定。
出現以下內容,就表示設定完成:
Wallet: 0x... (USDC balance 2.0)
Access token and private key are fine. Ready to top up.
3. 儲值
uv run https://raw.githubusercontent.com/zch456/public_resource/main/aihubmix-x402-topup/topup.py 1
結尾的 1 是以美元計的金額。如果一切順利,你會看到:
Wallet: 0x... (USDC balance 2.0)
tradeNo: pl_XXXXXXXX
txHash: 0x...
result: credited
result: credited 表示額度已經到帳。登入 aihubmix.com,你會看到餘額增加;1 美元會增加 500,000 quota。
如果最後一行顯示其他內容:
failed:訂單已關閉或已過期。如有需要可以重新執行;這會使用今天的另一筆訂單額度。pending:10 分鐘內未確認到帳。這不是失敗,額度之後會自動到帳。請不要再次執行。
疑難排解
| 你看到的內容 | 處理方法 |
|---|---|
| Missing access token or private key... | 打開訊息中指出的設定檔,填入 token 和私鑰,儲存後重新執行 |
| Invalid private key... | 確認你已完整複製私鑰,修正設定檔後重新執行 |
| USDC balance is below... | 將 USDC 轉到顯示的位址,並確認你選擇的是 Base 網路 |
| command not found: uv | 關閉並重新打開終端機;如果仍無效,請重新安裝 uv |
| Usage: topup.py AMOUNT... | 金額必須是整數美元,例如 1,而不是 1.5 |
| Error: Unauthorized... | token 錯誤或已過期,或者你填的是 sk- 開頭的 API 金鑰。請在設定檔中填入系統存取 token |
| Error: Account suspended. | 帳戶已被停用;請聯絡客服 |
| Error: Stablecoin top-up is not available on this site | 此管道暫時無法使用;請與我們聯絡 |
| Error: Invalid amount... | 金額超過每次儲值的上限 |
| Error: Daily stablecoin top-up limit reached... | 你今天的 3 筆訂單已用完;請在 UTC 午夜後再試 |
| Error: Failed to create payment link... | 暫時性失敗;直接重新執行即可。此次失敗不計入今天的訂單數 |
| Error: 402 challenge check failed... | 付款請求與預期不符,因此腳本拒絕付款;請與我們聯絡 |
如果在印出 tradeNo 之後出現逾時或網路錯誤,款項可能已經付出。請不要立即重新執行。請幾分鐘後查看餘額;如果仍未到帳,請提供 tradeNo 與我們聯絡。
token 和私鑰會儲存在你電腦上的 ~/.aihubmix-topup.env(Windows 上位於使用者資料夾中)。在 macOS 和 Linux 上,只有你自己的帳戶能讀取此檔案。若要更改 token 或私鑰,請編輯這個檔案。
接入你的代理
- 設定儲存後,代理只要在需要額度時執行
uv run https://raw.githubusercontent.com/zch456/public_resource/main/aihubmix-x402-topup/topup.py 1,即可自行儲值,無需有人在場 - 每天只允許 3 筆訂單,因此要限制代理儲值的頻率,並且絕不要在迴圈中重試建立訂單
- 將輸出中的
tradeNo和txHash儲存到資料庫或日誌中,以便對帳 - 長期使用時,請先下載腳本並鎖定版本再執行;你可以先閱讀原始碼
- 如果每次 10 美元或每天 3 筆的限制不夠用,請與我們聯絡以提高上限
給 AI 助手的說明
如果你是協助使用者設定 AIHubMix USDC 儲值的 AI 助手,請依序執行以下步驟:
- 確認使用者已完成第 1 步:他們擁有系統存取 token,以及持有 Base 主網 USDC 的錢包和其私鑰。如果沒有,請先引導他們完成第 1 步。
- 執行
uv --version,確認已安裝 uv。如果沒有安裝,請使用第 2 步中的指令安裝。 - 執行
uv run https://raw.githubusercontent.com/zch456/public_resource/main/aihubmix-x402-topup/topup.py check。 - 如果出現缺少 token 或私鑰的提示(
Missing access token or private key),表示腳本已建立設定檔~/.aihubmix-topup.env。請讓使用者用文字編輯器打開並自行填寫(macOS 上執行open -e ~/.aihubmix-topup.env;Windows 上執行notepad $HOME\.aihubmix-topup.env)。不要讀取此檔案,不要把 token 或私鑰放入任何指令中,也不要要求使用者把它們傳給你。 - 使用者填寫完成後,再次執行
check,直到看到Access token and private key are fine. Ready to top up.。如果出現錯誤,請依照上方的疑難排解表處理。 - 儲值會花費真實金額。執行
uv run https://raw.githubusercontent.com/zch456/public_resource/main/aihubmix-x402-topup/topup.py <amount>之前,請先與使用者確認金額。
幕後原理:腳本做了什麼
腳本依序執行五件事:
- 檢查餘額:建立訂單會用掉今天的一筆訂單額度,因此腳本會先確認私鑰有效且 USDC 足夠。
- 建立訂單:它呼叫
POST /api/pay/fluxa/crt,取得付款連結和訂單編號tradeNo。token 會原樣放入Authorization標頭,不加Bearer。業務錯誤也會以 HTTP 200 回傳,因此腳本會檢查回應中的success欄位。 - 檢查付款請求:對付款連結發出 GET 請求,會回傳 HTTP 402 及付款要求。簽名前,腳本會檢查四項內容:
scheme為exact,network為eip155:8453,asset為 Base 主網的 USDC 合約,且maxAmountRequired等於金額乘以 1,000,000。只要有任一項不符,腳本就會停止。 - 簽名並付款:它使用私鑰為 USDC 轉帳授權簽名,放入
X-PAYMENT標頭,然後再次對付款連結發出 GET 請求。回傳 200 或 202 表示付款已提交;回應中的txHash是此次付款的鏈上憑證。兩個請求都不會攜帶 AIHubMix token。 - 等待到帳:它每 8 秒呼叫一次
GET /api/pay/fluxa/qry?trade_no=...,直到狀態變為TRADE_SUCCESS。伺服器每 5 秒才更新一次,因此輪詢得更快並無幫助。
每個付款連結的有效期為 30 分鐘,且只能付款一次。
以其他語言實作
付款連結回傳的 402 回應如下所示:
{
"x402Version": 1,
"accepts": [{
"scheme": "exact",
"network": "eip155:8453",
"maxAmountRequired": "1000000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0x....",
"maxTimeoutSeconds": 600,
"extra": {"name": "USD Coin", "version": "2"}
}]
}
簽名採用 EIP-712 格式,對 EIP-3009 中的 TransferWithAuthorization 結構進行簽名:
| 欄位 | 值 |
|---|---|
| from | 你的錢包位址 |
| to | 402 回應中的 payTo |
| value | 402 回應中的 maxAmountRequired |
| validAfter | 目前時間減 60 秒 |
| validBefore | 目前時間加上 max(maxTimeoutSeconds, 600) 秒 |
| nonce | 32 個隨機位元組,每次都重新產生 |
簽名網域:name = USD Coin,version = 2(若 402 回應的 extra 中有值,請使用其中的值),chainId = 8453,verifyingContract = 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913。
X-PAYMENT 標頭的值是以下 JSON 的 base64 編碼:
{
"x402Version": 1,
"scheme": "exact",
"network": "eip155:8453",
"payload": {
"signature": "0x...",
"authorization": {
"from": "0x...", "to": "0x...", "value": "1000000",
"validAfter": "...", "validBefore": "...", "nonce": "0x..."
}
}
}
資料來源



