Sari la conținutul principal

Prima tranzacție

Acest ghid parcurge trimiterea de token-uri QOR, interogarea tranzacțiilor și interacțiunea cu QoreChain prin interfețele sale native, EVM și SVM.

notă

Comenzile de mai jos folosesc rețeaua de test qorechain-diana (ID-ul EVM al chain-ului 9800). Rețeaua principală (qorechain-vladi, ID-ul EVM al chain-ului 9801) este activă din 29 iunie 2026 — înlocuiți ID-ul chain-ului și punctele finale ale rețelei principale de pe pagina Conectarea la rețeaua principală atunci când efectuați tranzacții pe rețeaua principală.

Verificarea soldului​

Înainte de a trimite token-uri, verificați soldul contului:

qorechaind query bank balances qor1youraddress... --output json

Răspunsul include toate denominațiile de token-uri deținute de cont. Soldurile QOR sunt afișate în uqor (micro-QOR), unde 1 QOR = 1,000,000 uqor.

Trimiterea de QOR​

Un cont QoreChain trimite pe lane-ul Cosmos cu o semnătură hibridă: semnătura clasică secp256k1 plus o semnătură ML-DSA-87 (Dilithium-5). Un simplu qorechaind tx bank send ... -y este respins, așa că transferul se construiește mai întâi nesemnat și apoi se cosemnează. Aveți nevoie de o cheie post-cuantică înregistrată o singură dată pe cont (vezi Înregistrarea cheii post-cuantice mai jos) și de binarul oficial de release qorechaind de la download.qore.host (un binar construit din arborele public de sursă nu poate crea și nici aplica o semnătură Dilithium).

# 1. Build the unsigned transaction (the fee is fixed here, because cosign signs the fee in this file)
qorechaind tx bank send mykey qor1recipient... 1000000uqor \
--chain-id qorechain-diana \
--gas 400000 --fees 40000uqor \
--generate-only > tx.json

# 2. Add the ML-DSA-87 signature and broadcast
qorechaind tx pqc cosign tx.json --from mykey --pqc-key mypqc --chain-id qorechain-diana

Aceasta trimite 1 QOR (1,000,000 uqor) către adresa destinatarului și plătește un comision de 40,000 uqor (0.04 QOR). Pragul minim al rețelei este de 0.1 uqor pe unitate de gaz, deci comisionul trebuie să fie cel puțin limita de gaz înmulțită cu 0.1: --gas 400000 necesită --fees 40000uqor sau mai mult. Un transfer semnat hibrid folosește de obicei între 160,000 și 240,000 de gaz, deoarece semnătura adaugă tranzacției aproximativ 4.7 KB. cosign întreabă nodul ce formă a bytes-ilor semnați verifică rețeaua, așa că aceeași comandă funcționează pe ambele rețele.

Înregistrarea cheii post-cuantice​

O cheie post-cuantică se înregistrează explicit, o singură dată pe cont. Chain-ul nu o înregistrează pentru dumneavoastră la prima tranzacție. Tranzacția de înregistrare în sine (și migrarea cheii) poate fi semnată doar cu cheia clasică, astfel încât un cont nou-nouț să poată porni:

# generate the ML-DSA-87 key (stored under ~/.qorechaind/pqc/mypqc.dilithium, mode 0600, not encrypted)
qorechaind tx pqc gen-key mypqc

# register the printed public key for your account
qorechaind tx pqc register-key <public_key_hex> hybrid --from mykey \
--chain-id qorechain-diana --gas 600000 --fees 60000uqor

Păstrați o copie de rezervă a fișierului cheii PQC cu aceeași grijă ca fraza de recuperare; poate fi rederivat din frază cu qorechaind tx pqc recover-key. QoreX și SDK-ul QoreChain efectuează înregistrarea cheii în locul dumneavoastră. Vezi Configurarea portofelului pentru fluxul hibrid complet.

Transferurile Cosmos necesită o semnătură hibridă PQC

Pe lane-ul Cosmos, setarea rețelei este hybrid_signature_mode = required (rețelele live rulează linia v3.2). O tranzacție doar cu semnătură clasică este respinsă. Pentru a produce semnătura hibridă în afara CLI, biblioteca open-source qorechain-pqc (hybridSignBytes) și SDK-ul QoreChain realizează echivalentul în cod.

După ce tranzacția cosemnată este acceptată, CLI returnează un hash de tranzacție.

Interogarea unei tranzacții​

Căutați o tranzacție finalizată după hash-ul ei:

qorechaind query tx <txhash>

Rezultatul include starea tranzacției, gazul utilizat, înălțimea blocului și toate evenimentele emise în timpul execuției.

Pentru rezultat în format JSON:

qorechaind query tx <txhash> --output json

Utilizarea JSON-RPC (EVM)​

Mediul de execuție EVM al QoreChain expune o interfață standard Ethereum JSON-RPC pe portul 8545.

