Здесь у нас начинает танец с бубном, поэтому для этого задания отдельная инструкция:
• Создаете файл .sol
• Копируете контракт и вставляете в созданный файл
• В разделе Contract выбираете Salesperson и деплоите
• Вновь в разделе Contract выбираете выбираете EngineeringManager и деплоите
• Теперь в разделе Contract выбираете InheritanceSubmission
• Копируете снизу ваши контракты Salesperson и EngineeringManager
• Вставляете в появившиеся поля (см. скриншоты в комментариях)
• Деплоите и готово
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;
abstract contract Employee
{
uint public idNumber;
uint public managerId;
constructor(uint _idNumber, uint _managerId)
{
idNumber = _idNumber;
managerId = _managerId;
}
function getAnnualCost() public virtual returns (uint);
}
contract Salaried is Employee
{
uint public annualSalary;
constructor(uint _idNumber, uint _managerId, uint _annualSalary)
Employee(_idNumber, _managerId)
{
annualSalary = _annualSalary;
}
function getAnnualCost() public override view returns (uint)
{
return annualSalary;
}
}
contract Hourly is Employee
{
uint public hourlyRate;
constructor(uint _idNumber, uint _managerId, uint _hourlyRate) Employee(_idNumber, _managerId)
{
hourlyRate = _hourlyRate;
}
function getAnnualCost() public override view returns (uint)
{
return hourlyRate * 2080;
}
}
contract Manager
{
uint[] public employeeIds;
function addReport(uint _reportId) public
{
employeeIds.push(_reportId);
}
function resetReports() public
{
delete employeeIds;
}
}
contract Salesperson is Hourly
{
constructor(uint _idNumber, uint _managerId, uint _hourlyRate)
Hourly(_idNumber, _managerId, _hourlyRate) {}
}
contract EngineeringManager is Salaried, Manager
{
constructor(uint _idNumber, uint _managerId, uint _annualSalary)
Salaried(_idNumber, _managerId, _annualSalary) {}
}
contract InheritanceSubmission {
address public salesPerson;
address public engineeringManager;
constructor(address _salesPerson, address _engineeringManager) {
salesPerson = _salesPerson;
engineeringManager = _engineeringManager;
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
7🐳9❤3👍3
Здесь нам нужно создать два контракта, для выполнения этого задания
Создаем файл с названием
SillyStringUtils.sol, оно должно быть именно таким. Вставляем код: // SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
library SillyStringUtils {
struct Haiku {
string line1;
string line2;
string line3;
}
function shruggie(string memory _input) internal pure returns (string memory) {
return string.concat(_input, unicode" 🤷");
}
}
Теперь создаем второй файл с названием
Imports.sol и вставляем код:// SPDX-License-Identifier: MIT
import "./SillyStringUtils.sol";
pragma solidity 0.8.17;
contract ImportsExercise {
using SillyStringUtils for string;
SillyStringUtils.Haiku public haiku;
function saveHaiku(string memory _line1, string memory _line2, string memory _line3) public {
haiku.line1 = _line1;
haiku.line2 = _line2;
haiku.line3 = _line3;
}
function getHaiku() public view returns (SillyStringUtils.Haiku memory) {
return haiku;
}
function shruggieHaiku() public view returns (SillyStringUtils.Haiku memory) {
SillyStringUtils.Haiku memory newHaiku = haiku;
newHaiku.line3 = newHaiku.line3.shruggie();
return newHaiku;
}
}
Все готово, можно деплоить
Please open Telegram to view this post
VIEW IN TELEGRAM
8🐳13🔥4🦄2
В целом подбиваем итог по Pendle
Сегодня был завершен второй сезон фарма дропа от Ethena. Капитализация USDe выросла до трех миллиардов и бла-бла-бла... Не интересно, давайте перейдем к сути.
• 5% от саплая пойдет на дроп за Sats во втором сезоне
• Проверить свою аллокацию можно будет 9 сентября здесь
• Клейм 30 сентября
• Сразу стартует 3-й сезон (я планирую скипать)
Общий саплай ENA 15B, а на дроп выделено 5%, что составляет 750М $ENA. За второй сезон нафармлено 11.64T Sats, получается что количество приходящихся токенов $ENA на 1 Sats составляет 0,0000644. Теперь умножаете ваше кол-во Sats на 0,0000644 и получаете кол-во токенов, которые вы получите.
У меня 112.680.000 Sats, следовательно получу я 7256.5 $ENA
Любой пользователь, который уменьшит свой баланс USDe в своем кошельке до распределения токенов ниже своего среднего баланса за 30 дней по состоянию на момент снимка 1 сентября, получит пропорциональное сокращение распределения токенов (на процент нехватки) и перераспределение среди других пользователей в заблокированных пулах ENA или sENA (представленных ниже).
Тоже самое относится и к YT Pendle, снимки проходили в период с 1-го августа по 1-е сентября, 1 YT = 1 USDe. Я все выспросил в тикете саппорта:
• Как мне узнать сколько USDe необходимо холдить?
- В скором времени, в интерфейсе, вы получите точную цифру
• Как мне нужно холдить USDe: просто на кошельке или нужно лочить в пуле?
- Оба варианта будут засчитаны
Проще говоря, скоро, вероятнее всего до 9-го сентября у нас где-то на сайте Ethena появится цифра USDe, которую нам необходимо холдить для получения дропа. Максимально пидорский и гнусный мув со стороны фаундеров, но имеем что имеем
Фармил я через YT: Ethena, Zircuit, EtherFI, EigenLayer и совсем чуть чуть Karak
Затраты составили: -5350$, накинем комиссии и округлим до -5400$
Что по профиту?
Поинты
Я больше ничего целенаправленно не фармил, но какой-то минимальный дроп получу
Очень грубо говоря там Zircuit накинет, когда-то там, 1000-1500 $ZRC, EtherFI надеюсь 100 $ETHFI навалит, от Karak'a вообще ничего не жду и только EigenLayer может быть как-то порадует.
По факту, на момент сейчас, общий доход составляет чуть меньше 3900$. Итоговый P&L -1500$. Разумеется можно понадеяться на восстановление рынка альтов, хотя бы до июльских значений и тогда эта история на бумаге будет пахнуть БУ, но на деле залоченые/сожженные деньги на довольно долгий промежуток времени, который не работали там, где они могли принести потенциальную прибыль все равно сводит к тому, что ситуация не радужная. В чем ошибка? В том что я нафантазировал себе то, что на дроп на второй сезон Ethena пойдет 10% токенов без подтверждений этого, и ожидал сумму $ENA ровно в два раза больше, тогда бы даже по нынешним ужасным котировкам история была бы на момент сейчас уже безубыточной и оставалось дело за принятием решения: Продажа и закрытие в БУ либо Холд и попытка закрыть в профит.
Разумеется Zircuit, EtherFI и Karak накинут какую-то копейку. Возьмем условно пусть это будет 200$ в сумме. Тогда P&L составит -1300$, но я жду что порадует мастодонт - EigenLayer и как-то спасет ситуацию. В общем, даже по текущим котировкам, при текущей ситуации допускаю выход в номинальный БУ, а также не игнорирую тот факт, что я все таки жду роста альткоинов.
Такие пироги, славяне
Please open Telegram to view this post
VIEW IN TELEGRAM
5🐳8❤2🦄2
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
contract ErrorTriageExercise {
/**
* Finds the difference between each uint with it's neighbor (a to b, b to c, etc.)
* and returns a uint array with the absolute integer difference of each pairing.
*/
function diffWithNeighbor(
uint _a,
uint _b,
uint _c,
uint _d
) public pure returns (uint[] memory) {
uint[] memory results = new uint[](3);
results[0] = _a > _b ? _a - _b : _b - _a;
results[1] = _b > _c ? _b - _c : _c - _b;
results[2] = _c > _d ? _c - _d : _d - _c;
return results;
}
/**
* Changes the _base by the value of _modifier. Base is always >= 1000. Modifiers can be
* between positive and negative 100;
*/
function applyModifier(
uint _base,
int _modifier
) public pure returns (uint returnValue) {
if(_modifier > 0) {
return _base + uint(_modifier);
}
return _base - uint(-_modifier);
}
/**
* Pop the last element from the supplied array, and return the popped
* value (unlike the built-in function)
*/
uint[] arr;
function popWithReturn() public returns (uint returnNum) {
if(arr.length > 0) {
uint result = arr[arr.length - 1];
arr.pop();
return result;
}
}
// The utility functions below are working as expected
function addToArr(uint _num) public {
arr.push(_num);
}
function getArr() public view returns (uint[] memory) {
return arr;
}
function resetArr() public {
delete arr;
}
}
Заманал меня этот Base Learn, хочется уже перейти к экосистеме
Please open Telegram to view this post
VIEW IN TELEGRAM
5🐳5🔥3
Здесь мы проведем несколько манипуляций
В обоих контрактах заменить value на любое число, которое вам по душе
string private salt = "value" -> string private salt = "777"
Сначала мы создаем файл с названием
AddressBook.sol// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;
import "@openzeppelin/contracts/access/Ownable.sol";
contract AddressBook is Ownable(msg.sender) {
string private salt = "value";
struct Contact {
uint id;
string firstName;
string lastName;
uint[] phoneNumbers;
}
Contact[] private contacts;
mapping(uint => uint) private idToIndex;
uint private nextId = 1;
error ContactNotFound(uint id);
function addContact(string calldata firstName, string calldata lastName, uint[] calldata phoneNumbers) external onlyOwner {
contacts.push(Contact(nextId, firstName, lastName, phoneNumbers));
idToIndex[nextId] = contacts.length - 1;
nextId++;
}
function deleteContact(uint id) external onlyOwner {
uint index = idToIndex[id];
if (index >= contacts.length || contacts[index].id != id) revert ContactNotFound(id);
contacts[index] = contacts[contacts.length - 1];
idToIndex[contacts[index].id] = index;
contacts.pop();
delete idToIndex[id];
}
function getContact(uint id) external view returns (Contact memory) {
uint index = idToIndex[id];
if (index >= contacts.length || contacts[index].id != id) revert ContactNotFound(id);
return contacts[index];
}
function getAllContacts() external view returns (Contact[] memory) {
return contacts;
}
}
Теперь деплоим этот контракт и создаем новый файл, тут уже название произвольное
Второй контракт:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;
import "./AddressBook.sol";
contract AddressBookFactory {
string private salt = "value";
function deploy() external returns (AddressBook) {
AddressBook newAddressBook = new AddressBook();
newAddressBook.transferOwnership(msg.sender);
return newAddressBook;
}
}
И уже этот контракт мы деплоим, копируем адрес и вставляем в чекер
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍6🔥3
Отныне появится новая рубрика на канале, часто бывает такое, что какая-то короткая новость появляется и из нее ты и пост не слепишь, а тем не менее она важна. Будет выходить пост-дайджест, со сводкой апдейтов по проектам
Как вам новая рубрика, славяне?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🙏1🐳1
Сейчас ивент идет, через 8 часов кончается. Можно залутать легкие бонусные поинты, но лично я скипнул первую фазу и там у меня по нулям. Полностью пробриджить весь ивент стоит чуть больше 100$.
Делаете славяне? Что скажете?
Upd. Ага, не стоит это делать. Они перезапустили ивент и тупо моют поинты.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
Замените value на любое число, которое вам по душе
string private salt = "value"
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract UnburnableToken {
string private salt = "value";
mapping(address => uint256) public balances;
uint256 public totalSupply;
uint256 public totalClaimed;
mapping(address => bool) private claimed;
// Custom errors
error TokensClaimed();
error AllTokensClaimed();
error UnsafeTransfer(address _to);
constructor() {
totalSupply = 100000000; // Set the total supply of tokens
}
// Public function to claim tokens
function claim() public {
if (totalClaimed >= totalSupply) revert AllTokensClaimed(); // Check if all tokens have been claimed
if (claimed[msg.sender]) revert TokensClaimed(); // Check if the caller has already claimed tokens
// Update balances and claimed status
balances[msg.sender] += 1000;
totalClaimed += 1000;
claimed[msg.sender] = true;
}
// Public function for safe token transfer
function safeTransfer(address _to, uint256 _amount) public {
// Check for unsafe transfer conditions, including if the target address has a non-zero ether balance
if (_to == address(0) || _to.balance == 0) revert UnsafeTransfer(_to);
// Ensure the sender has enough balance to transfer
require(balances[msg.sender] >= _amount, "Insufficient balance");
// Perform the transfer
balances[msg.sender] -= _amount;
balances[_to] += _amount;
}
}
Контракты занимают много места, поэтому не получается к сожалению уместить 2 контракта в один пост
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥6🐳4
Замените value на любое число, которое вам по душе
string private salt = "value"
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.17;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
contract WeightedVoting is ERC20 {
string private salt = "value";
using EnumerableSet for EnumerableSet.AddressSet;
error TokensClaimed();
error AllTokensClaimed();
error NoTokensHeld();
error QuorumTooHigh();
error AlreadyVoted();
error VotingClosed();
struct Issue {
EnumerableSet.AddressSet voters;
string issueDesc;
uint256 quorum;
uint256 totalVotes;
uint256 votesFor;
uint256 votesAgainst;
uint256 votesAbstain;
bool passed;
bool closed;
}
struct SerializedIssue {
address[] voters;
string issueDesc;
uint256 quorum;
uint256 totalVotes;
uint256 votesFor;
uint256 votesAgainst;
uint256 votesAbstain;
bool passed;
bool closed;
}
enum Vote {
AGAINST,
FOR,
ABSTAIN
}
Issue[] internal issues;
mapping(address => bool) public tokensClaimed;
uint256 public maxSupply = 1000000;
uint256 public claimAmount = 100;
string saltt = "any";
constructor(string memory _name, string memory _symbol)
ERC20(_name, _symbol)
{
issues.push();
}
function claim() public {
if (totalSupply() + claimAmount > maxSupply) {
revert AllTokensClaimed();
}
if (tokensClaimed[msg.sender]) {
revert TokensClaimed();
}
_mint(msg.sender, claimAmount);
tokensClaimed[msg.sender] = true;
}
function createIssue(string calldata _issueDesc, uint256 _quorum)
external
returns (uint256)
{
if (balanceOf(msg.sender) == 0) {
revert NoTokensHeld();
}
if (_quorum > totalSupply()) {
revert QuorumTooHigh();
}
Issue storage _issue = issues.push();
_issue.issueDesc = _issueDesc;
_issue.quorum = _quorum;
return issues.length - 1;
}
function getIssue(uint256 _issueId)
external
view
returns (SerializedIssue memory)
{
Issue storage _issue = issues[_issueId];
return
SerializedIssue({
voters: _issue.voters.values(),
issueDesc: _issue.issueDesc,
quorum: _issue.quorum,
totalVotes: _issue.totalVotes,
votesFor: _issue.votesFor,
votesAgainst: _issue.votesAgainst,
votesAbstain: _issue.votesAbstain,
passed: _issue.passed,
closed: _issue.closed
});
}
function vote(uint256 _issueId, Vote _vote) public {
Issue storage _issue = issues[_issueId];
if (_issue.closed) {
revert VotingClosed();
}
if (_issue.voters.contains(msg.sender)) {
revert AlreadyVoted();
}
uint256 nTokens = balanceOf(msg.sender);
if (nTokens == 0) {
revert NoTokensHeld();
}
if (_vote == Vote.AGAINST) {
_issue.votesAgainst += nTokens;
} else if (_vote == Vote.FOR) {
_issue.votesFor += nTokens;
} else {
_issue.votesAbstain += nTokens;
}
_issue.voters.add(msg.sender);
_issue.totalVotes += nTokens;
if (_issue.totalVotes >= _issue.quorum) {
_issue.closed = true;
if (_issue.votesFor > _issue.votesAgainst) {
_issue.passed = true;
}
}
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥6🐳3❤2
Замените value на любое число, которое вам по душе
string private salt = "value"
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol";
interface ISubmission {
struct Haiku {
address author;
string line1;
string line2;
string line3;
}
function mintHaiku(
string memory _line1,
string memory _line2,
string memory _line3
) external;
// function ownerOf(uint256 _id) external view returns (address);
function counter() external view returns (uint256);
function shareHaiku(uint256 _id, address _to) external;
function getMySharedHaikus() external view returns (Haiku[] memory);
}
contract HaikuNFT is ERC721, ISubmission {
Haiku[] public haikus;
mapping(address => mapping(uint256 => bool)) public sharedHaikus;
uint256 public haikuCounter;
constructor() ERC721("HaikuNFT", "HAIKU") {
haikuCounter = 1;
}
string salt = "value";
function counter() external view override returns (uint256) {
return haikuCounter;
}
function mintHaiku(
string memory _line1,
string memory _line2,
string memory _line3
) external override {
// Check if the haiku is unique
string[3] memory haikusStrings = [_line1, _line2, _line3];
for (uint256 li = 0; li < haikusStrings.length; li++) {
string memory newLine = haikusStrings[li];
// string memory newHaikuString = string(
// abi.encodePacked(haikusStrings[li])
// );
for (uint256 i = 0; i < haikus.length; i++) {
Haiku memory existingHaiku = haikus[i];
string[3] memory existingHaikuStrings = [
existingHaiku.line1,
existingHaiku.line2,
existingHaiku.line3
];
for (uint256 eHsi = 0; eHsi < 3; eHsi++) {
string memory existingHaikuString = existingHaikuStrings[
eHsi
];
if (
keccak256(abi.encodePacked(existingHaikuString)) ==
keccak256(abi.encodePacked(newLine))
) {
revert HaikuNotUnique();
}
}
}
}
// Mint the haiku NFT
_safeMint(msg.sender, haikuCounter);
haikus.push(Haiku(msg.sender, _line1, _line2, _line3));
haikuCounter++;
}
function shareHaiku(uint256 _id, address _to) external override {
require(_id > 0 && _id <= haikuCounter, "Invalid haiku ID");
Haiku memory haikuToShare = haikus[_id - 1];
require(haikuToShare.author == msg.sender, "NotYourHaiku");
sharedHaikus[_to][_id] = true;
}
function getMySharedHaikus()
external
view
override
returns (Haiku[] memory)
{
uint256 sharedHaikuCount;
for (uint256 i = 0; i < haikus.length; i++) {
if (sharedHaikus[msg.sender][i + 1]) {
sharedHaikuCount++;
}
}
Haiku[] memory result = new Haiku[](sharedHaikuCount);
uint256 currentIndex;
for (uint256 i = 0; i < haikus.length; i++) {
if (sharedHaikus[msg.sender][i + 1]) {
result[currentIndex] = haikus[i];
currentIndex++;
}
}
if (sharedHaikuCount == 0) {
revert NoHaikusShared();
}
return result;
}
error HaikuNotUnique();
error NotYourHaiku();
error NoHaikusShared();
}
Вот и все, теперь у нас есть полный комплект из 13-ти бейджей за
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍7❤🔥4🔥3
Я надеялся, что уже на этом моменте мы перейдем к экосистеме Base, но как бы ни так
Исходя из перечисленных требований можно сделать следующие выводы:
• Активность должна быть как в сети Base, так и в Ethereum
• Акцент они ставят на кол-во дней и стрик дней, что и не мудрено, ведь за такой долгий промежуток времени набить больше кол-во недель и месяцев активности - не сложно. Количество активных дней, хоть как-то выделяет тру беливеров.
• Не вижу к сожалению требований по кол-ву транзакций, а скорее идет упор на качество транз и взаимодействие с ликвидностью внутри сети: бриджи, свапы и лендинговые протоколы.
• Ну и очевидно, ведь у Base эрекция на девелоперов, - есть графа с количество деплойнутых смарт контрактов. Учитываются контракты как в Mainnet, так и в Testnet. Можно деплоить через Owlto или Merkly, но это гораздо дороже, чем если делать это самому через Remix, а контракты можно использовать те, которые мы юзали для Base Learn.
- Минтим NFT и заполняем форму
- Переходим на Galxe и выполняем простые квесты
- Теперь переходим на страницу активности на Galxe и выполняем каждую копанию Base Bonanza
- Переходите сюда, подключаете кош и создаете аватар (минтить ничего не нужно). Если покупали боксы Adiddas x Doodles, то у вас вероятнее всего будут какие то шмотки - можете их применить.
- Подписаться на BSX в Twitter
- Переходим на BSX1000
- Подключаем кошелек и пополняем баланс на 11 USDC. Это лудилка, с огромными плечами, занижаете плечо до минимального - х100 и открываете позицию на 10 USDC. Очень важно ее продержать более 30 секунд и можете закрывать. Ставите ваши USDC на вывод, fee 1$.
- Вступаете в General chat в Телеге
- Вступаете в Discord и верифаетесь
- Заминтить эту NFT
- На Galxe подписываете на HyperSub
- Подписываетесь на них в Твиттере
- Оплачиваете подписку за 0.002ETH
- Переходите на DEX и совершаете свап
- Подписаться на их Твиттер
- Подписаться на еще один Твиттер
- Заминтить эту NFT
- Посетить страницу
- Подписаться на Твиттер
- Заминтить NFT
- Подписаться на Твиттер
- Заминтить NFT
- Заминтить NFT
- Подписаться на Twitter
- Подписаться на Твиттер
- Посетить сайт
- Холдить 1000 $MIGGLES [CA:
0xB1a03EdA10342529bBF8EB700a06C60441fEf25d]Свапнуть можно на Uniswap
- Подписаться на Твиттер
- Подписаться на них на Galxe
- Внести коллатеральный депозит на 20 USDC
- Взять займ в эквиваленте 20$ в пуле weETH/WETH. Депозитим weETH и берем borrow WETH
- Подписаться на Твиттер
- Вступить в Дискорд
- Забриджить ETH из любой сети в Base
- Посетить страницу ивента
- Twitter подписка
- Вступить в Дискорд
- Подписаться на Телегу
- Переходите на SynFutures и открываете фьюч
- Не закрываете, пока не засчитает задание
- Подписаться на Твиттер
- Ретвитнуть пост
- Перейти на страницу
- Разместить DCA ордер
Скорее всего добавят новых заданий, но мы наконец-то можем перейти к экосистеме Base
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤8🔥3🐳2
Сейчас Owlto не взымает комсу, поэтому можно фришно набить он-чейн вольюм в
Посты по экосистеме Base soon
Please open Telegram to view this post
VIEW IN TELEGRAM
В скором времени закроется
Успейте проявить активности, не дожидаясь основного гайда:
- Скачиваете Unisat
- Переходите в кран Fractal и клеймите токены.
Гайд soon, скорее всего выйдет днем
Также последняя возможность нафармить LXP в
Этот гайд подойдет не для всех, а лишь для тех, кто ранее взаимодействовал с Linea и имеет активные дни/недели/месяца. Гайд вам поможет довести отработку Linea до ума.
После 20 сентября вернемся к экосистеме
Пиздец, дайте 30 часов в сутках
P.S. если есть те, кто классно шарит в Биткоин экосистеме - напишите в личку, буду признателен за небольшую консультацию
Сейчас активно тыкаюсь в Fractal Testnet, конец через
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥11🐳3👍2
Сегодня должен был выйти гайд на Bitcoin экосистему, но не сложилось. Много головняка навалилось, в любом случае буду стараться выпустить оба гайда: Bitcoin и Linea до 16-го числа. Если не буду успевать, то гайды будут выходить паралельно.
Please open Telegram to view this post
VIEW IN TELEGRAM
5🐳7🔥5❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
10🐳6🔥2
Meteora начисляет очки двумя путями:
— за TVL: 1 доллар = 1 point в день
— за комиссии: 1 доллар fees = 1000 points
А теперь вопрос: что выгоднее? Держать ликвидность… или реально участвовать в торговле?
📉 Простой пример
Ты положил $1000 в пул и просто стоишь в “мертвом” диапазоне без свапов.
Итог — 1000 points в день.
Но если ты сгенерировал всего $1 комиссии за день — это уже 1000 points.
А сгенерируешь $10 — получишь столько же, как за 10 дней “простоя”.
📊 Стратегия
Цель — выбирать активные пулы, а не просто “безопасные”.
Даже с меньшей суммой в правильном диапазоне ты заработаешь в 5-10 раз больше, чем с большой суммой, которая не участвует в торговле.
💡 Подсказка
Используй @meteora_pools_selector_bot или ручной анализ на edge.meteora.ag
Фильтруй пулы по volume, base fee, bin step и fees за последние 24ч.
📌 Итог
Метеора награждает не пассивных, а умных.
Ты можешь:
A) просто держать $1000 и ждать
B) поработать 30 минут, найти пул с хорошей активностью и сделать $5 комиссии — и заработать те же поинты.
Выбор очевиден.
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳6
Добрался я наконец-то до своего самого нелюбимого проекта из всей четверки Scroll, Base и Zora. Кстати посмотреть ультимативные гайды на каждый из этих проектов, вы можете нажав на гиперссылку. Почему нелюбимого? Потому что бесконечные, утомительные компании, которые не структурированы нормально и непонятны для человека, который хочет легко и просто взаимодействовать с проектом.
Если в случае Base, Scroll и Zora еще не поздно взаимодействовать с проектом, то в случае с Linea многие активности уже недоступны. Поэтому этот гайд для тех, кто раннее выполнял активности от Linea и хочет догреть свой аккаунт, чтобы гарантированно претендовать на дроп.
Мои принципы по отработке такого рода проектов остаются неизменными - один строг аккаунт, который железно получит дроп.
Сейчас верификацию уже пройти нельзя, а лишь удостовериться что вы ее прошли. 8-го сентября был дедлайн, для успешного прохождения верификации необходимо было пройти одну верификацию из группы А, и две верификации из группы В.
Для получения этой роли, необходимо было внести 0.1 ETH в лендинговый протокол до 15.04, сейчас, что логично, эту роль получить нельзя. Вы можете проверить наличие у себя роли здесь, вставив свой кошелек.
Переходите на сайт и создаете себе доменное имя, тут все сделано по аналогии с Base
Это что-то вроде личного Медиума проекта, можно почитать статьи и поминтить их. На сколько это целесообразно? Я не знаю, но заминчу.
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥5👍3🐳2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥4🐳2
Supply, etc. info coming soon.
Сюда лут, кайф имеется
Please open Telegram to view this post
VIEW IN TELEGRAM
5🐳6🔥3
Пока я пишу вторую часть гайда по Linea и накидываю черновик по экосистеме BTC - дам затравочку на пост, который ни разу не анонсировался 👀 😅
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8