что такое адрес контракта токена
В этом руководстве мы покажем, как залистить любой токен на Uniswap.
Все мы знаем, что криптовалюты можно покупать, продавать и обменивать на другие криптовалюты. Но для этого придется полагаться на централизованные биржи.
Проблема в том, что вы не можете торговать некоторыми монетами, пока биржа не решит их залистить. И хуже всего то, что период ожидания может быть долгим, а стоимость листинга на бирже слишком высока в зависимости от того, насколько популярна конкретная биржа.
Благодаря DeFi (децентрализованное финансирование) и всем DEX (децентрализованным биржам), которые доступны сегодня, любой может самостоятельно зарегистрировать токен и сделать его доступным для торговли. Никаких комиссий за листинг на бирже, никакого периода ожидания и никаких ненужных хлопот.
В настоящее время на DEX, например, Uniswap, можно добавлять только токены. В частности, токены ERC-20 (токены на основе Ethereum).
В этом руководстве мы продемонстрируем, как залистить токен на децентрализованную биржу Uniswap. Может ли это быть любой, к примеру, Ваш собственный токен ERC20, который вы хотите продать? Или это может быть ваш любимый токен, который пока нигде недоступен для торговли?
Прежде чем мы объясним, как листить токены, давайте сделаем краткий обзор на Uniswap и поймем, как работает листинг токенов!
Что такое Uniswap?
Любые токены ERC20 могут быть залистины и проданы на Uniswap. Это достигается засчет использования смарт контрактов.
Как работает листинг токенов?
Uniswap работает на рынке торговых пар. Каждая торговая пара управляется и защищается уникальным смарт-контрактом, который развертывается в сети Ethereum.
Кто угодно, включая Вас, может создать торговую пару и стать поставщиком ликвидности, поместив резервы в пул торговой пары.
После того, как пара развернута, пользователи могут начать обмен и обеспечить ликвидность. И все это без необходимости создавать учетную запись или проходить KYC.
Uniswap не полагается на ордера. Вместо этого он использует алгоритм, определяющий цену. Мы объясним принцип работы алгоритма и все его технические аспекты в отдельном руководстве, поэтому обязательно добавляйте наш сайт в закладки!
Uniswap предоставляет пользователям простой интерфейс для обмена между ETH и любыми токенами ERC20. Его лучше всего использовать, когда вы хотите быстро обменять токены по текущей рыночной цене.
Теперь, когда вы узнали, что такое Uniswap, и как он работает, давайте посмотрим, как разместить токены на этой бирже.
Требования для листинга токена ERC20 на Uniswap
Допустим, вы начали проект DeFi, у которого есть собственный токен ERC20, и вы хотите разместить его на Uniswap. Вот что вам понадобится:
Как добавить токен на Uniswap?
2) В правом верхнем углу вы увидите опцию «Connect to a wallet» («Подключиться к кошельку»). Нажмите на нее, выберите MetaMask или любой другой кошелек на Ваш выбор, разблокируйте его и нажмите «connect» («Подключиться»).
3) После подключения перейдите на https://app.uniswap.org/#/swap. Теперь нажмите «select a token» («выбрать токен») и найдите токен.
Поскольку это пользовательский токен, вы не найдете его в списке Uniswap по умолчанию. Вам нужно будет искать токен по его адресу.
Примечание. Любой желающий может создать, а также придумать название для любого токена ERC20 в Ethereum, включая создание фэйк версии существующих токенов.
Uniswap не проверяет подлинность токена. Он просто извлекает информацию о токене с указанного Вами адреса токена. Прежде чем взаимодействовать с токеном ERC20, проведите исследование и убедитесь, что адрес контракта токена правильный. Также перед обменом или предоставлением ликвидности обязательно проверьте аналитику токенов на Uniswap.info.
Вот как можно узнать адрес контракта токена:
Перейдите на Etherscan.io и найдите токен, который вы хотите добавить в Uniswap. Скопируйте адрес контракта и вставьте его в строку поиска Uniswap. Теперь токен появится там.
4) Теперь, если токен, который вы хотите залистить, уже кем-то добавлен, то Вы получите возможность обменяться им. В этом случае вам не нужно добавлять его снова.
Кроме того, если Вы видите такой вариант, как «Insufficient liquidity for this Trade» («Недостаточная ликвидность для этой Сделки»), тогда это означает, что токен еще не внесен в листинг или никто не предоставил достаточно ликвидности для этой пары.
Вы будете первым поставщиком ликвидности, и вот как развернуть свой токен за считанные минуты в этом случае.
Рекомендации по размещению токена ERC-20 (Ethereum) на Uniswap
Перейдите на https://app.uniswap.org/#/pool и нажмите «create a pair» («Создать пару»), где вы увидите следующее сообщение:
«You are the first liquidity provider. The ratio of tokens you add will set the price of this pool. Once you are happy with the rate click supply to review»
На Uniswap для листинга токена вам необходимо предоставить ликвидность. Вы не можете обеспечить ликвидность только для этого токена. Вам также нужно будет выбрать дополнительный токен для обеспечения ликвидности.
Это может быть ETH или эквивалентная сумма любого токена ERC20. То есть пара может быть либо ETH и токеном ERC 20, либо двумя токенами ERC 20.
Поскольку вы первым указываете токен, его значение совершенно произвольно. Соотношение, которое вы предоставляете, определяет цену токена.
Например, если вы предоставляете 1 ETH и 1 токен, это означает, что цена токена изначально установлена на 1 ETH. Если вы предоставляете 0,1 ETH и 1000 токенов XYZ, то цена XYZ устанавливается равной 10000 за 1 ETH или 0,0001 ETH за XYZ.
Создайте пару и добавьте ликвидность
Внизу экрана поставщика ликвидности вы найдете начальные цены и долю пула.
Примечание: любая транзакция, которую вы инициируете на Uniswap, будет стоить небольшую сумму ETH в качестве платы за газ.
После этого вы увидите сообщение: «Transaction submitted – View on Etherscan» («Транзакция отправлена - просмотр на Etherscan»).
Вы создали пару и обеспечили ликвидность.
Поздравляем! Вы только что добавили токен в Uniswap.
После успешного листинга токена пользователи могут начать переключаться между этой парой. Сообщите сообществу о листинге, чтобы они могли торговать и обеспечивать ликвидность.
Чтобы начать обмен, перейдите в раздел «swap» на бирже Uniswap. Вам все равно придется искать токен, используя адрес контракта.
По умолчанию он не будет отображаться в списке токенов во внешнем интерфейсе. Как только пара станет популярной и станет достаточно ликвидной, вы можете отправить запрос на включение вашего токена в список токенов внешнего интерфейса.
Кроме того, предоставляя ликвидность, вы получаете 0,3% от всех сделок по паре, пропорционально вашей доле в пуле.
Как поставщик ликвидности, мы надеемся, что вы понимаете, что такое непостоянная потеря. Также, как мы говорили в начале, любой проект может размещать токены на основе Ethereum на Uniswap.
Однако обязательно проведите исследование и будьте внимательны, прежде чем предоставлять ликвидность или обменивать токен на Uniswap.
Воспользуйтесь сайтом uniswap.info, на котором есть информация обо всех LP (пулах ликвидности) Uniswap pair.
Надеемся, вы научились добавлять собственные токены ERC-20 на биржу Uniswap. Теперь вы можете тороговать любыми любимыми токенами с малой капитализацией на Uniswap.
Устанавливаем криптовалютный кошелек MetaMask и добавляем в него сеть Binance Smart Chain
Часто для работы с криптовалютыми нужен программный кошелек, одним из таких популярных решений является популярный кошелек MetaMask. Изначально он работает в сети Ethereum, но при желании его функционал можно легко и быстро расширить, добавив в него возможность работы в сети BSC. Об этом я подробно расскажу в рамках этой публикации.
реклама
Как создать кошелек MetaMask
Итак, если у вас все еще нет установленного кошелька, то для начала его нужно скачать. Для браузеров Chrome, Firefox и других есть специальное расширение, а для смартфонов на операционной системе Android и iOS существует приложения, которые можно скачать в официальных магазинах. Перейти на страницу загрузки кошелька для нужной вам платформы рекомендую с официального сайта MetaMask, для избегания загрузки сторонних приложений.
Далее мы рассмотрим установку и работу кошелька на примере браузера Chrome, но на других платформах все делается примерно аналогично.
реклама
Выбираем нужную платформу на сайте MetaMask и устанавливаем расширение, нажав на соответствующую кнопку.
После установки в открывшемся меню нажимаем кнопку «Начать работу»
реклама
Далее нам предлагается восстановить имеющийся кошелек или создать новый, нажимаем «Создать Кошелек»
Принимаем условия использования кошелька нажатием на соответствующую кнопку и попадаем в следующее меню, где нужно придумать пароль минимум из 8 символов. Для повышения безопасности я обычно придумываю пароли, в котором имеются цифры, буквы разных регистров и символы. Пароль обязательно нужно, где-то записать, обычно для таких целей я использую блокнот. Еще раз соглашаемся с условиями и нажимаем кнопку «Создать»
реклама
В следующем окне нас информируют, что такое Seed-фраза. Если в нескольких словах, то это случайно сгенерированные 12 слов, которые являются как бы дополнительным паролем и служат для восстановления кошелька в случае замены используемого устройства. Здесь просто наживаем «Далее»
Далее кошелек автоматически генерирует вашу Seed-фраза для кошелька. Ее обязательно нужно скопировать, а еще лучше внимательно переписать в блокнот. Эту фразу ни в коем случае нельзя никому разглашать, и желательно хранить на бумаге или на электронных носителях без доступа к интернету. После того как вы скопировали и перепроверили Seed-фраза, нажимаем кнопку «Далее». (На фото ниже я просто демонстрирую создание кошелька, на данном кошельке не будет никаких средств, не пытайтесь его восстановить.)
В новом окне кошелек хочет проверить, что мы сохранили все правильно и просит ввести вашу фразу в соответствующем порядке. Вводим и нажимаем «Подтвердить»
Поздравляю, теперь у вас есть свой криптовалютный кошелек. Для удобства его можно закрепить на панели инструментов вашего браузера нажав на соответствующие иконки как на фото ниже.
Как в MetaMask добавить сеть Binance Smart Chain
Изначально MetaMask может работать только в сети Ethereum (ERC-20), а для того что бы расширить его функционал нужно добавить сеть Binance Smart Chain (BEP-20). Как я и говорил выше, поскольку транзакции в сети Ethereum достаточно дорогие и долгие, многие при переводах особенно небольших сумм пользуются сетью BSC, также в этой сети можно дешево производить обмен различных токенов.
Итак, перейдем к добавлению новой сети. По умолчанию в самом верху расширения вобрана сеть «Ethereum Mainnet», кликаем на нее и в появившемся окне нажимаем «Пользовательский RPC»
Далее остается только заполнить все данные как на скрине ниже и нажать на кнопку «Сохранить». Для вашего удобства все необходимые данные я также оставляю ниже.
Имя сети: Binance Smart Chain
Новый RPC URL: https://bsc-dataseed.binance.org/
URL блок-эксплорера: https://bscscan.com
После этой манипуляции вы успешно добавите сеть Binance Smart Chain в ваш кошелек, и можете смело проводить транзакции в ней.
На мобильном приложении кошелька все делается аналогично, только зайти нужно в меню добавления сетей через настройки. Ниже приложу несколько последовательных скриншотов для наглядности.
Также добавлю, что все операции в сети BSC требует оплаты комиссий в токене BNB. Поэтому всегда храните пару долларов на всякий случай в этой валюте на кошельке, любые транзакции в этой сети недорогие и стоят примерно 5-30 центов в эквиваленте BNB.
В случае необходимости вы сможете менять сети с Binance Smart Chain на Ethereum и наоборот в любой момент.
Как добавить новый токен
Обратите внимание, что изначально у вас в кошельке добавлен всего один базовый токен BNB, для добавления новых токенов нужно нажать на кнопку «Добавить токен» в самом низу кошелька.
И в появившемся окне заполнить поле смарт-контракта, остальные данные подтягиваются автоматически. К примеру, для добавления токена BUSD нужно ввести адрес следующего смарт-контракта (0xe9e7cea3dedca5984780bafc599bd69add087d56). Обычно эти данные можно найти на том ресурсе, с которого вы хотите вывести средства на ваш кошелек.
Для пополнения кошелька и дальнейшей работе с ним удобно использовать популярную биржу Binance, там можно приобрести криптовалюты с любой банковской карты.
Более детально процесс регистрации кошелька MetaMask и добавление в него сети BSC, вы можете посмотреть в видео версии публикации, также в видео я делюсь несколькими полезными советами и нюансами по работе с данным кошельком. Рекомендую также его посмотреть.
Хочу добавить, что если вы в чем-то неуверенны, не спешите, лучше еще раз все взвесить и перепроверить пред совершением транзакции. Также при желании рекомендую вам подписаться на мой Telegram канал. А если у вас остались вопросы, вы можете задать их в моем Telegram чате. Спасибо за внимание.
Как определить адрес смарт-контракта до деплоя: использование CREATE2 для криптобиржи
Тема блокчейна не перестает быть источником не только всяческого хайпа, но и весьма ценных с технологической точки зрения идей. Посему не обошла она стороной и жителей солнечного города. Присматриваются люди, изучают, пытаются переложить свою экспертизу в традиционном инфобезе на блокчейн-системы. Пока что точечно: одна из разработок «Ростелеком-Солар» умеет проверять безопасность софта на базе блокчейна. А попутно возникают некоторые мысли по решению прикладных задач блокчейн-сообщества. Одним из таких лайфхаков – как определить адрес смарт-контракта до деплоя с помощью CREATE2 – сегодня хочу с вами поделиться под катом.
Опкод CREATE2 был добавлен в хард-форке Константинополь 28 февраля этого года. Как указано в EIP, этот опкод был введен в основном для каналов состояний (state channels). Однако, мы использовали его для решения другой проблемы.
На бирже есть пользователи с балансами. Каждому пользователю мы должны предоставить Ethereum-адрес, на который кто угодно сможет отправлять токены, тем самым пополняя свой аккаунт. Давайте назовем эти адреса «кошельками». Когда токены приходят на кошельки, мы должны отправить их на единый кошелек (hotwallet).
В следующих разделах я анализирую варианты решения этой задачи без CREATE2 и рассказываю, почему мы отказались от них. Если вам интересен только конечный результат, вы можете найти его в разделе «Итоговое решение».
Ethereum-адреса
Самое простое решение — генерировать новые ethereum-адреса для новых пользователей. Эти адреса и будут кошельками. Чтобы перевести токены из кошелька в hotwallet, необходимо подписать транзакцию вызовом функции transfer() с приватным ключом кошелька из бэкенда.
Этот подход имеет следующие преимущества:
Создавать отдельный смарт-контракт для каждого пользователя
Развертывание отдельного смарт-контракта для каждого пользователя позволяет не хранить приватные ключи от кошельков на сервере. Биржа вызовет этот умный контракт для передачи токенов в hotwallet.
От этого решения мы тоже отказались, поскольку пользователю нельзя показать адрес его кошелька без развертывания смарт-контракта (это на самом деле возможно, но довольно сложным образом с другими недостатками, которые мы не будем здесь обсуждать). На бирже пользователь может создать столько аккаунтов, сколько ему нужно, и каждому нужен собственный кошелек. Это означает, что нам нужно тратить деньги на деплой контракта, даже не будучи уверенными, что пользователь будет использовать эту учетную запись.
Опкод CREATE2
Чтобы устранить проблему предыдущего способа, мы решили использовать опкод CREATE2. CREATE2 позволяет заранее определить адрес, по которому будет развернут смарт-контракт. Адрес рассчитывается по следующей формуле:
Больше улучшений
Предыдущее решение все еще имеет один недостаток: вам нужно платить за развертывание умного контракта. Тем не менее, вы можете избавиться от этого. Для этого вы можете вызвать функцию transfer(), а затем selfdestruct() в конструкторе кошелька. И тогда газ за развертывание смарт-контракта будет возвращен.
Вопреки распространенному заблуждению, вы можете развернуть смарт-контракт по одному и тому же адресу несколько раз с опкодом CREATE2. Это связано с тем, что CREATE2 проверяет, что nonce целевого адреса равен нулю (ему присваивается значение «1» в начале конструктора). При этом функция selfdestruct() каждый раз сбрасывает nonce адреса. Таким образом, если вы снова вызовете CREATE2 с теми же аргументами, проверка на nonce пройдет.
Обратите внимание, что это решение аналогично варианту с ethereum-адресами, но без необходимости хранить приватные ключи. Стоимость перевода денег с кошелька на hotwallet примерно равна стоимости вызова функции transfer(), поскольку мы не платим за развертывание смарт-контракта.
Итоговое решение
Когда пользователь переводит токены на соответствующий адрес кошелька, наш бэкэнд видит событие Transfer с параметром _to, равным адресу кошелька. На этот момент уже возможно увеличить баланс пользователя на бирже до развертывания кошелька.
Когда на адресе кошелька накапливается достаточное количество токенов, мы можем перевести их все сразу в hotwallet. Для этого бекенд вызывает функцию фабрики смарт-контрактов, которая выполняет следующие действия:
Таким образом, вызывается конструктор смарт-контракта кошелька, который передает все свои токены на адрес hotwallet и затем самоуничтожается.
Полный код можно найти здесь. Обратите внимание, что это не наш продакшн-код, так как мы решили оптимизировать байт-код кошелька и записали его в опкодах.
Автор Павел Кондратенков, специалист в области Ethereum
Как добавить любой токен в кошелек MetaMask: сети ERC20, BEP20?
После завершения установки кошелька MetaMask по умолчанию отображается только ETH (Ethereum). В вашей учетной записи не будут отображаться другие токены BEP20.
Также некоторые новые и малоизвестные токены могут даже не отображаться в результатах поиска. Вам придется вручную добавлять такие токены в свой кошелек.
Добавить токен очень просто, и это займет у Вас всего несколько секунд.
В этом руководстве мы расскажем Вам как добавить токены ERC20 (Ethereum Chain) и BEP20 (Binance Smart Chain) в кошелек MetaMask.
Как добавить токены в кошелек MetaMask
Перед добавлением токенов в свою учетную запись MetaMask убедитесь, что вы выбрали правильную сеть. То есть; если вы хотите добавить токен ERC20, выберите «Ethereum Mainnet». Если вы хотите добавить токен BEP20, выберите «Binance Smart Chain».
Теперь давайте добавим токены в учетную запись MetaMask.
Попробуйте строку поиска:
Примечание. Функция поиска работает только в сети «Ethereum Mainnet». То есть MetaMask отображает только стандартные токены ERC20 в результатах поиска. Чтобы добавить токены BEP20, вам необходимо использовать параметр пользовательского токена, который мы объяснили ниже.
Как мы уже говорили, на вкладке поиска будут отображаться только самые распространенные и популярные токены. Если токен, который вы ищете, не отображается, используйте опцию пользовательского токена.
Добавление пользовательских токенов в MetaMask
Чтобы добавить токен, нам нужен только адрес контракта соответствующего токена.
Какой адрес токена (адрес контракта) и где их найти?
Зайдите на Etherscan.io, чтобы узнать номер контракта токена ERC20.
Используйте BscScan, чтобы найти детали контракта токена BEP20.
Используйте соответствующие блок эксплореры, найдите имя токена и скопируйте номер контракта. Вы увидите детали адреса контракта под сводкой профиля.
Шаги по добавлению пользовательского токена ERC20 в MetaMask
Пример адреса контракта токена RSR: 0x8762db106b2c2a0bccb3a80d1ed41273552616e8
Как только информация получена; нажмите «Далее» и добавьте токен. Пользовательский токен ERC20 теперь добавлен в ваш кошелек.
Шаги по добавлению пользовательского токена BEP20 в MetaMask
Процедура добавления токенов BEP20 такая же, как указано выше. За исключением того, что вам нужно будет использовать BscScan, чтобы найти адрес контракта BEP20.
Чтобы это сработало, убедитесь, что вы выбрали смарт-цепочку Binance и подключились к ней. Только тогда кошелек может получить информацию о токене BEP20.
Вот и все. Вы успешно добавили свой любимый токен ERC20 и BEP20. Ваш недавно добавленный токен будет отображаться на главном экране в списке токенов.
Где я могу разместить свои токены ERC20?
Для каждого токена не существует отдельного адреса. Просто отправьте токены на свой адрес MetaMask Ethereum, и токены появятся.
Адреса ERC20 и BEP20 начинаются с 0x.
Вы можете использовать ту же процедуру для добавления любых пользовательских токенов ERC20 или BEP20. Просто убедитесь, что вы переключились на правильную сеть.
Для ERC20 вы должны быть в основной сети Ethereum. Для токенов BEP20 вам следует перейти на Binance Smart Chain.
Теперь вы можете подключить свой кошелек и торговать токенами на Uniswap.
Спасибо за прочтение. Если вам нравится это руководство, подпишитесь на нас в Telegram чате и в YouTube канале, чтобы получать больше обновлений.