Tranzacțiile EVM necesită o fereastră de autorizare

Semnarea standard Ethereum (MetaMask, ethers.js, ...) funcționează în continuare nemodificată, dar începând cu v3.2.0 lane-ul EVM admite o tranzacție doar de la un cont care are o cheie post-cuantică înregistrată și o fereastră de autorizare EVM deschisă. Deschideți mai întâi una (este o tranzacție pe lane-ul Cosmos, semnată cu cheia dumneavoastră ML-DSA) — vezi Fereastra de autorizare EVM mai jos. Fără ea, nodul răspunde no open EVM authorisation window. Citirea stării (eth_blockNumber, eth_getBalance, eth_call, eth_estimateGas) nu necesită fereastră.

Obținerea numărului celui mai recent bloc​

curl -s -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_blockNumber",
"params": [],
"id": 1
}' | jq '.result'

Obținerea soldului unui cont​

curl -s -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getBalance",
"params": ["0xYourEVMAddress", "latest"],
"id": 1
}' | jq '.result'

Soldul este returnat ca o valoare codată hex în cea mai mică denominație.

Fereastra de autorizare EVM​

Începând cu versiunea de chain v3.2.0 (înălțimea mainnet 2,981,742, 25 septembrie 2026; înălțimea testnet 5,920,000), lane-ul EVM admite o tranzacție doar de la un cont care

  1. are o cheie post-cuantică înregistrată (ML-DSA-87) și
  2. are o fereastră de autorizare EVM deschisă care mai are loc pentru tranzacție.

Tot restul lane-ului EVM rămâne neschimbat: continuați să semnați cu MetaMask, ethers.js, Hardhat sau Foundry, iar eth_estimateGas și celelalte simulări funcționează fără fereastră. Implementările de contracte contează ca orice altă tranzacție EVM, deci este nevoie de o fereastră înainte de a implementa.

De ce o fereastră? Un portofel standard face o singură semnătură secp256k1 peste o tranzacție Ethereum și nu oferă aplicațiilor nicio cale de a atașa o a doua semnătură, post-cuantică. Așadar, autorizarea post-cuantică călătorește înaintea tranzacției: deschideți o fereastră limitată cu o tranzacție obișnuită pe lane-ul Cosmos, care poartă semnătura dumneavoastră ML-DSA, iar lane-ul EVM admite apoi tranzacțiile acoperite de ea. O cheie clasică singură nu poate deschide niciodată o fereastră, deci o cheie clasică furată poate cheltui doar ce permite o fereastră deja deschisă. Funcționează ca o aprobare ERC-20: autorizați o sumă limitată pentru o perioadă limitată, apoi tranzacționați normal.

Ce limitează o fereastră. Se aplică simultan trei limite; cea care se epuizează prima închide fereastra.

LimităSemnificațieInterval permis
blocksCât timp rămâne deschisă fereastra, numărat de la blocul care o deschide1 – 17,280
max-txsCâte tranzacții EVM admite1 – 1,000
max-valueIeșirea totală pe care o admite, în uqor: valoarea transferată plus comisionul maxim pe care l-ar putea plăti fiecare tranzacție (limita de gaz × plafonul comisionului), rotunjit în susmai mare decât 0
  • 17,280 de blocuri înseamnă aproximativ 15 ore pe mainnet (aproximativ 3.2 s pe bloc) și aproximativ 5 ore pe testnet (aproximativ 1.0 s pe bloc).
  • O tranzacție care este admisă și apoi eșuează își consumă totuși slotul și bugetul de valoare.
  • Deschiderea unei ferestre noi înlocuiește fereastra anterioară; consumul reîncepe de la zero.
  • CLI acceptă max-value în uqor sau qor (1000qor = 1,000,000,000 uqor).

Pasul 1 — înregistrați cheia post-cuantică (o singură dată): vezi Înregistrarea cheii post-cuantice mai sus.

Pasul 2 — deschideți o fereastră. Deschiderea unei ferestre este o tranzacție pe lane-ul Cosmos, deci se produce nesemnată și apoi se cosemnează:

# at most 1000 QOR in total, at most 20 transactions, for 7,200 blocks (about 6.4 hours on mainnet)
qorechaind tx pqc open-evm-window 7200 20 1000qor --from mykey \
--chain-id qorechain-diana --gas 400000 --fees 40000uqor --generate-only > window.json

qorechaind tx pqc cosign window.json --from mykey --pqc-key mypqc --chain-id qorechain-diana

Pe mainnet, deschiderea unei ferestre a consumat aproximativ 180,000 de gaz. În QoreX, același pas este Settings → Security → EVM access window (aplicația) sau butonul EVM access window (extensia). Deschiderea ferestrei avansează nonce-ul contului dumneavoastră, deci deschideți-o înainte de a pregăti tranzacția EVM în portofel.

