Parsing curation reports: inleo example

in Programming & Dev8 days ago (edited)


Copy of Copy of Copy of Copy of Copy of Copy of Copy of Banner Pizza News (19).png

Banner created in canva

1- Motivation:

  First, I want to thank @leo-curation for providing reports from its curation. This is an example of every curation program to bring transparency to our community. I saw the post from @anonyi about one of its curators speculating about possible "self-voting" from a curators to its accounts. I remembered that inleo has this posts about its curations and went to check it, and I saw some trends there associated to the name and commented on @anonyi post about that. But then my programming curiosity thought about, the possibility of parsing all the curation reports, at least the organic ones since in theory the curated user is organically curated without any other type of influence. Inleo has other types of curation programs including the stake, X and threads curation. Those are more directed since the author triggers the possibility of curation. But the organic curation is different, more similar to a regular curation program which is independent of anything. The curator checks a post under the community and curates it if they like it. The full scripts are available at github .

2- Script building:

  I used Python since it is the language that I am currently using more around here, I started to use some JS but I stopped a bit. I am aware by some nice clients built for hive, but I decided to use the regular "request" library to perform get HTTP methods. I wanted to be simple and the job requires simple tools. Just gathering comment transactions from permlinks that follow the trend of the organic curation reports from inleo! They started to post these reports on their week 24 of "curation" so I am not sure what I missed before there. This type of condition can be used for other curation reports published by other users so I am showing bellow where you can find that in the script:

author = post["author"]
permlink = post["permlink"]
if author == "leo-curation" and permlink.startswith("organic-curation-report"):

  My idea for the stats was to find highly curated users and show their curators how many times each curator upvoted this specific user. First I made a regular expression to capture the rows where you had the user in the beginning of the row (curated user) and also at the end of the row after the last "|" and a space you can find the curator username. You can find this in the exctract_stats function in the script. I build a dictionary where the parent key is the curated user, and the value is another dictionary where you can have 1 or more keys (curators) and the value of that is the number of times, so for example if I am curated by John and Mary one time we have stats['gwajnberg']= { 'John':1, 'Mary':1} .

  In the end I process the final dictionary of dictionaries with the numbers ordering and organize the print. First I sort by the total number of curation using this code below:

