Python para Solana
Python é uma linguagem off-chain de primeira classe para Solana. As equipes o usam para bots, serviços de back-end, notebooks de pesquisa, ETL e automação de operações em nós RPC do Agave 4.1.1.
Busque em todas as páginas da documentação
Python é uma linguagem off-chain de primeira classe para Solana. As equipes o usam para bots, serviços de back-end, notebooks de pesquisa, ETL e automação de operações em nós RPC do Agave 4.1.1.
Ele não é executado dentro do tempo de execução do Sealevel. Os programas on-chain permanecem Rust (geralmente Anchor 0.32.1), construídos e implantados com Solana CLI 3.0.10. Python se comunica com esses programas por meio de JSON-RPC, websockets e clientes IDL.
Esta página é o guarda-chuva da seção. Os artigos irmãos cobrem o par SDK, construção de transações, AnchorPy, leituras, bots, análises e hábitos de produção.
solana), AnchorPy, VersionedTransaction, blockhash, simulação/preflight, AsyncClient, getProgramAccounts/filtros, API DAS, pandas/Polares, Python vs Kit.A fonte do programa Solana é Rust 1.91.1 visando sBPF. Python nunca entra nesse caminho de compilação. Seu processo é um tempo de execução de host normal que:
Essa separação é todo o modelo. O estado durável do aplicativo reside nas contas. Os programas as modificam. Python observa, programa e às vezes sinaliza.
A pilha padrão do Python é:
| Pacote | Função |
|---|---|
| soldas | Tipos apoiados por Rust rápido: Pubkey, Keypair, Instruction, mensagens, txs versionados, auxiliares de sistema e orçamento de computação |
solana (solana-py) | Cliente JSON-RPC (Client / AsyncClient), TxOpts, assinaturas |
| ancoragem | Carregar Anchor IDL, digitado program.rpc / busca de conta, Provedor + Carteira |
Fixe URLs RPC e IDs de programas por ambiente. Os scripts de desenvolvimento não devem apontar silenciosamente para mainnet-beta. Para trabalho local, combine Solana CLI 3.0.10 (solana-test-validator ou fluxos de trabalho de equipe Surfpool/LiteSVM para programas) com um venv Python para código de cliente.
O dinheiro é sempre inteiro: lamports e unidades básicas de token. Nunca use floats para saldos, taxas ou PnL que devam corresponder à cadeia.
soldas é o tipo e a camada de serialização. Ele espelha os primitivos Solana com desempenho Rust em toda a fronteira do Python. Prefira construtores de soldas para instruções, metas de contas e empacotamento de mensagens, em vez de formatos de fios enrolados manualmente.
solana-py (caminho de importação solana) é a camada de rede. Use-o para:
get_latest_blockhash, get_balance, get_account_infosimulate_transaction e send_transactionget_signatures_for_address, get_transactionO solana-py moderno espera tipos de soldas. Trate-os como uma pilha, não como SDKs concorrentes. Detalhes e receitas de copiar e colar estão em solders & solana-py.
O caminho feliz para uma transação construída em Python:1. Elaborar instruções (transferência de programa do sistema, token SPL, programa anchor ix, orçamento de cálculo).
2. Busque um blockhash recente do RPC.
3. Crie uma mensagem com pagador de taxas e lista ix (Message.new_with_blockhash ou APIs de mensagens versionadas).
4. Entre em um VersionedTransaction (ou legado somente quando uma dependência o forçar).
5. Simular (preflight ou simulação explícita) e inspecionar logs/CU.
6. Enviar com política de compromisso e nova tentativa; atualize o blockhash ao expirar.
Taxas de prioridade e limites de computação são instruções comuns (solda ajudantes de orçamento de computação). Coloque-os no início da mensagem. Os bots de longa duração devem tratar a vida útil do blockhash e as regras de assinatura duplicada como preocupações centrais do circuito de controle, e não como casos extremos.
Os padrões de composição completos estão em Building Transactions in Python.
Se o programa on-chain for Anchor 0.32.1, envie o IDL de anchor build e carregue-o com AnchorPy. Isso lhe dá:
fetch / decodificaçãoProvider ligação de cliente RPC, carteira e opções padrãoFluxo de trabalho:
Provider + Program.at(...) ou Idl.from_json explícito.program.rpc["instruction_name"](...) ou crie instruções para lotes personalizados.Gere novamente clientes quando o IDL for alterado. Discriminadores incompatíveis ou ordem de conta falham na simulação ou no tempo de execução. AnchorPy fica em soldas/solana-py; você ainda possui blockhash, simulação e confirmação. Consulte AnchorPy.
As leituras dominam a maioria dos serviços Python de produção.
RPC principal
get_account_info (bruto ou jsonParsed quando compatível)get_balanceget_token_accounts_by_owner (e variantes jsonParsed)get_signatures_for_address então get_transactionget_program_accounts com filtros memcmp em discriminadores ou campos fixosDAS (Padrão de Ativos Digitais)
Os portfólios NFT e cNFT geralmente precisam de um endpoint DAS do provedor (getAsset, pesquisa, provas). Use httpx ou clientes HTTP semelhantes quando solana-py não encapsula o método; mantenha URLs DAS e chaves de API fora do git.
Hábitos de leitura de produção
get_program_accounts com filtros; não despeje programas inteiros em RPC públicoAprofundamentos: Lendo dados da cadeia.
A vantagem comparativa do Python é a pilha de dados: pandas, Polars, NumPy, notebooks e ferramentas de ML.
Fluxo típico:
Trate o tempo da cadeia (slots, tempos de bloco) com cuidado; as chaves de junção geralmente são pubkey, assinatura ou mint. Lamports permanecem inteiros até a apresentação. Padrões e enquadramento: Análise de dados.
Os scripts Python devem concordar com a forma como os operadores usam Solana CLI 3.0.10: mesmo URL RPC, mesmo formato JSON de par de chaves (Keypair.from_bytes na matriz secreta de 64 bytes), mesmo cluster (devnet/mainnet-beta/local). A semântica RPC do Agave 4.1.1 (compromisso, meta de simulação, relatórios de unidade de computação) é o que seu cliente deve lidar - não um "Python Solana" separado.
| Necessidade | Prefiro | Por que |
|---|---|---|
| Conexão de carteira, navegador dApp, Action/Blink POST em Next.js | @solana/kit 7.0.0 | Padrões de carteira, ecossistema da web, pilha de front-end padrão deste site |
| Bots, trabalhos em lote, ML, pesquisa de pandas/Polars | Píton | Serviços assíncronos + bibliotecas de ciência de dados |
| Monorepo compartilhado de serviços TS e web | Kit (ou clientes duplos) | Um idioma para o caminho do produto |
| Propriedade Python FastAPI/Django existente | Píton | Reutilizar autenticação, filas e observabilidade |
| Anchor IDL chama de um laptop de pesquisa | AnchorPy | Caminho rápido sem frontend |
Muitas organizações executam ambos: Kit no aplicativo voltado para o usuário; Python para dados de mercado, risco, rebalanceamento e operações. O formato de transferência é o mesmo - transações com versão e JSON RPC. Não invente uma segunda interface de programa por idioma; compartilhe IDs de programas, versões de IDL e documentos de layout de contas.
processed para UX ágil não é liquidação para contabilidade; escolha compromisso por risco.A negociação e a automação unem leituras de RPC, construtores de transações e limites de risco em um ciclo de controle. Isso se baseia nos mesmos fundamentos desta visão geral; as páginas da seção para negociação e práticas recomendadas cobrem ritmo, taxas de prioridade e tratamento de falhas sem transformar o Python em uma caixa preta de estratégia.
Python não se importa se o programa é Anchor, nativo solana-program ou Pinocchio. Você precisa do ID do programa, metas da conta e bytes de instrução corretos. AnchorPy reduz esse custo para Anchor IDLs. Para programas nativos, construa manualmente com soldas ou mantenha pequenos codecs compartilhados com testes Rust.
Trabalho fora da cadeia: leitura de contas, construção e envio de transações, chamada de programas via RPC/IDL, execução de bots, backends e análises. Os programas permanecem Rust (ou outras cadeias de ferramentas sBPF).
Um venv, depois solders e solana (solana-py). Adicione anchorpy ao chamar programas Anchor. Adicione httpx, pandas ou polars para DAS e análises.
Sim, para o solana-py moderno: os tipos de núcleo e a serialização vêm das soldas. Aprenda os dois pacotes como uma pilha.
Quando você invoca programas Anchor 0.32.1 e deseja instruções orientadas por IDL e clientes de conta em vez de discriminadores manuais e metas de conta.
Componha instruções de solda, busque um blockhash recente, crie uma mensagem, assine uma transação versionada, simule e envie via solana-py. Consulte Construindo transações em Python.
Use métodos de conta de token RPC para saldos SPL e um provedor compatível com DAS para metadados NFT/cNFT e consultas com reconhecimento de compactação. Consulte Lendo dados da cadeia.
Possível, mas estranho. Prefira @solana/kit 7.0.0 (e adaptadores de carteira) no navegador; mantenha o Python para servidores e bots que não precisam de UX de carteira na página.
Eles são clientes RPC de nós Agave (ou provedores compatíveis). Os níveis de compromisso, os resultados da simulação e os mercados de taxas correspondem ao comportamento do cluster - não a uma cadeia específica do Python.
Carregue o par de chaves JSON compatível com Solana CLI apenas em ambientes seguros. Prefira env vars ou um gerenciador de segredos. Nunca envie arquivos-chave. Use carteiras quentes com fundos limitados para bots.
Blockhashes têm vida curta. Loops de eventos longos devem atualizar os blockhashes e renunciar. As políticas de nova tentativa devem detectar a expiração e reconstruir, e não reenviar uma assinatura obsoleta para sempre.
Extraia assinaturas locais ou amostras de contas (ou indexador CSV/Parquet), normalize valores inteiros e agregue em pandas/Polars. Consulte Análise de dados.
Prefira AsyncClient quando você pesquisa muitas contas, distribui RPC ou mistura websockets com envios. Sync Client é adequado para scripts curtos.
Esta visão geral, depois Python for Solana Basics, depois solders/solana-py, transações, AnchorPy, leituras e análises conforme sua função exigir.
Não estritamente para scripts somente RPC, mas CLI 3.0.10 é inestimável para keygen, airdrops em devnet, configuração e alinhamento de configurações de cluster com seu ambiente Python.
A implantação é uma preocupação da CLI/do conjunto de ferramentas (solana program deploy, implantação anchor). Python pode agrupar chamadas de subprocessos na automação de operações; não substitui cargo build-sbf.
Versões Stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, Rust 1.91.1 e @solana/kit 7.0.0.
Revisado por Chris St. John·Última atualização: 15 de jul. de 2026