🐸🐸🐸
кошельки Solana | управлениесоздаем
keyPair (пару из публичного и приватного ключей)
+ создаем приватный ключ из мнемонической фразыpip install solana bip32utils mnemonic (либы для соланы и мнем-фразы)
1. Создаем KeyPairfrom solana.keypair import Keypair
# создаем новый KeyPair
keypair = Keypair()
# публичный и приватный ключи
print("Public Key:", keypair.public_key)
print("Private Key:", keypair.secret_key)
2. Генерация Мнемонической Фразы (seed фраза)используется для восстановления кошелька
from mnemonic import Mnemonic
# генерация мнемонической фразы
mnemo = Mnemonic("english")
mnemonic_phrase = mnemo.generate(strength=128) # 12 слов
print("Mnemonic Phrase:", mnemonic_phrase)
3. Деривация приватного ключа из мнемонической фразыиспользуя мнемоническую фразу, мы можем получить приватный ключ
используем стандарт
BIP-39 (генерация seed из мнемонической фразы) и
BIP-44 (деривация ключей).
import hashlib
import hmac
from bip32utils import BIP32Key
# преобразуем мнемоническую фразу в seed
seed = mnemo.to_seed(mnemonic_phrase)
# деривация приватного ключа по пути BIP-44
# путь для Solana: m/44'/501'/0'/0'
bip32_key = BIP32Key.fromEntropy(seed)
derived_key = bip32_key.ChildKey(44 + BIP32Key.HARDEN).ChildKey(501 + BIP32Key.HARDEN).ChildKey(0 + BIP32Key.HARDEN).ChildKey(0).ChildKey(0)
# приватный ключ (32 байта)
private_key = derived_key.PrivateKey()
print("Derived Private Key:", private_key.hex())
4. Создаем KeyPair из приватного ключакогда у нас есть приватный ключ, мы можем создать KeyPair!
from solana.keypair import Keypair
# Преобразуем приватный ключ в KeyPair
keypair = Keypair.from_secret_key(private_key)
# публичный и приватный ключи
print("Public Key from Derived Private Key:", keypair.public_key)
print("Private Key from Derived Private Key:", keypair.secret_key.hex())
в результате:😭 Генерируется 12 слов, которые можно использовать для восстановления кошелька.
Мнемоническая фраза преобразуется в seed с помощью алгоритма PBKDF2.
вот так это и работает📟 Прилетело из
@code_vartcall👧 На суши и девочек