def print_stats(stats):
    sorted_stats = sorted(
        stats.items(),
        key=lambda item: sum(item[1].values()),  # Total curations
        reverse=True
    )

  The last part of the function I just print the organized list with one curated user by each row in this format: "User1 5 (2 by curator1, 3 by curator2)". The loop to create these prints are bellow:


 for curated_user, curators in sorted_stats:
        total_curations = sum(curators.values())
        curators_str = ", ".join(
            f"{count} by {curator}" for curator, count in curators.items()
        )
        print(f"{curated_user} {total_curations} ({curators_str})"

3- Results:

  Here are some top results of these findings, giving results with users more than 8 times curated, maybe that agrees with @hivewatchers and @anonyi discussion in that post, we can find two supposed alts from the curator being highly curated by this one in the top 3.

UserTotal CurationBreakdown
davidpena21235 by olujay, 8 by vikvitnik, 10 by joheredia21
reeta01192323 by alokkumar121
shriram192121 by alokkumar121
abenad2018 by olujay, 2 by vikvitnik
jhymi164 by princessbusayo, 11 by olujay, 1 by vikvitnik
joyben1514 by uyobong, 1 by princessbusayo
mickymouse1514 by uyobong, 1 by thetimetravelerz
utibeabasi1414 by uyobong
mclarenf111413 by joheredia21, 1 by vikvitnik
nancydominic131 by princessbusayo, 11 by uyobong, 1 by alokkumar121
daniasi137 by olujay, 1 by thetimetravelerz, 3 by joheredia21, 1 by princessbusayo, 1 by alokkumar121
milik80134 by vikvitnik, 4 by alokkumar121, 3 by joheredia21, 1 by olujay, 1 by princessbusayo
mistakili1312 by idiosyncratic1, 1 by alokkumar121
pricelessudy1211 by uyobong, 1 by princessbusayo
newbreed129 by uyobong, 2 by alokkumar121, 1 by princessbusayo
creativepearl1211 by olujay, 1 by vikvitnik
nkemakonam89116 by princessbusayo, 4 by olujay, 1 by alokkumar121
behiver111 by vikvitnik, 10 by alokkumar121
franz54117 by joheredia21, 3 by vikvitnik, 1 by olujay
bitcoinflood114 by thetimetravelerz, 2 by idiosyncratic1, 4 by vikvitnik, 1 by alokkumar121
mummygo1110 by uyobong, 1 by alokkumar121
bala41288118 by thetimetravelerz, 3 by alokkumar121
psalmmy264108 by olujay, 1 by princessbusayo, 1 by vikvitnik
bipolar95101 by uyobong, 6 by olujay, 1 by alokkumar121, 2 by princessbusayo
fonpet109 by uyobong, 1 by princessbusayo
shawnnft102 by vikvitnik, 6 by olujay, 2 by alokkumar121
ukotex109 by uyobong, 1 by princessbusayo
eliany98 by uyobong, 1 by vikvitnik
deraaa97 by olujay, 1 by princessbusayo, 1 by vikvitnik
cjlugo92 by vikvitnik, 7 by joheredia21
nhaji0198 by olujay, 1 by princessbusayo
coolguy12398 by alokkumar121, 1 by olujay
empressjay91 by princessbusayo, 3 by alokkumar121, 5 by fokusnow
luckyali92 by thetimetravelerz, 7 by alokkumar121
sofiaquino9891 by alokkumar121, 3 by joheredia21, 2 by olujay, 3 by vikvitnik
gadrian99 by alokkumar121
etorobong98 by uyobong, 1 by alokkumar121
lileisabel82 by princessbusayo, 4 by alokkumar121, 1 by vikvitnik, 1 by olujay
omarcitorojas86 by vikvitnik, 1 by alokkumar121, 1 by joheredia21
sylvasticks86 by uyobong, 2 by princessbusayo
ibbtammy86 by olujay, 2 by princessbusayo

4- Extra Results:

  Before posting I had the curiosity in seeing this as a monthly trend, it was an interesting result as well, I added another script to the same repo where we can group the same github . In this case I used the "last_updated" object in the Get result from the same comment transactions. Here we go for the last 3 months.

November 2024

UserTotal CurationBreakdown
mamaemigrante51 by olujay, 2 by vikvitnik, 2 by joheredia21
peckypeace54 by uyobong, 1 by olujay
wbrandt44 by joheredia21
cjlugo42 by vikvitnik, 2 by joheredia21
nkemakonam8943 by princessbusayo, 1 by olujay
utibeabasi44 by uyobong
sperosamuel1544 by princessbusayo
mickymouse44 by uyobong
shriram1944 by alokkumar121
joyben33 by uyobong
lileisabel32 by princessbusayo, 1 by alokkumar121
omarcitorojas33 by vikvitnik
duncanek33 by uyobong
eniolaabioye33 by princessbusayo
sylvasticks32 by uyobong, 1 by princessbusayo
nancydominic31 by princessbusayo, 2 by uyobong
pricelessudy33 by uyobong
abenad33 by olujay
hylene7432 by vikvitnik, 1 by olujay
ibbtammy33 by olujay
lisbethseijas31 by olujay, 1 by vikvitnik, 1 by joheredia21
soyunasantacruz32 by olujay, 1 by joheredia21
milik8032 by vikvitnik, 1 by alokkumar121
reeta011933 by alokkumar121

October 2024

UserTotal CurationBreakdown
mclarenf1151 by vikvitnik, 4 by joheredia21
abenad43 by olujay, 1 by vikvitnik
milik8041 by alokkumar121, 2 by joheredia21, 1 by vikvitnik
shriram1944 by alokkumar121
coolguy12332 by alokkumar121, 1 by olujay
pricelessudy33 by uyobong
reeta011933 by alokkumar121
jhymi32 by princessbusayo, 1 by olujay
franz5431 by vikvitnik, 1 by joheredia21, 1 by olujay
davidpena2133 by joheredia21
beckyroyal31 by olujay, 2 by princessbusayo
daniasi32 by joheredia21, 1 by olujay

September 2024

UserTotal CurationBreakdown
abenad88 by olujay
ukotex65 by uyobong, 1 by princessbusayo
mummygo54 by uyobong, 1 by alokkumar121
newbreed55 by uyobong
bipolar9554 by olujay, 1 by princessbusayo
peckypeace55 by uyobong
shriram1944 by alokkumar121
joyben44 by uyobong
milik8041 by olujay, 1 by princessbusayo, 2 by alokkumar121
coolguy12344 by alokkumar121
gargi43 by alokkumar121, 1 by thetimetravelerz
mclarenf1144 by joheredia21
dimeilaz32 by joheredia21, 1 by vikvitnik
behiver33 by alokkumar121
fonpet33 by uyobong
davidpena2132 by vikvitnik, 1 by joheredia21
priyanarc33 by alokkumar121
daniasi32 by olujay, 1 by joheredia21
chinay0431 by olujay, 2 by princessbusayo
mmenyene33 by uyobong
olujay33 by olujay
viviehardika31 by olujay, 1 by alokkumar121, 1 by vikvitnik
edeyglezsosa33 by vikvitnik
bala4128833 by thetimetravelerz
pricelessudy32 by uyobong, 1 by princessbusayo
valblesza32 by uyobong, 1 by princessbusayo

5- Conclusion:

 The script was interesting to build, I had a question and the script helped me to answer the question. I invite anyone to use this type to approach including @leo-curation managers to avoid trends and give some type of help in identifying the exploitation of a big curation account like this one.


Banner created in canva

lucoin1.png


[PT-BR]

  Primeiro, quero agradecer a @leo-curation por fornecer relatórios de sua curadoria. Este é um exemplo de cada programa de curadoria para trazer transparência à nossa comunidade. Vi a postagem de @anonyi sobre um de seus curadores especulando sobre possível "autovotação" de um curador para suas contas. Lembrei que a inleo tem essas postagens sobre suas curadorias e fui verificar, e vi algumas tendências associadas ao nome e comentei na postagem de @anonyi sobre isso. Mas então minha curiosidade em programação pensou sobre a possibilidade de analisar todos os relatórios de curadoria, pelo menos os orgânicos, já que em teoria o usuário curado é curado organicamente sem nenhum outro tipo de influência. A Inleo tem outros tipos de programas de curadoria, incluindo a curadoria de stake, X e threads. Esses são mais direcionados, já que o autor aciona a possibilidade de curadoria. Mas a curadoria orgânica é diferente, mais parecida com um programa de curadoria regular que é independente de qualquer coisa. O curador verifica uma publicação na comunidade e faz a curadoria se gostar. Os scripts completos estão disponíveis em github .

2- Construção de script:

  Usei Python, pois é a linguagem que estou usando mais por aqui no momento, comecei a usar um pouco de JS, mas parei um pouco. Estou ciente de alguns clientes legais criados para o Hive, mas decidi usar a biblioteca regular "request" para executar métodos HTTP get. Eu queria ser simples e o trabalho requer ferramentas simples. Apenas reunir transações de comentários de permlinks que seguem a tendência dos relatórios de curadoria orgânica do inleo! Eles começaram a postar esses relatórios na semana 24 de "curadoria", então não tenho certeza do que perdi antes. Esse tipo de condição pode ser usado para outros relatórios de curadoria publicados por outros usuários, então estou mostrando abaixo onde você pode encontrar isso no script:

author = post["author"]
permlink = post["permlink"]
if author == "leo-curation" and permlink.startswith("organic-curation-report"):

  Minha ideia para as estatísticas era encontrar usuários altamente curados e mostrar aos curadores quantas vezes cada curador votou positivamente nesse usuário específico. Primeiro, criei uma expressão regular para capturar as linhas onde você tinha o usuário no início da linha (usuário curado) e também no final da linha após o último "|" e um espaço, você pode encontrar o nome de usuário do curador. Você pode encontrar isso na função exctract_stats no script. Eu construo um dicionário onde a chave pai é o usuário curado, e o valor é outro dicionário onde você pode ter 1 ou mais chaves (curadores) e o valor disso é o número de vezes, então, por exemplo, se eu for curado por John e Mary uma vez, temos stats['gwajnberg']= { 'John':1, 'Mary':1} .

  No final, eu processo o dicionário final de dicionários com a ordenação dos números e organizo a impressão. Primeiro, eu classifico pelo número total de curadoria usando este código abaixo:

def print_stats(stats):
sorted_stats = sorted(
stats.items(),
key=lambda item: sum(item[1].values()), # Total de curadorias
reverse=True
)

  A última parte da função eu apenas imprimo a lista organizada com um usuário curado por cada linha neste formato: "Usuário1 5 (2 por curador1, 3 por curador2)". O loop para criar essas impressões está abaixo:


para curated_user, curators em sorted_stats:
total_curations = sum(curators.values())
curators_str = ", ".join(
f"{count} por {curator}" para curator, count em curators.items()
)
print(f"{curated_user} {total_curations} ({curators_str})"

3- Resultados:

  Aqui estão alguns dos principais resultados dessas descobertas, dando resultados com usuários mais de 8 vezes curados, talvez isso concorde com a discussão de @hivewatchers e @anonyi naquele post, podemos encontrar dois supostos alts do curador sendo altamente curados por este no top 3.

UserTotal CurationBreakdown
davidpena21235 por olujay, 8 por vikvitnik, 10 por joheredia21
reeta01192323 por alokkumar121
shriram192121 por alokkumar121
abenad2018 por olujay, 2 por vikvitnik
jhymi164 por princessbusayo, 11 por olujay, 1 por vikvitnik
joyben1514 por uyobong, 1 por princessbusayo
mickymouse1514 by uyobong, 1 by thetimetravelerz
utibeabasi1414 by uyobong
mclarenf111413 by joheredia21, 1 by vikvitnik
nancydominic131 by princessbusayo, 11 by uyobong, 1 by alokkumar121
daniasi137 by olujay, 1 by thetimetravelerz, 3 by joheredia21, 1 by princessbusayo, 1 by alokkumar121
milik80134 by vikvitnik, 4 by alokkumar121, 3 by joheredia21, 1 by olujay, 1 by princessbusayo
mistakili1312 by idiosyncratic1, 1 by alokkumar121
pricelessudy1211 by uyobong, 1 by princessbusayo
newbreed129 by uyobong, 2 by alokkumar121, 1 by princessbusayo
creativepearl1211 by olujay, 1 by vikvitnik
nkemakonam89116 by princessbusayo, 4 by olujay, 1 by alokkumar121
behiver111 by vikvitnik, 10 by alokkumar121
franz54117 by joheredia21, 3 by vikvitnik, 1 by olujay
bitcoinflood114 by thetimetravelerz, 2 by idiosyncratic1, 4 by vikvitnik, 1 by alokkumar121
mummygo1110 by uyobong, 1 by alokkumar121
bala41288118 by thetimetravelerz, 3 by alokkumar121
psalmmy264108 by olujay, 1 by princessbusayo, 1 by vikvitnik
bipolar95101 by uyobong, 6 by olujay, 1 by alokkumar121, 2 by princessbusayo
fonpet109 by uyobong, 1 by princessbusayo
shawnnft102 by vikvitnik, 6 by olujay, 2 by alokkumar121
ukotex109 by uyobong, 1 by princessbusayo
eliany98 by uyobong, 1 by vikvitnik
deraaa97 by olujay, 1 by princessbusayo, 1 by vikvitnik
cjlugo92 by vikvitnik, 7 by joheredia21
nhaji0198 by olujay, 1 by princessbusayo
coolguy12398 by alokkumar121, 1 by olujay
empressjay91 by princessbusayo, 3 by alokkumar121, 5 by fokusnow
luckyali92 by thetimetravelerz, 7 by alokkumar121
sofiaquino9891 by alokkumar121, 3 by joheredia21, 2 by olujay, 3 by vikvitnik
gadrian99 by alokkumar121
etorobong98 by uyobong, 1 by alokkumar121
lileisabel82 by princessbusayo, 4 by alokkumar121, 1 by vikvitnik, 1 by olujay
omarcitorojas86 by vikvitnik, 1 by alokkumar121, 1 by joheredia21
sylvasticks86 by uyobong, 2 by princessbusayo
ibbtammy86 by olujay, 2 by princessbusayo

4- Resultados Extra:

 Antes de postar tive a curiosidade de ver isso como uma tendência mensal, foi um resultado interessante também, adicionei outro script ao mesmo repositório onde podemos agrupar o mesmo github. Neste caso usei o objeto "last_updated" no resultado Get das mesmas transações de comentários. Aqui vamos nós para os últimos 3 meses.

November 2024

UserTotal CurationBreakdown
mamaemigrante51 by olujay, 2 by vikvitnik, 2 by joheredia21
peckypeace54 by uyobong, 1 by olujay
wbrandt44 by joheredia21
cjlugo42 by vikvitnik, 2 by joheredia21
nkemakonam8943 by princessbusayo, 1 by olujay
utibeabasi44 by uyobong
sperosamuel1544 by princessbusayo
mickymouse44 by uyobong
shriram1944 by alokkumar121
joyben33 by uyobong
lileisabel32 by princessbusayo, 1 by alokkumar121
omarcitorojas33 by vikvitnik
duncanek33 by uyobong
eniolaabioye33 por princessbusayo
sylvasticks32 por uyobong, 1 por princessbusayo
nancydominic31 por princessbusayo, 2 por uyobong
pricelessudy33 por uyobong
abenad33 por olujay
hylene7432 por vikvitnik, 1 por olujay
ibbtammy33 por olujay
lisbethseijas31 por olujay, 1 por vikvitnik, 1 por joheredia21
soyunasantacruz32 por olujay, 1 por joheredia21
milik8032 por vikvitnik, 1 por alokkumar121
reeta011933 por alokkumar121

Outubro de 2024

UserTotal CurationBreakdown
mclarenf1151 by vikvitnik, 4 by joheredia21
abenad43 by olujay, 1 by vikvitnik
milik8041 by alokkumar121, 2 by joheredia21, 1 by vikvitnik
shriram1944 by alokkumar121
coolguy12332 by alokkumar121, 1 by olujay
pricelessudy33 by uyobong
reeta011933 by alokkumar121
jhymi32 by princessbusayo, 1 by olujay
franz5431 by vikvitnik, 1 by joheredia21, 1 by olujay
davidpena2133 by joheredia21
beckyroyal31 by olujay, 2 by princessbusayo
daniasi32 by joheredia21, 1 by olujay

September 2024

UserTotal CurationBreakdown
abenad88 by olujay
ukotex65 by uyobong, 1 by princessbusayo
mummygo54 by uyobong, 1 by alokkumar121
newbreed55 by uyobong
bipolar9554 by olujay, 1 by princessbusayo
peckypeace55 by uyobong
shriram1944 by alokkumar121
joyben44 by uyobong
milik8041 by olujay, 1 by princessbusayo, 2 by alokkumar121
coolguy12344 by alokkumar121
gargi43 by alokkumar121, 1 by thetimetravelerz
mclarenf1144 by joheredia21
dimeilaz32 by joheredia21, 1 by vikvitnik
behiver33 by alokkumar121
fonpet33 by uyobong
davidpena2132 by vikvitnik, 1 by joheredia21
priyanarc33 by alokkumar121
daniasi32 by olujay, 1 by joheredia21
chinay0431 by olujay, 2 by princessbusayo
mmenyene33 by uyobong
olujay33 by olujay
viviehardika31 by olujay, 1 by alokkumar121, 1 by vikvitnik
edeyglezsosa33 by vikvitnik
bala4128833 by thetimetravelerz
pricelessudy32 by uyobong, 1 by princessbusayo
valblesza32 by uyobong, 1 by princessbusayo

5- Conclusão:

 O script foi interessante de construir, eu tinha uma pergunta e o script me ajudou a respondê-la. Convido qualquer um a usar esse tipo de abordagem, incluindo os gerentes do @leo-curation, para evitar tendências e dar algum tipo de ajuda na identificação da exploração de uma grande conta de curadoria como essa.


Banner criado no canva

Sort:  

Brasileiros passam por Mensalão, Petrolão, e tudo mais. O que é um Alokão pra gente. Trabalho gigante meu querido. Muito bom ter você em nossa comunidade.

ri alto aqui com Alokão! valeu ! Tomara que alguem use isso para melhorar... acho que tudo é questão de rever ações... LEO só sobe enquanto meu post foi lançado!

That's quite interesting - milik80's or bitcoinflood's curation seems rather healthy to me, they were curated by (almost) all curators in a kinda equal distribution.

Accounts curated like 15 times by one and only curator seem rather peculiar.

Could you also list accounts with upvoted comments? With say 4%+ VP, which would make the payout at least $1, if I am not mistaken? I assume there might be some more milking under the radar - upvoted smileys and so.

looking at the list again, I had the same feeling...despite that any statistician would slap us in making assumptions with such low numbers! But the trend with these users looks like more organic, I agree.

you mean post comments upvoted by inleo?
you can do that for sure...having a list of users with comments highly curated,just the details if there was specific curator(s) pushing the button wont be possible, unless there is a list somewhere :P

Yes - comments (or threads) upvoted by Inleo. There's hardly any list, you'd have to list them based on "being upvoted with certain VP" AND "being a comment / not being a root post", if it makes any sense.

nice challenge, I am starting to play with!! it is a more deep dig for sure! I will post with some printscreens later as a reply =)

Cool, thanks :)