Pasul 3 — verificați ce a mai rămas:

qorechaind query pqc evm-window qor1youraddress...
curl -s https://api-testnet.qore.host/qorechain/pqc/v1/evm_window/qor1youraddress...

Răspunsul REST nu eșuează niciodată pentru o adresă fără fereastră; returnează found: false. Câmpurile sunt found, live, opened_height, expiry_height, max_txs, used_txs, max_value, used_value, remaining_blocks, remaining_txs și remaining_value (numere întregi uqor, returnate ca șiruri de caractere). Pe mainnet folosiți https://api.qore.host.

Pasul 4 — folosiți normal lane-ul EVM. Trimiteți din MetaMask sau din uneltele dumneavoastră ca de obicei. Fiecare tranzacție consumă un slot de tranzacție și (valoare + comision maxim) din fereastră.

Închideți o fereastră mai devreme. Dacă bănuiți că cheia dumneavoastră clasică este compromisă, închideți fereastra; tot ce mai admitea ea este refuzat începând cu blocul următor:

qorechaind tx pqc close-evm-window --from mykey --chain-id qorechain-diana \
--gas 400000 --fees 40000uqor --generate-only > close.json
qorechaind tx pqc cosign close.json --from mykey --pqc-key mypqc --chain-id qorechain-diana

Erori

Ce vedețiSemnificațieCe să faceți
no open EVM authorisation window; open one with MsgOpenEVMWindow ... (modulul pqc, code 26)Nicio fereastră pentru acest contPasul 2
... has no registered post-quantum key; the EVM lane requires one (code 26 pe lane-ul EVM; code 28 dacă încercați să deschideți o fereastră)Nicio cheie ML-DSA înregistratăPasul 1
the EVM authorisation window for ... does not admit this transaction (remaining: ...) (code 27)Expirată sau epuizată; mesajul arată care limităDeschideți o fereastră nouă
invalid EVM authorisation window (code 28)Limite în afara intervalului (blocks 1–17,280, max-txs 1–1,000, max-value > 0)Corectați argumentele

Din cod, SDK-ul QoreChain și @qorechain/wallet-adapter pot compune mesajele de deschidere și închidere și pot citi starea ferestrei; vezi documentația SDK.

Fereastra se aplică doar lane-ului EVM. Tranzacțiile de pe lane-ul Cosmos poartă deja semnătura hibridă la fiecare tranzacție, iar dacă nu deschideți niciodată o fereastră, tranzacțiile dumneavoastră EVM sunt refuzate, în timp ce nimic altceva nu se schimbă.

Utilizarea SVM RPC​

Mediul de execuție SVM al QoreChain expune o interfață RPC compatibilă cu Solana pe portul 8899. Lane-ul de tranzacții SVM este momentan dezactivat la nivelul întregii rețele, deci aceste metode de citire sunt partea pe care o puteți folosi astăzi.

Obținerea slotului curent​

curl -s -X POST http://localhost:8899 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getSlot",
"id": 1
}' | jq '.result'

Obținerea soldului unui cont​

curl -s -X POST http://localhost:8899 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "getBalance",
"params": ["YourSVMPublicKey"],
"id": 1
}' | jq '.result'

Tipare CLI frecvente​

Când lucrați cu CLI-ul qorechaind, aceste opțiuni sunt folosite frecvent:

OpțiuneDescriereExemplu
--chain-idSpecifică chain-ul țintă--chain-id qorechain-diana
--feesComisionul tranzacției în uqor (limita de gaz × cel puțin 0.1)--fees 40000uqor
--fromNumele sau adresa cheii de semnare--from mykey
--outputFormatul răspunsului--output json
--nodePunctul final RPC la care se conectează--node tcp://localhost:26657
--gasLimita de gaz pentru tranzacție--gas 400000 (sau --gas auto)
--gas-adjustmentMultiplicator pentru gazul estimat--gas-adjustment 1.5
--gas-pricesPrețul gazului în locul --fees--gas-prices 0.1uqor
--generate-onlyAfișează tranzacția nesemnată (necesară înainte de tx pqc cosign)--generate-only
-ySare peste solicitarea de confirmare-y

Exemplu: Comandă completă cu toate opțiunile frecvente​

qorechaind tx bank send mykey qor1recipient... 500000uqor \
--chain-id qorechain-diana \
--gas 400000 --fees 40000uqor \
--node tcp://localhost:26657 \
--output json \
--generate-only > tx.json

qorechaind tx pqc cosign tx.json --from mykey --pqc-key mypqc --chain-id qorechain-diana

Pașii următori​

Acum că ați trimis prima tranzacție, explorați mai mult din ceea ce oferă QoreChain:

  • Staking și delegare — Mizați QOR și câștigați recompense
  • Punte pentru active — Mutați active între chain-uri
  • Dezvoltare EVM — Implementați contracte inteligente Solidity pe QoreChain