Mit Gamma bezahlen
Kaufe UR Pro und Datenpakete mit SN25-Gamma, komplett über die URnetwork-API. Der einzige Schritt außerhalb davon ist der Mint, den du mit deinem eigenen Coldkey signierst.
Was Gamma ist
Gamma ist eine Funktion der Bittensor-Chain, keine App und keine Wallet zum Installieren. Jedes Subnetz hat sein eigenes Gamma, und ein Gamma ist einen US-Dollar wert. Du mintest SN25-Gamma mit deinem Coldkey in ein Depot bei einem Hotkey, und URnetwork bucht aus diesem Depot den Preis dessen ab, was du kaufst.
Beim Minten wird mit deinem TAO SN25-Alpha gekauft und verbrannt. URnetwork akzeptiert nur SN25-Gamma.
Jeder andere Schritt ist ein API-Aufruf, sodass ein Skript oder ein Agent alles erledigen kann: die Konditionen lesen, einen Kauf starten, seinen Status prüfen und die automatischen Abbuchungen wählen.
Was du brauchst
- Ein URnetwork-Konto und ein Bearer-Token dafür (Schritt 1).
- Einen Bittensor-Coldkey mit genug TAO für den Preis und die Transaktionsgebühr.
btcli, das ab Version 11.3.2 mit dem Python-Paketbittensorkommt:pip install "bittensor>=11.3.2"
Schritt für Schritt
Jeder Aufruf geht an https://api.bringyour.com. Alle Felder und Fehler findest du in der API-Referenz.
Ein Bearer-Token holen
Aufrufe, die ein Token brauchen, senden es als
Authorization: Bearer <token>. Das Token ist ein Netzwerk-JWT oder ein API-Key.Bei der Anmeldung bekommst du ein Netzwerk-JWT, in
network.by_jwt. Zum Beispiel mit einem Passwort:curl -X POST https://api.bringyour.com/auth/login-with-password \ -H "Content-Type: application/json" \ -d '{"user_auth":"me@example.com","password":"<password>"}'Ein API-Key gilt, bis du ihn entfernst. Erstelle einen mit dem JWT: Er beginnt mit
urn_, und diese Antwort ist das einzige Mal, dass du ihn siehst.curl -X POST https://api.bringyour.com/account/api-key \ -H "Authorization: Bearer <network_jwt>" \ -H "Content-Type: application/json" \ -d '{"name":"gamma"}'{ "id": "…", "api_key": "urn_…", "name": "gamma" }Die Einstellungen in Schritt 6 nehmen ein Netzwerk-JWT oder einen API-Key an und lehnen ein Client-JWT von
POST /network/auth-clientab.Die Konditionen lesen
Die Konditionen brauchen kein Token. Sie nennen das Subnetz, den Service-Hotkey und das Ausgabekonto von URnetwork, jeden Tarif und jedes Datenpaket mit seinem Preis in Gamma und dem Tageslimit, das ein Depot dafür braucht, und ob das Minten gerade funktioniert.
curl https://api.bringyour.com/pay/gamma/terms{ "available": true, "mint_available": true, "netuid": 25, "service_hotkey": "5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG", "spender": "5EUQU938kFzJsVBjn9ch5RNNG4191j7mSz5Djf5vghrmWgUC", "max_price_age_blocks": 300, "min_mint_gamma": "0.1", "items": [ { "plan": "monthly", "price_gamma": "5", "min_daily_cap_gamma": "5", "renews": true, "indicative_tao": "0.023645" }, { "plan": "yearly", "price_gamma": "40", "min_daily_cap_gamma": "40", "renews": true, "indicative_tao": "0.189165" }, { "item_id": "data_1tib", "price_gamma": "3", "min_daily_cap_gamma": "3", "renews": false, "indicative_tao": "0.014187" }, { "item_id": "data_10tib", "price_gamma": "20", "min_daily_cap_gamma": "20", "renews": false, "indicative_tao": "0.094583" }, { "item_id": "data_256gib", "price_gamma": "0.75", "min_daily_cap_gamma": "0.75", "renews": false, "indicative_tao": "0.003547" } ], "auto_min_daily_cap_gamma": "40", … }availableistfalse, solange Käufe ausgeschaltet sind, undunavailable_reasonsagt, warum.mint_availableistfalse, solange das Minten ausgeschaltet ist, undmint_unavailable_reasonsagt, warum:gamma_disabled,subnet_gamma_disabledoderprice_stale. Ein Depot, das den Preis schon enthält, kann trotzdem bezahlen.indicative_taoist ungefähr die Menge TAO, die ein Mint in Höhe des Preises braucht: die eigene Simulation der Chain für den Mint, plus 3 %.
Einen Kauf starten
Sende den gewünschten
plan:monthly,yearlyoderyearly_onboardingfür das Willkommensangebot, solange du es einlösen kannst. Für ein Datenpaket sendest du stattdessenitem_id:data_1tib,data_10tiboderdata_256gib(256 GiB für 0,75 $, nur mit Gamma und über x402 erhältlich).curl -X POST https://api.bringyour.com/pay/gamma/intent \ -H "Authorization: Bearer urn_..." \ -H "Content-Type: application/json" \ -d '{"plan":"yearly"}'Um ein Datenpaket stattdessen als Guthabencode zu bekommen, füge
"delivery":"code"hinzu. Mitemailschicken wir dir den Code auch per E-Mail.curl -X POST https://api.bringyour.com/pay/gamma/intent \ -H "Authorization: Bearer urn_..." \ -H "Content-Type: application/json" \ -d '{"item_id":"data_1tib","delivery":"code","email":"me@example.com"}'Die Antwort, zum Beispiel:
{ "intent_id": "0b6f2f7e-4f1c-4a8e-9d1a-1f6a2b3c4d5e", "status_token": "<status_token>", "plan": "yearly", "amount_gamma": "40", "reference": "0x5d0c6b9e3e3c5c0a5b8f2a0f1d4a3e9b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f", "netuid": 25, "deposit_hotkey": "<deposit_hotkey>", "service_hotkey": "5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG", "min_daily_cap_gamma": "40", "auto_min_daily_cap_gamma": "40", "min_mint_gamma": "0.1", "indicative_tao": "0.189165", "mint_available": true, "mint_dry_run_command": "btcli tx mint-gamma --netuid 25 --hotkey <deposit_hotkey> … --dry-run", "mint_command": "btcli tx mint-gamma --netuid 25 --hotkey <deposit_hotkey> … -w <your_coldkey>", "expires_at": "2026-11-12T12:00:00Z", … }deposit_hotkeyist der Hotkey, den URnetwork deinem Konto zugewiesen hat, auf Subnetz 25. Du mintest in ihn, und er dient auch jedem späteren Kauf. Er ist keine Zahlungsadresse: Sende niemals TAO an ihn.amount_gammaist der Preis in Gamma, genau das, was unsere Abbuchung nimmt.referenceist die eigene 32-Byte-Referenz dieses Kaufs, die unsere Abbuchung on-chain mitführt.min_daily_cap_gammaist das kleinste Tageslimit, mit dem dieser Kauf abgebucht werden kann, undauto_min_daily_cap_gammadas kleinste, mit dem jede automatische Abbuchung durchgeht.status_tokenliest den Status dieses Kaufs. Halte es geheim, fern von URLs und Logs.- Schlägt der Mint mit
NonAssociatedColdKeyfehl, gehört das Depot bei diesem Hotkey schon einem anderen Coldkey. Frag erneut mitcoldkey, der SS58-Adresse des Coldkeys, mit dem du mintest, um einen Hotkey zu bekommen, den er nutzen kann. - Ein Kauf bleibt bis
expires_atoffen. Fragst du erneut nach demselben Artikel, bekommst du den offenen Kauf zurück, mit einem neuenstatus_token.
Gamma in dein Depot minten
Lies vor dem Minten die Hinweise unten.
Das ist der einzige Schritt außerhalb der API und die einzige Signatur. Sieh dir den Mint zuerst als Vorschau an: Mit
--dry-runzeigt btcli, was du bekämst, und sendet nichts.btcli tx mint-gamma --netuid 25 --hotkey <deposit_hotkey> --amount-tao <TAO> \ --service-hotkey 5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG --dry-runDann minte, signiert mit deinem Coldkey: derselbe Befehl mit
-w <your_coldkey>statt--dry-run. Der Kauf gibt dir beide Befehle mit deinem Hotkey und einem eingetragenen Betrag, alsmint_dry_run_commandundmint_command.btcli tx mint-gamma --netuid 25 --hotkey <deposit_hotkey> --amount-tao <TAO> \ --service-hotkey 5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG -w <your_coldkey>--service-hotkeylässt ein neues Depot das Ausgabekonto von URnetwork nennen und lehnt ein Depot ab, das ein anderes nennt. Minte mindestens den Preis, etwaindicative_taoTAO; ein Mint untermin_mint_gammaGamma schlägt fehl.Du kannst das Depot auch mit einem Tageslimit eröffnen,
--daily-spend-cap-gamma <gamma>. Setze es auf mindestensmin_daily_cap_gammaund auf mindestensauto_min_daily_cap_gamma, wenn du die automatischen Abbuchungen behältst. So änderst du das Limit später:btcli gamma set-cap --netuid 25 --hotkey <deposit_hotkey> \ --daily-spend-cap-gamma <gamma> -w <your_coldkey>In Python zeigt das
bittensor-SDK denselben Mint als Vorschau und führt ihn aus:import asyncio import bittensor as bt async def main(): wallet = bt.Wallet(name="<your_coldkey>") mint = bt.MintGamma( netuid=25, hotkey_ss58="<deposit_hotkey>", amount_tao="<TAO>", service_hotkey_ss58="5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG", ) async with bt.Subtensor() as client: plan = await client.plan(mint, wallet) # the dry run: submits nothing print(plan.preview) await client.execute(mint, wallet) asyncio.run(main())Den Status prüfen
Frag den Kauf mit seinem
status_tokenab; dieser Aufruf braucht kein Bearer-Token. Wir schreiben einen Kauf erst gut, wenn unsere eigene Abbuchung mit seinerreferenceon-chain finalisiert ist, nie allein auf den Mint hin.curl -X POST https://api.bringyour.com/pay/gamma/status \ -H "Content-Type: application/json" \ -d '{"intent_id":"<intent_id>","status_token":"<status_token>"}'{ "intent_id": "0b6f2f7e-4f1c-4a8e-9d1a-1f6a2b3c4d5e", "status": "paid", "amount_gamma": "40", "deposit_balance_gamma": "10", "remaining_gamma": "0", "spent_block": 9479641, "credited_at": "2026-11-11T12:01:12Z", … }pending- Noch kein Gamma bei
deposit_hotkey. seen- Das Depot enthält Gamma, kann aber noch nicht bezahlen:
remaining_gammaist, wie viel du noch minten musst, odererror.codesagt, was die Abbuchung verhindert. confirming- Das Depot deckt den Preis. Unsere Abbuchung ist unterwegs oder angekommen, und die Gutschrift wird geschrieben.
paid- Gutgeschrieben, auf unsere finalisierte Abbuchung in Block
spent_blockhin. Ein Guthabencode steht inbalance_code. expired- Vor
expires_atwurde nichts abgebucht. Nicht ausgegebenes Gamma bleibt für deinen nächsten Kauf im Depot. review- Jemand aus unserem Team sieht sich das an;
review_reasonsagt, warum. unknown- Kein solcher Kauf, oder das Token passt nicht.
Wenn das Depot nicht bezahlen kann oder die Chain unsere Abbuchung überspringt, sagt
error.code, warum:insufficient_gamma- Das Depot enthielt weniger als den Preis. Minte mehr.
daily_cap_too_low- Das Tageslimit des Depots liegt unter dem Preis. Erhöhe es auf mindestens
min_daily_cap_gamma. daily_cap_exceeded- Die heutigen Abbuchungen würden das Tageslimit des Depots überschreiten. Erhöhe das Limit.
wrong_spender- Das Depot nennt ein anderes Ausgabekonto. Richte es mit dem Befehl unten wieder auf das von URnetwork.
btcli gamma set-spender --netuid 25 --hotkey <deposit_hotkey> \ --service-hotkey 5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG \ -w <your_coldkey> no_deposit- Bei dem Hotkey gibt es kein Depot. Minte in
deposit_hotkey.
Eine übersprungene Abbuchung nimmt nichts und kauft nichts. Wir versuchen sie erst wieder, wenn sich dein Depot ändert: wenn du mehr mintest, das Limit erhöhst oder das Ausgabekonto korrigierst.
Die automatischen Abbuchungen wählen
Bezahlen mit Gamma schaltet für dein Konto die automatische Verlängerung und Aufstockung ein. Lies und ändere sie mit einem Netzwerk-JWT oder einem API-Key; ein Feld, das du weglässt, bleibt, wie es ist.
curl https://api.bringyour.com/pay/gamma/settings \ -H "Authorization: Bearer urn_..." curl -X POST https://api.bringyour.com/pay/gamma/settings \ -H "Authorization: Bearer urn_..." \ -H "Content-Type: application/json" \ -d '{"auto_renew":false,"monthly_limit_gamma":"20"}'auto_renew- Am Ende jeder Laufzeit eines mit Gamma bezahlten Tarifs den Preis des Tarifs aus dem Depot abbuchen, außer du bezahlst Pro über diese Laufzeit hinaus auf anderem Weg. Ein Jahr aus dem Willkommensangebot verlängert sich zum Jahrespreis. Standardmäßig an.
auto_topup- Wenn deine Daten aufgebraucht sind,
topup_item_idkaufen, höchstens einmal pro Stunde. Wenn ein kostenloses Konto sein Client-Limit erreicht, Pro kaufen, höchstens einmal am Tag; ein automatisches Upgrade ändert nie, wie dein Netzwerk Bandbreite bereitstellt. Standardmäßig an. topup_item_iddata_1tib, der Standard,data_10tiboderdata_256gib.monthly_limit_gamma- Der Höchstbetrag, den die automatischen Abbuchungen in einem Kalendermonat nehmen, in UTC.
""oder"0"entfernt das Limit.
Jede automatische Abbuchung hat ihre eigene Referenz und schickt eine Quittung per E-Mail. Überspringt die Chain sie, bekommst du eine Benachrichtigung, und sie wird erst wieder versucht, wenn sich das Depot ändert.
Vor dem Minten
Gamma kann nicht erstattet oder übertragen werden. Wir berechnen nur den Preis dessen, was du kaufst. Nicht ausgegebenes Gamma bleibt in deinem Depot und funktioniert nur auf SN25.
Das Auflösen eines Subnetzes vernichtet sein Gamma.
Sofern du sie nicht ausschaltest, buchen wir automatisch aus demselben Depot ab: Mit Gamma bezahlte Tarife verlängern sich am Ende jeder Laufzeit, ein Datenpaket (1 TiB, sofern du kein anderes wählst) wird hinzugefügt, wenn deine Daten aufgebraucht sind, und ein kostenloses Konto, das sein Client-Limit erreicht, wird auf Pro hochgestuft.
- Das Minten schlägt fehl, solange der TAO/USD-Preis der Chain älter als 300 Blöcke ist, etwa eine Stunde. Die Konditionen zeigen dann
mint_availablealsfalse, mitprice_stale. Bezahle in der Zwischenzeit mit einer Kryptowährung oder per x402. - Der Depot-Hotkey ist keine Zahlungsadresse. Sende niemals TAO an ihn. Falls doch, schreib an support@ur.io, um es zurückzubekommen.
- Eine Abbuchung nimmt ihren ganzen Betrag oder nichts, daher muss ein Tageslimit mindestens den Preis betragen, und für die automatischen Abbuchungen mindestens
auto_min_daily_cap_gamma. Ein Depot hat kein Limit, außer du setzt eines. - Ein Depot und der Coldkey, der darin gemintet hat, sind auf der Chain öffentlich.
- Prüfe, dass du an URnetwork zahlst:
btcli query services --netuid 25listet die Services von SN25, und unserer ist der mitownermarkierte. - Beim Minten wird SN25-Alpha verbrannt. URnetwork erhält kein TAO.