I can give some preliminary things, the vote calculation in $ is bugged so I am not posting for now lol . So just clarification those are only votes on threads! leo.voter curation in threads from inleo :P

image.png

image.png

Yes, but it votes with Hive Power, not with Leo Power ;)

I was wrong... most of jimmy.adams votes are 1% lol so it isn't so high...take a look in this new top20 by leo.voter threads

image.png

That's actually quite something though. If these are on "good mornings" and such.

yeah... so i have access to the weight of each vote... the calculation bugged a bit I guess lol also I am taking the account of the current 100% inleo vote which is around 35$
it gave some crazy numbers hehehe but you can estipulate for example, if jimmy got at least an 8% vote we are talking of 2.8$ per vote so we could say that he got at least 344$ just by threading :P

Thanks for your contribution. Looks like they need to go back to the drawing board and come up with a better 'organic' curation method.

@alokkumar121 anything else to say?

Excelente trabalho!

Isso é em outras palavras, um verdadeiro "escândalo".

É triste de ver pessoas querendo crescer no INLEO e não são verdadeiramente recompensados pelos seus esforços, pois uma suposta parte da equipe de curadoria está brincando com sua própria panela.

Isso desmotiva a gente, mas não tem o que fazer. Nem sei se vão mudar alguma coisa então é seguir em frente, buscando meu lugar ao sol.

