AIHubMix вече приема зареждания с USDC. Вашият AI агент може да добави кредит към собствения си акаунт с USDC от портфейла си: не трябва да отваряте уеб страница и никой не трябва да натиска бутон.
С x402 зареждането може да бъде само $1. Агентът зарежда кредит постепенно, така че не е нужно да поддържате голям баланс предварително.
Процесът е в две стъпки: вземете токен, портфейл и малко USDC в уеб и в приложение, след което изпълнете нашия готов скрипт за зареждане с една команда. Около 20 секунди след плащането кредитът се появява във вашия акаунт.
Ако ви помогне, можете да следвате това 30-секундно видео:
Най-лесният начин: ако използвате AI инструмент, който може да изпълнява терминални команди, като Claude Code, Cursor или Codex, завършете стъпка 1, след което му изпратете линка към тази публикация и кажете „настрой това вместо мен“. Той ще следва „Инструкциите за AI асистенти“ в края на публикацията. Токена и частния ключ попълвате сами, веднъж, без да ги изпращате на AI.
Преди да започнете
- Сумите са само цели долари, по подразбиране от $1 до $10 за едно зареждане
- Всеки акаунт може да създава до 3 поръчки на ден (UTC)
- Поддържа се само USDC в Base mainnet, а тестова мрежа няма, затова започнете с $1
- Този канал е създаден за програми; човек не може да плаща в браузъра. За ръчни зареждания продължете да използвате Alipay или Stripe
Стъпка 1: Вземете токен, портфейл и USDC
Всичко в тази стъпка се случва в уеб или в приложение за телефон.
1. Вземете системния си токен за достъп
Влезте в aihubmix.com, отворете личните си настройки и генерирайте системен токен за достъп (низ от 32 символа).
Имайте предвид, че това не е API ключът, който започва с sk-. Двата не са взаимозаменяеми.
2. Създайте портфейл за плащания
В MetaMask или подобно приложение за портфейл създайте нов акаунт, предназначен само за плащанията на агента. Не използвайте основния си портфейл. След това:
- Копирайте адреса на акаунта (започва с 0x); на него ще изпратите USDC в следващата стъпка
- Експортирайте частния ключ от данните на акаунта и го съхранявайте в мениджър на пароли. Всеки, който има частния ключ, може да движи парите в портфейла
3. Купете USDC и го изпратете към този портфейл
MetaMask е портфейл: вие държите частния ключ, а скриптът го нуждае, за да подпише. Coinbase е борса, на която купувате криптовалута. Средствата в борсов акаунт не идват с частен ключ, затова скриптът не може да ги използва. Затова първо купувате на борсата, а после изпращате USDC към портфейла от предишната стъпка.
Като пример използваме борсата Coinbase (не Coinbase Wallet):
- Купете USDC в Coinbase
- Изпратете USDC на копирания адрес и изберете мрежата Base
- Изпратете малко повече от сумата, която планирате да заредите, например 1,5 до 2 USDC за зареждане от $1
Изчакайте малко, след което отворете https://basescan.org/address/your-wallet-address. Когато видите баланс в USDC, значи средствата са пристигнали. Работят и други борси, които поддържат теглене на USDC в Base; вижте документацията на Base за още варианти.
Портфейлът не се нуждае от ETH: FluxA плаща мрежовата такса за плащането.
Стъпка 2: Изпълнете скрипта за зареждане
Няма нищо за сваляне и файл за създаване: uv взема скрипта от уеб и го изпълнява. Отворете Terminal (PowerShell на Windows) и копирайте и поставете командите по-долу.
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
При първото изпълнение скриптът пита за системния ви токен за достъп (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 квота.
Ако последният ред показва нещо друго:
failed: поръчката е затворена или е изтекла. Изпълнете отново, ако е нужно; това използва друга от днешните поръчки.pending: кредитът не е потвърден в рамките на 10 минути. Това не е неуспех, а кредитът ще пристигне по-късно сам. Не изпълнявайте отново.
Отстраняване на проблеми
| What you see | Какво да направите |
|---|---|
| Missing access token or private key... | Отворете конфигурационния файл, посочен в съобщението, попълнете токена и частния ключ, запазете и изпълнете отново |
| Invalid private key... | Проверете дали сте копирали целия частен ключ, поправете конфигурационния файл и изпълнете отново |
| USDC balance is below... | Изпратете USDC на показания адрес и се уверете, че сте избрали мрежата Base |
| command not found: uv | Затворете и отворете отново терминала; ако не помогне, инсталирайте uv отново |
| Usage: topup.py AMOUNT... | Сумата трябва да е цял брой долари, например 1, а не 1.5 |
| Error: Unauthorized... | Токенът е грешен или е изтекъл, или е използван API ключът sk-. Въведете системния си токен за достъп в конфигурационния файл |
| 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.
Токенът и частният ключ се запазват в ~/.aihubmix-topup.env на вашия компютър (в потребителската ви папка на Windows). На macOS и Linux само вашият акаунт може да го чете. За да промените токена или частния ключ, редактирайте този файл.
Включване в агента ви
- След като настройката е запазена, агентът ви може да зарежда кредит, като изпълни
uv run https://raw.githubusercontent.com/zch456/public_resource/main/aihubmix-x402-topup/topup.py 1винаги, когато има нужда от кредит, без някой да е до него - Разрешени са само 3 поръчки на ден, затова ограничете колко често агентът зарежда и никога не повтаряйте създаването на поръчка в цикъл
- Запазете
tradeNoиtxHashот изхода в база данни или лог за сверяване - За дългосрочна употреба изтеглете скрипта и фиксирайте версия преди изпълнение; можете първо да прочетете изходния код
- Ако $10 за зареждане или 3 на ден не са достатъчни, свържете се с нас, за да увеличим лимитите
Инструкции за AI асистенти
Ако сте AI асистент, който помага на потребител да настрои зареждания на AIHubMix с USDC, следвайте тези стъпки по ред:
- Уверете се, че потребителят е завършил стъпка 1: има системен токен за достъп, както и портфейл с USDC в Base mainnet и неговия частен ключ. Ако не е, първо го преведете през стъпка 1.
- Изпълнете
uv --version, за да проверите дали uv е инсталиран. Ако не е, инсталирайте го с командите от стъпка 2. - Изпълнете
uv run https://raw.githubusercontent.com/zch456/public_resource/main/aihubmix-x402-topup/topup.py check. - Ако се съобщи за липсващ токен или частен ключ (
Missing access token or private key), скриптът е създал конфигурационния файл~/.aihubmix-topup.env. Помолете потребителя да го отвори в текстов редактор и да го попълни сам (на macOS изпълнетеopen -e ~/.aihubmix-topup.env; на Windows изпълнетеnotepad $HOME\.aihubmix-topup.env). Не четете този файл, не поставяйте токена или частния ключ в никоя команда и не молете потребителя да ви ги изпрати. - Когато потребителят го попълни, изпълнете
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. Токенът се поставя в заглавкатаAuthorizationбез промяна, безBearer. Бизнес грешките също се връщат като HTTP 200, затова проверява полетоsuccessв отговора. - Проверява заявката за плащане: GET заявка към линка за плащане връща HTTP 402 с изискванията за плащане. Преди подписване проверява четири неща:
schemeеexact,networkеeip155:8453,assetе договорът за USDC в Base mainnet иmaxAmountRequiredе равно на сумата × 1 000 000. Ако някое от тях не съвпада, спира. - Подписва и плаща: подписва с частния ключ разрешение за прехвърляне на USDC, поставя го в заглавката
X-PAYMENTи изпраща GET заявката отново към линка за плащане. Отговор 200 или 202 означава, че плащането е изпратено;txHashв отговора е разписката във веригата за това плащане. Нито една от заявките не носи токена на AIHubMix. - Чака кредита: извиква
GET /api/pay/fluxa/qry?trade_no=...на всеки 8 секунди, докато статусът стане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 върху структурата TransferWithAuthorization от EIP-3009:
| Field | Стойност |
|---|---|
| from | Адресът на вашия портфейл |
| to | payTo от отговора 402 |
| value | maxAmountRequired от отговора 402 |
| validAfter | Текущото време минус 60 секунди |
| validBefore | Текущото време плюс max(maxTimeoutSeconds, 600) секунди |
| nonce | 32 случайни байта, нови при всяко изпращане |
Домейн за подписване: name = USD Coin, version = 2 (използвайте стойностите от extra в отговора 402, ако има такива), chainId = 8453, verifyingContract = 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.
Стойността на заглавката X-PAYMENT е base64 кодиране на този JSON:
{
"x402Version": 1,
"scheme": "exact",
"network": "eip155:8453",
"payload": {
"signature": "0x...",
"authorization": {
"from": "0x...", "to": "0x...", "value": "1000000",
"validAfter": "...", "validBefore": "...", "nonce": "0x..."
}
}
}
Източници



