Runes
As runes permitem que as transações de Bitcoin gravem, mintem e transfiram artefatos digitais nativas do Bitcoin.
Enquanto cada inscrição é única, cada unidade de uma rune é a mesma. São tokens intercambiáveis, adequados para uma variedade de propósitos.
Pedras Rúnicas (Runestones)
As mensagens do protocolo rune, chamadas runestones, são armazenadas em resultados de transação no Bitcoin.
O output da pubkey de uma runestone começa com OP_RETURN
, seguido por OP_13
, seguido por zero ou mais dados inseridos. Estes dados são concatenados e descodificados numa sequência de números inteiros de 128 bits e finalmente transformados numa runestone.
Uma transação pode ter, no máximo, uma runestone.
Uma runestone pode gravar uma nova rune, mintar uma rune existente, e transferir runes das entradas (input) de uma transação para as suas saídas (outputs).
Uma saída (output) de transação pode conter saldos de qualquer número de runes.
As runes são identificadas por IDs, que consistem no bloco em que uma rune foi gravada e no índice da transação de gravação dentro desse bloco, representados em texto como BLOCO:TX
. Por exemplo, o ID da rune gravada na 20ª transação do 500º bloco é 500:20
.
Gravações
As runes passam a existir ao serem gravadas. A gravação cria uma rune e estabelece as suas propriedades. Uma vez estabelecidas, estas propriedades são imutáveis, mesmo para o seu criador (etcher).
Nome
Os nomes consistem nas letras de A a Z e têm entre uma e vinte e seis letras de comprimento. Por exemplo, UNCOMMONGOODS
é um nome de uma rune.
Os nomes podem conter separadores, representados como pontos, para ajudar na legibilidade. UNCOMMONGOODS
pode ser gravado como UNCOMMON•GOODS
.
A singularidade de um nome não depende dos separadores. Assim, uma rune não pode ser gravada com a mesma sequência de letras de uma rune existente, mesmo que tenha separadores diferentes.
Os separadores só podem ser colocados entre duas letras. Por fim, os separadores não contam para o número total de letras.
Divisibilidade
A divisibilidade de uma rune é o quanto que pode ser dividida nas suas unidades atómicas. A divisibilidade é expressa como o número de dígitos permitidos após o ponto decimal numa quantidade de runes. Uma rune com divisibilidade 0 não pode ser dividida. Uma unidade de uma rune com divisibilidade 1 pode ser dividida em dez subunidades, uma rune com divisibilidade 2 pode ser dividida em cem, e assim em diante.
Símbolo
O símbolo monetário de uma rune é um único ponto de código Unicode, por exemplo $
, ⧉
, ou 🧿
, exibido após a quantidade dessa rune. "
101 unidades atómicas de uma rune com divisibilidade 2 e símbolo 🧿
seriam representadas como 1.01 🧿
.
Se uma rune não tiver um símbolo, deve ser usado o sinal de moeda genérico ¤
, também chamado de escaravelho.
Pré-mineração
O gravador de uma rune pode, opcionalmente, atribuir a si próprio unidades da rune que está a ser gravada. Esta atribuição é designada por pré-mineração.
Termos
A rune may have an open mint, allowing anyone to create and allocate units of that rune for themselves. An open mint is subject to terms, which are set upon etching.
Um mint está aberto enquanto todos os termos do mint forem satisfeitos e fechado quando algum deles não o for. Por exemplo, um mint pode estar limitado a uma altura inicial, uma altura final e um limite, e estará aberto entre a altura inicial e a altura final, ou até que o limite seja atingido, consoante o que ocorrer primeiro.
Limite
O número de vezes que uma rune pode ser mintada é o seu limite. Um mint acaba quando o limite é atingido.
Quantidade
Cada transação de um mint cria uma quantidade fixa de novas unidades de uma rune.
Altura Inicial
Um mint começa a partir do bloco com a altura inicial indicada.
Altura Final
Uma rune não pode ser mintada no bloco ou após o bloco com da altura final indicada.
Desvio inicial
O mint é aberto a partir do bloco cuja altura é igual ao desvio inicial mais a altura do bloco em que a rune foi gravada.
Desvio Final
Uma rune não pode ser mintada no bloco cuja altura é igual ao desvio final mais a altura do bloco em que a rune foi gravada.
Mintar
Enquanto o mint de uma rune estiver aberta, qualquer pessoa pode criar uma transação de mint que crie uma quantidade fixa de novas unidades dessa rune, sujeita aos termos do mint.
Transferência
Quando os input de uma transação contêm runes, ou quando novas runes são criadas por uma pré-mineração ou mint, essas runes são transferidas para os outputs desta transação. O runestone de uma transação pode alterar a forma de como os inputs de runes são transferidos para os outputs.
Éditos (Edicts)
A runestone may contain any number of edicts. Edicts consist of a rune ID, an amount, and an output number. Edicts are processed in order, allocating unallocated runes to outputs.
Pointer
Depois de todos os éditos serem processados, as runes não atribuídas restantes são transferidas para o primeiro output não OP_RETURN
da transação. Uma rune pode, opcionalmente, conter um ponteiro que especifica um output alternativo padrão.
Queimar
As runes podem ser queimadas transferindo-as para um output OP_RETURN
com um édito ou ponteiro.
Cenotáfios
As runestones podem ser mal formadas por várias razões, incluindo “non-pushdata opcodes” na runestone OP_RETURN
, variantes inválidos, ou campos de runestone não reconhecidos.
As runes malformadas são designadas por cenotáfios.
As runes introduzidas numa transação com um cenotáfio são queimadas. As runes gravadas numa transação com um cenotáfio são consideradas não-mintáveis. Os mints numa transação com um cenotáfio contam para o limite de mints, mas as runes mintadas são queimadas.
Os cenotáfios são um mecanismo de atualização, permitindo que as runestones recebam novas semânticas que alteram a forma de como as runes são criadas e transferidas, sem enganar os clientes não atualizados quanto à localização dessas runes, uma vez que os clientes não atualizados verão essas runes como tendo sido queimadas.