Isso desmotiva a gente, mas não tem o que fazer. Nem sei se vão mudar alguma coisa então é seguir em frente, buscando meu lugar ao sol.

não é so voce com esse pensamento... acho que é generalizado e como falaram por aqui as grandes curadorias tem sofrido com isso... tomara que eles comecem a notar esse tipo de coisa a reprimir, mas muita gente não cre nisso !

Também espero que eles comecem a notar isso para tomarem alguma providência.

These curation reports are not about transparency but about farming more rewards on auto pilot.

But in the end with this farming they also expose their weakness!

Wow, That's awesome tool!
Congratulations for the coding

Thank you! it is fun to play with data!

I'm not that good on that but keep learning. Amazing job!

WOW! Amazing! A true data scientist! Congratz!

It turns out that not only 1 curator did it
untitled.gif

The numbers are there! I hope that curation administration could give a look and maybe make efforts to change... if they care of course lol

Conhecereis a verdade e a verdade vos humilhará!

In the end of the day everyone acts like that, if it's not one upvoting it's alts, it's huge upvotes to friends on worthless posts, hive is full of crap posts getting huge curations and rewards and good posts getting nothing

We had that feeling, we could check some short range evidences...but the data is there just need to expose it! I just highlighted the exposed case, but you are correct.

It looks like not only Mr Alok is suspicious there, there are other names too.

and I believe the same case exists in Curangel and OCD too, but its harder to detect this kind of case on there

It is difficult to detect who pushed the button if it happens only in a private discord channel the recording! Or even if someone has the keys of the curation account…

Hi,

Interesting data. Plenty more evidence for some buddy-farming rings.

like it was said...we always had some feelings about it or some short-range evidence....but the numbers are there to be dug!

Obrigado por promover a comunidade Hive-BR em suas postagens.

Vamos seguir fortalecendo a Hive

Metade das recompensas dessa resposta serão destinadas ao autor do post.

Vote no @perfilbrasil para Testemunha Hive.

Congratulations @gwajnberg! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You got more than 10000 replies.
Your next target is to reach 10500 replies.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out our last posts:

Hive Power Up Day - December 1st 2024


Your post was manually curated by @shiftrox.
banner_hiver_br_01.png

Delegate your HP to the hive-br.voter account and earn Hive daily!

🔹 Follow our Curation Trail and don't miss voting! 🔹

@gwajnberg, I paid out 0.605 HIVE and 0.172 HBD to reward 12 comments in this discussion thread.