Что определяет EIP-681
EIP-681 — это Ethereum Improvement Proposal, опубликованное в репозитории EIP, которое описывает формат URI для просьбы отправить эфир или вызвать функцию контракта. URI начинается с ethereum:, за которым идут целевой адрес, необязательные @ и идентификатор цепочки, необязательное имя функции и параметры запроса. Кошелёк, отсканировавший такой код, может собрать транзакцию для проверки пользователем.
Простой запрос эфира выглядит как ethereum:0x...@1?value=1e18. Значение задано в wei — наименьшей единице эфира, и допускается экспоненциальная запись, поэтому 1e18 означает один эфир. Идентификатор цепочки сообщает кошельку, какая сеть имеется в виду, например 1 для основной сети Ethereum.
Переводы токенов
EIP-681 может также описывать вызов контракта токена. Для перевода токенов целевой адрес — это контракт токена, функция — transfer, а параметры задают получателя и сумму, как в ethereum:0xTokenContract@1/transfer?address=0xRecipient&uint256=1e6. Сумма указывается в наименьшей единице токена, которая зависит от числа десятичных знаков токена.
Поддержка полного формата в кошельках различается. Одни кошельки читают только адрес, а другие игнорируют идентификатор цепочки или вызов функции, поэтому код стоит проверить в кошельках, которыми пользуются ваши плательщики. Плательщик всегда должен проверять сеть, токен и получателя перед подтверждением.