Criar / Editar Token
Pré-requisitos de acesso
- Permissão (módulo):
manageToken - Licença/Feature:
MANAGE_TOKENS - Contêiner do menu: TOKENIZAÇÃO → grupo Tokenização → Gerenciar Tokens → botão Criar token
O que é / quando usar
Formulário completo de cadastro de um token fungível. O assistente é dividido em três grupos — Catálogo, Comercial e Configurações — com 14 seções no total. Apenas três seções são obrigatórias (Identificação, Mídia e Taxas); as demais são opcionais e podem ser preenchidas conforme o tipo de token.
Use esta tela para:
- Emitir um token novo na plataforma (a Axia cria o contrato on-chain);
- Importar um token que já existe na blockchain, informando o endereço de contrato;
- Editar a configuração comercial e operacional de um token existente.
Pré-condições
- Permissão:
manageToken(permissão dupla — enum CPM no backend + módulo dinâmico no DB). - Licença/Feature:
MANAGE_TOKENS. - Dependências: redes (
network_id) e, se for usar recompensa por indicação ou recompra, a configuração dos respectivos módulos.
Estrutura do formulário
O progresso é medido por seção (X/14 seções completas). Cada seção tem um status: completa, inválida (obrigatória e faltando) ou pendente (opcional não preenchida). O botão Salvar só habilita quando as três obrigatórias estão completas, o contrato (se informado) é válido e o site (se informado) começa com http.
Grupo Catálogo
Seção: Identificação (obrigatória)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Sigla | Símbolo/ticker do token (até 10 caracteres, sem caracteres especiais) | Sim | Vira o id (PK) do token em tokens_all e o symbol on-chain. Imutável após a criação (desabilitado em edição). Sigla duplicada retorna erro de chave única. |
| Nome | Nome de exibição (até 70 caracteres) | Sim | Grava name. Imutável após a criação. |
| Rede | Blockchain onde o token vive/será mintado (INTERNAL, POLYGON, ETHEREUM, BITCOIN, TRON, SOLANA…) | Sim | Define network_id. Imutável após a criação. Em INTERNAL o token é apenas escritural (sem contrato on-chain). |
| Descrição | Texto descritivo (até 4000 caracteres) | Sim | Grava description, exibido nas plataformas. |
Seção: Mídia (obrigatória)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Imagem (símbolo) | Logo quadrado do token | Sim | Grava image_symbol. Sem imagem, a seção fica inválida e o save bloqueia. |
| Banner (opcional) | Imagem de capa da página do token | Não | Grava cover_photo. |
Seção: Emissor (opcional)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Nome do emissor | Instituição emissora | Não | issuer_name. |
| Site | URL oficial | Não | website. Se preenchido, precisa começar com http:// ou https://, senão o save bloqueia. |
Seção: Documentação (opcional)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Detalhes / Ecossistema / Outros | Blocos de texto/HTML livres | Não | details, ecosystem, others. Aceitam HTML. |
| Documento (PDF) | Material do projeto (máx. tamanho indicado) | Não | pdf_documentation. |
| Documento legal (PDF) | Documentação jurídica | Não | legal_documentation. |
Grupo Comercial
Seção: Taxas (obrigatória)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Tipo de transação | Define se as taxas são Percentuais (%) ou Absolutas (valor em moeda) | Sim | Grava tax_type (A = absoluto, P = percentual). Imutável após a criação. Altera o rótulo de todas as taxas abaixo. |
| Taxa de transação | Taxa cobrada na operação | Sim | transaction_tax (BigNumber). |
| Taxa de saque | Taxa cobrada no saque | Sim | withdrawaw_tax (BigNumber). |
| Taxas opcionais | Taxa de saque do usuário, taxa de produto, compra via banking, saque banking, taxa de NFT, taxa de tokens, Cielo, PagSeguro, CoinPayments, taxa de operação, taxa de rede | Não | Gravam user_withdrawal_tax, product_buy_tax, token_buy_with_digital_banking, user_banking_withdrawal_tax, nft_buy_tax, tokens_buy_tax, token_buy_with_cielo_tax, token_buy_with_pagseguro_tax, token_buy_with_coinpayments_tax, operation_fee, network_fee. Cada uma é aplicada no fluxo financeiro correspondente. |
Seção: Tokenomics (opcional)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Supply | Quantidade total emitida | Não | supply (convertido de BigNumber). Bloqueado em edição (não se altera supply pela edição). |
| Preço inicial | Cotação inicial do token | Não | rate (BigNumber). Só editável na criação. |
Seção: Precificação e liquidez (opcional)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Conta proprietária | Carteira/conta dona do supply | Não | account_owner. |
| Token de swap | Token-par para swap | Não | token_swap. |
| Par | Par de cotação (ex.: USDT) | Não | pair. Usado em relatórios e exchange. |
| Ordem de exibição | Posição na listagem | Não | order. |
| Texto de checkout | Mensagem exibida no checkout | Não | checkout_text. |
Seção: Limitações (opcional)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Mínimo para transferir | Valor mínimo por transferência | Não | minimumToTransfer. |
| Mínimo para comprar | Valor mínimo por compra | Não | minimumToBuy. |
Seção: Contrato (opcional)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Provedor de cotação (CMC name) | Fonte da cotação automática | Não | cmc_name. Aceita prefixos (ver quadro abaixo). |
| Sobre-cotação | Percentual aplicado sobre a cotação automática antes de salvar | Não | over_quotation. |
| Endereço de contrato | Contrato on-chain existente | Não | contract_address. Se vazio, a Axia cria o contrato; se preenchido, importa o token existente. Validado pelo formato da rede (BTC/TRX/SOL/ETH). Imutável após a criação. |
| Casas decimais | Precisão on-chain (0–18) | Não | decimals. |
| Casas decimais na carteira | Precisão exibida ao usuário | Não | decimals_view_wallet. |
Prefixos do Provedor de Cotação (campo CMC name)
- Sem prefixo → busca no CoinMarketCap pelo ticker/slug (ex.:
BTC). RATEHOST:<MOEDA>→ consulta RateHost e grava em BRL (ex.:RATEHOST:USD,RATEHOST:PYG).POOL:<MOEDAS>→ variação combinada de uma lista separada por vírgula (ex.:POOL:BTC,USDT).CUSTOM:<URL>→ provedor customizado que retorna um camporatelastreado em real.INTERNAL:<ID>→ serviço interno da Axia de cotações em USD (ex.:INTERNAL:USDT).COINGECKO→ busca no CoinGecko pelo endereço de contrato.- Nome contendo "AED" → aciona a cotação AED→BRL automaticamente.
- Vazio → a cotação é fixa no sistema (não varia).
Grupo Configurações
Seção: Funcionalidades (toggles)
| Toggle | Efeito no sistema/backend |
|---|---|
Pode ser comprado (buyable) | Viabiliza o token para compra. |
Transferível (transferable) | Permite transferência via carteira digital. |
Sacável (withdrawable) | Permite saque do token pela carteira. |
Disponível para staking (stakable) | Permite usar o token em staking. |
Usar como pagamento (usedToPay) | Habilita o token como meio de pagamento. |
Bridgeable (bridgeable) | Permite operações de bridge entre blockchains. |
Trava cambial (exchange_lock) | Trava o saldo do usuário no valor da aquisição (estabiliza contra volatilidade). Só na criação e irreversível. |
Publicar (enabled) | Exibe o token nas plataformas. |
Exibir na tokenização (display_on_tokenization) | Exibe na plataforma de tokenização. |
Oculto do loop (hidden_from_loop) | Remove o token do loop de cotação/listagem automática. |
Permitir MetaMask (allow_metamask) | Permite transição via MetaMask. |
Apenas inteiros (onlyInteger) | Impede compra de frações do token. |
Hold automático (automatic_holding) | Ao comprar, o usuário entra automaticamente no staking configurado para adesão automática. |
Apenas para claim (claim) | O token só é obtido por reivindicação (claim), nunca por compra direta. |
Stablecoin (stablecoin) | Marca o token como moeda estável vinculada a um ativo. |
Recomprável (repurchase_mechanism) | Permite recompra pela emissora — exige configurar o mecanismo no modal (botão Configurar). |
Recompensa por indicação (indicationRewards) | Premia o indicador em tokens — exige configurar no modal (tipo, valor e teto). |
Seção: Personalização de saque
Botão para criar/editar campos customizados de saque (withdrawalCustomFields): cada campo tem chave, label, tipo (texto, número, seleção, data, booleano, área de texto), obrigatoriedade, placeholder, validações e (opcionalmente) marcado como seguro. Esses campos passam a ser exigidos do usuário no fluxo de saque deste token.
Seção: Integrações
| Toggle | Efeito no sistema/backend |
|---|---|
Integração BRLA (brlaIntegration) | Habilita integração com o sistema BRLA para operações automatizadas. |
Sincronizar saldo (enabled_sync_balance) | Sincroniza automaticamente o saldo do token com a blockchain. |
Seção: Integrações de exchange
Para cada provedor (Binance, Brasil Bitcoin, Kraken, Alpaca, Nonco): toggle de integração, prioridade, símbolo no provedor e parâmetros de mercado (step size, tick size, min notional quando aplicável). Gravam *_integration, *_priority, *_symbol, *_step_size, *_tick_size, binance_min_notional. Definem como a plataforma roteia ordens àquela exchange.
Seção: Configurações avançadas
| Toggle | Efeito no sistema/backend |
|---|---|
Operar exchange (operate_exchange) | Permite negociar o token na exchange interna. |
Integrar book (integrate_book) | Integra a um livro de ofertas externo. |
Integrar TradingView (integrate_trading_view) | Exibe gráficos do TradingView. |
Habilitar cotação de mercado (enable_market_quote) | Permite a cotação variar com o mercado na exchange. |
Swap automático (isAutomaticSwap) | Habilita swap rápido entre tokens sem aprovação manual (necessário para a tela de Swap). |
Token fiat principal (is_main_fiat_token) | Define como o token fiat principal da plataforma. |
Somente cotação (only_quote) | Token usado apenas para cotação — não fica disponível para compra direta e migra para a tela Gerenciar Cotas. |
Referência de configurações (toggles)
Esta seção documenta todos os toggles do formulário de token, com o rótulo exato exibido na tela (i18n pt-br), o campo (ngModel), o efeito real no backend e quando usar. Nenhum toggle fica sem explicação. Os toggles aparecem espalhados pelas seções Funcionalidades, Integrações, Integrações de exchange e Configurações avançadas do grupo Configurações; aqui estão agrupados por bloco lógico.
Bloco 1 — Negociação (grupo "Negociação")
| Rótulo (tela) | Campo (ngModel) | O que faz (efeito no backend) | Quando usar |
|---|---|---|---|
| Pode ser comprado | token.buyable | Libera o token para compra nas plataformas. Sem isso, o token não aparece como comprável. | Tokens que os usuários podem adquirir (a maioria). Desligue para tokens só-claim ou só-distribuição. |
| Transferível | token.transferable | Permite transferência peer-to-peer via carteira digital. | Tokens livres para circular entre usuários. Desligue para cotas/pontos não-transferíveis. |
| Disponibilizar para saque | token.withdrawable | Habilita o saque do token pela carteira digital (on-chain ou externo). | Tokens com lastro/contrato que o usuário pode retirar. Desligue para tokens internos escriturais. |
| Disponibilizar para staking | token.stakable | Permite usar o token em staking. Pré-requisito para o Hold automático funcionar. | Tokens com programa de staking/rendimento. |
| Usar como forma de pagamento | token.usedToPay | Habilita o token como meio de pagamento de produtos/serviços na plataforma. | Pontos, cashback ou stablecoins usados em checkout. |
| Permitir bridge | token.bridgeable | Marca o token como elegível a operações de bridge entre blockchains diferentes. | Tokens multi-chain que migram de rede. |
| Trava cambial | token.exchange_lock | Congela o saldo do usuário no valor do momento da aquisição (blindagem contra volatilidade). Editável só na criação (mode === 'create'); irreversível. | Stablecoins/tokens lastreados em fiat que não podem flutuar para o usuário. Decisão definitiva. |
Bloco 2 — Visibilidade (grupo "Visibilidade")
| Rótulo (tela) | Campo (ngModel) | O que faz (efeito no backend) | Quando usar |
|---|---|---|---|
| Publicar token | token.enabled | Exibe o token nas plataformas. Desligado, o token existe mas fica oculto ao usuário final. | Ligue quando o cadastro estiver completo e o token pronto para uso. Use como "rascunho" desligado. |
| Disponibilizar via Marketplace | token.display_on_tokenization | Exibe o token na plataforma/marketplace de tokenização. | Tokens que devem aparecer na vitrine de tokenização, além da carteira. |
| Ocultar do loop | token.hidden_from_loop | Remove a cotação do token do "loop" (faixa de cotações no topo da carteira digital). O token continua funcional, só não aparece no carrossel de cotações. | Tokens cuja cotação não deve poluir o loop (ex.: pontos, cotas, tokens secundários). |
| Disponibilizar via MetaMask | token.allow_metamask | Permite que o token seja transacionado pela MetaMask (carteira externa). | Tokens EVM que o usuário pode operar pela própria MetaMask. |
Bloco 3 — Comportamento (grupo "Comportamento")
| Rótulo (tela) | Campo (ngModel) | O que faz (efeito no backend) | Quando usar |
|---|---|---|---|
| Apenas valores inteiros | token.onlyInteger | Bloqueia a compra de frações do token — só quantidades inteiras. | Cotas, ingressos, unidades indivisíveis. |
| Hold automático | token.automatic_holding | No crédito de compra/depósito, o BalanceHandler consulta a configuração de staking do token e, se houver um stake marcado como hold, inscreve o usuário automaticamente nesse staking (cria o userStake). Depende de Disponibilizar para staking e de existir um stake com hold = true. | Tokens em que a posição comprada deve render/travar automaticamente, sem ação do usuário. |
| Apenas para claim | token.claim | Marca que o token só é obtido por reivindicação (claim), nunca por compra direta. | Airdrops, recompensas e tokens distribuídos só via claim. |
| Stablecoin | token.stablecoin | Muda o mecanismo de provisionamento: em depósitos/compras BaaS, o saldo é gerado por mint on-chain (mintService.mintToken) em vez de transferência de uma conta de custódia (ver finlib.helper e orderPayment.scheduler). Indica moeda estável lastreada. Costuma andar junto da Trava cambial. | Tokens lastreados 1:1 emitidos por mint sob demanda (ex.: real/dólar tokenizado). |
Bloco 4 — Funcionalidades avançadas (modais de configuração)
Estes dois toggles exigem configuração extra em um modal (botão Configurar). Ligar sem configurar exibe o aviso "necessário configurar".
| Rótulo (tela) | Campo (ngModel) | O que faz (efeito no backend) | Quando usar |
|---|---|---|---|
| Recomprável | selectedRepurchase → grava token.repurchase_mechanism | Habilita a recompra do token pela emissora. O modal define o mecanismo: WITH_EXIT (recompra com saída/resgate) ou ORDER_BOOK (recompra via book de ofertas); NONE quando desligado. | Tokens com promessa de recompra/liquidez pela casa. |
| Recompensa por indicação | isRewardIndicationSelected → grava token.indicationRewards | Habilita premiação por indicação. O modal configura por tipo (inviter/invited), forma de pagamento (percentual ou absoluto) e teto (max_threshold) quando percentual. Paga ao indicador no cadastro do convidado e/ou na compra de tokens com a flag ativa. | Programas de member-get-member e cashback de indicação. |
Bloco 5 — Exchange / Book / Cotação (grupo "Configurações avançadas")
| Rótulo (tela) | Campo (ngModel) | O que faz (efeito no backend) | Quando usar |
|---|---|---|---|
| Habilitar exchange | token.operate_exchange | Permite negociar o token na exchange interna da plataforma (order book próprio). | Tokens com par de negociação ativo na exchange da casa. |
| Book externo | token.integrate_book | Integra o token a um livro de ofertas externo (de uma exchange/provedor de liquidez) em vez de só o book interno. Trabalha com as Integrações de exchange (Binance/Kraken/etc.) que definem a fonte. | Tokens cuja liquidez/profundidade vem de uma exchange externa. |
| Trading View | token.integrate_trading_view | Habilita os gráficos do TradingView na tela de cotação/negociação do token (visualização de candles/histórico). | Tokens negociados em que o usuário deve ver gráfico profissional. |
| Variar cotação (Exchange) | token.enable_market_quote | Faz a cotação do token variar conforme o mercado na exchange. No settlement de compra (payment.settlement.service), quando ligado, o sistema persiste a taxa de câmbio do momento (storeExchangeRate) a cada execução de ordem. | Tokens com preço de mercado dinâmico (não fixo). |
| Habilitar negociação rápida | token.isAutomaticSwap | Habilita o swap automático/rápido entre tokens sem aprovação manual. Pré-requisito para o token aparecer/funcionar na tela de Swap. | Pares com liquidez para troca instantânea. |
| Token fiat principal | token.is_main_fiat_token | Marca o token como fiat de referência da plataforma. Vários serviços usam find(isMainFiatToken) como moeda-base para conversões, depósitos externos e exportações; o fallback quando ausente é 'BRL'. Deve haver no máximo um token com esta flag. | O token que representa a moeda fiduciária principal do tenant (ex.: real tokenizado). |
| Apenas cotação | token.only_quote | Token usado só para cotação, sem compra direta. Na separação de tokens por tipo (separetesCryptoByType no FMS), tokens com only_quote são classificados como cotas de investimento (vão para a tela Gerenciar Cotas). | Cotas/ativos de referência que não são comprados diretamente pela tela de token. |
Bloco 6 — Integrações de provedor
Integrações simples (grupo "Integrações")
| Rótulo (tela) | Campo (ngModel) | O que faz (efeito no backend) | Quando usar |
|---|---|---|---|
| Integração BRLA | token.brlaIntegration | Habilita a integração com o provedor BRLA para operações automatizadas (provedor de real tokenizado / on-off ramp). | Tokens operados via BRLA. |
| Sincronização de saldo habilitada | token.enabled_sync_balance | Habilita a sincronização automática do saldo do token com a blockchain (reconciliação on-chain ↔ saldo escritural). | Tokens on-chain cujo saldo precisa refletir a rede automaticamente. |
Integrações de exchange (grupo "Integrações de exchange")
Cada provedor é um toggle de fonte de cotação/liquidez/book externo. Quando ligado, o token passa a ter aquele provedor como origem de preço e/ou destino de roteamento de ordens. Os sub-campos definem como rotear a ordem naquele provedor:
| Sub-campo | Campo (ngModel, ex. Binance) | Papel |
|---|---|---|
| Prioridade (menor = maior) | token.binance_priority | Ordem de preferência entre provedores ligados — menor número = maior prioridade. Define qual provedor é consultado/roteado primeiro. |
| Símbolo/ID na exchange | token.binance_symbol | Símbolo do par naquela exchange (ex.: BTCBRL). Mapeia o token interno para o ticker do provedor. |
| Step size | token.binance_step_size | Incremento mínimo de quantidade aceito pela exchange (lot size). A ordem é arredondada a este passo. |
| Tick size | token.binance_tick_size | Incremento mínimo de preço aceito pela exchange. O preço é arredondado a este passo. |
| Min notional | token.binance_min_notional | Valor mínimo total (preço × quantidade) da ordem aceito pela exchange. Ordens abaixo são rejeitadas. (Exposto na UI apenas para Binance.) |
| Rótulo (tela) | Toggle (ngModel) | Sub-campos disponíveis na UI |
|---|---|---|
| Habilitar Binance | token.binance_integration | binance_priority, binance_symbol, binance_step_size, binance_tick_size, binance_min_notional |
| Integração Brasil Bitcoin | token.brasil_bitcoin_integration | brasil_bitcoin_priority, brasil_bitcoin_symbol, brasil_bitcoin_step_size, brasil_bitcoin_tick_size |
| Habilitar Kraken | token.kraken_integration | kraken_priority, kraken_symbol, kraken_step_size, kraken_tick_size |
| Habilitar Alpaca | token.alpaca_integration | alpaca_priority, alpaca_symbol, alpaca_step_size, alpaca_tick_size |
| Habilitar Nonco | token.nonco_integration | nonco_priority, nonco_symbol, nonco_step_size, nonco_tick_size |
Quando usar as integrações de exchange
Ligue um ou mais provedores quando a cotação e/ou a liquidez do token vierem de uma exchange externa (em vez de preço fixo ou book interno). Configure o símbolo correto naquele provedor, defina a prioridade (caso ligue mais de um) e ajuste step/tick/min notional para que as ordens roteadas respeitem as regras de precisão da exchange — valores errados fazem a exchange rejeitar a ordem.
Precisão (BigNumber)
step_size, tick_size e min_notional são parâmetros de precisão de mercado. Quantidades e preços são tratados como BigNumber no backend — não arredonde na configuração; informe exatamente os valores publicados pela exchange para o par.
Ações e modais
- Salvar: abre um modal de confirmação (bottom sheet). Na criação, valores monetários (supply, rate, taxas) são convertidos para BigNumber antes do envio (
createToken); na edição, supply/photos/statistics são removidos do payload e apenas as taxas reconvertidas (saveToken). - Configurar recompra / Configurar recompensa por indicação: modais dedicados que só ficam acessíveis com o toggle correspondente ligado.
- Personalizar campos de saque: modal que monta o esquema de campos extras do saque.
- Cancelar: pede confirmação antes de descartar o cadastro/edição.
Regras de negócio / cuidados
Atenção
- Imutáveis após a criação: sigla, nome, rede, tipo de transação (tax_type), endereço de contrato, supply e trava cambial.
- O preço inicial só é editável na criação. A partir da primeira compra, o sistema calcula um preço médio por usuário e passa a usá-lo em vez da cotação atual.
- Site só é aceito com
http:///https://; contrato é validado pelo formato da rede.
Irreversível
- Trava cambial (
exchange_lock): uma vez ligada, não há como desfazer. Ela congela o saldo do usuário no valor do momento da aquisição. - A emissão (mint) do supply on-chain não tem rollback.
- Valores financeiros: taxas, supply, cotação e preços são BigNumber — sem arredondamento. Confira
decimals.
Exemplos
Cenário 1 — Stablecoin com trava cambial
- Identificação: sigla
BRLX, nome "Real Tokenizado", redePOLYGON, descrição do lastro. - Mídia: logo quadrado.
- Taxas: tipo Percentual, taxa de transação
0e taxa de saque0,5%. - Configurações → Funcionalidades: ligar Stablecoin, Pode ser comprado, Transferível, Sacável, e Trava cambial (ciente da irreversibilidade — o saldo do usuário fica travado no valor da compra, blindando contra volatilidade).
- Contrato: deixar o endereço vazio para a Axia criar o contrato;
decimals = 18. - Salvar. Resultado: token publicado, com saldo travado por aquisição e taxa de saque de 0,5%.
Cenário 2 — Importar USDT existente via número de contrato
- Identificação: sigla
USDT, nome "Tether USD", redeETHEREUM. - Contrato: colar o endereço de contrato real do USDT na Ethereum — o formato é validado para a rede. Como o endereço foi informado, a Axia não cria contrato; o token é apenas referenciado/importado.
- Provedor de cotação:
INTERNAL:USDT(cotação em USD pelo serviço interno) ou deixar vazio para fixa. - Funcionalidades: ligar Pode ser comprado, Transferível, Sacável conforme a operação desejada.
- Salvar. Resultado: o USDT on-chain passa a operar dentro da plataforma (compra/venda/staking/distribuição) usando o contrato existente.
Cenário 3 — Token utilitário simples sem lastro
- Identificação: sigla
PNT, nome "Pontos", redeINTERNAL(escritural, sem contrato on-chain). - Mídia: logo.
- Taxas: tipo Percentual, transação
0, saque0. - Funcionalidades: ligar Usar como pagamento e Apenas inteiros; manter Sacável e Transferível desligados se for um ponto interno não-resgatável.
- Configurações avançadas: opcionalmente Apenas para claim se o token só puder ser obtido por reivindicação.
- Salvar. Resultado: token interno simples, sem custo de contrato, usado como meio de troca/recompensa.