Я сделал криптокошелёк с тремя кнопками. Самой сложной частью оказалась не крипта

Изначально я хотел сделать криптоплатёж почти таким же простым, как обычную оплату в приложении: открыл, нажал, оплатил. Но довольно быстро стало понятно, что главный враг — не плохой дизайн. Главный враг — сама структура крипты: сети, токены, газ, длинные адреса, подтверждения и необратимые ошибки.

Предисловие

Сразу честный статус: Stendly — это MVP/PWA для USDC-платежей, а не банк, не биржа и не "революция платежей". Внутри две части: кошелёк для покупателя и простой платёжный слой для продавца.

Сейчас идея проверяется в узкой нише: цифровые товары, USDC в Solana, оплата без выбора сети и без покупки SOL для газа. В кошельке есть баланс, отправка, получение, история операций и простой профиль.

Для продавца цель тоже узкая: принять USDC, увидеть платеж, получить вебхук и автоматически выдать товар. На стадии проверки рынка комиссия для продавцов — 0%. Я не хочу зарабатывать на первых мерчантах, пока не понимаю, есть ли здесь реальный рынок.

Что пока не работает: Stendly не принимает рубли, карты и СБП, не поддерживает BTC, ETH, TON, USDT TRC и десятки других токенов, не делает обмены внутри себя и не делает мосты между сетями.

Я сделал криптокошелёк с тремя кнопками. Самой сложной частью оказалась не крипта

Откуда вообще появилась эта боль

Один из моих личных примеров — оплата Porkbun. Задача была бытовая: купить домен. Но вместо обычного "ввел карту → оплатил" пришлось разбираться, какой кошелек безопаснее, какой токен купить, в какой сети выводить, почему Bitcoin вроде самый известный, но для маленькой оплаты не всегда удобен, и чем USDT TRC отличается от USDT ERC.

Самый неприятный момент был не в покупке, а в ощущении риска. Копируешь длинный адрес, сверяешь первые и последние символы, переводишь деньги обменнику и думаешь: сейчас либо все придет, либо я ошибся сетью, адресом или токеном.

Даже после пополнения кошелька проблемы не заканчиваются. В Trust Wallet я столкнулся с типичной историей: хотел обменять токен, нажал кнопку, увидел, что операция ушла, но ожидаемых новых денег не получил. Потом разобрался, что это мог быть не сам обмен, а разрешение программе в блокчейне использовать токен.

В этот момент стало понятно: проблема не только в интерфейсе. Крипта сама по себе состоит из действий, которые обычный платежный продукт обычно прячет.

Что я решил убрать

Я начал не с блокчейна, а с удаления лишних решений.

В первом экране оставил баланс, три кнопки и историю операций. Scan, Send, Receive. Снизу — Wallet и Me.

Я думал вынести Send и Scan вниз, как отдельные вкладки, но отказался. Нижняя панель должна отвечать за разделы, а не за действия. Действия лежат рядом с балансом, потому что пользователь сначала смотрит на деньги, потом решает, что делать.

С цветами была похожая история. Первая версия была тёмной, с фиолетовыми акцентами — выглядело привычно для криптопродукта, но именно это и мешало. Если я делаю кошелёк для маленьких повседневных платежей, он не должен выглядеть как инструмент для продвинутых.

Я сделал криптокошелёк с тремя кнопками. Самой сложной частью оказалась не крипта

Поэтому я убрал фиолетовый “крипто”-вайб, добавил светлую тему и оставил более нейтральный интерфейс. Идея простая: человек должен видеть не “Web3-приложение”, а баланс, сумму и понятное действие.

Но самое главное решение было не дизайнерским, а продуктовым: один токен и одна сеть. USDC в Solana.

Да, это резко сужает аудиторию. Зато убирает самый опасный экран: "выберите сеть".

Почему не Phantom, Solana Pay, Helio, Coinbase или Circle

Конкуренты есть. Делать вид, что их нет, глупо.

Phantom — сильный кошелек. Деньги у пользователя, много сетей и токенов, зрелый продукт. Но это кошелек для человека, который уже понимает крипту. Там нормально жить, если ты знаешь, что такое SOL, USDC, сеть, своп и комиссия.

Solana Pay — хороший стандарт для платежных ссылок, QR и запросов транзакций. Но это не готовый продукт для маленького продавца. Все равно нужно собрать кабинет, статусы, вебхуки, обработку ошибок, историю платежей и нормальный пользовательский путь.

Helio/MoonPay Commerce — уже готовый платежный продукт. У них есть ссылки, виджеты, подписки, плагины и много сетей. Это сильный конкурент, а не "плохое решение". Но у стандартного тарифа есть комиссия, и продукт шире, чем мне нужно для первой гипотезы.

Coinbase и Circle — инфраструктура другого уровня. Там кошельки, API, платежи, проверка пользователей, корпоративные сценарии. Это не то, с чем я пытаюсь спорить на старте.

Stendly сейчас — более узкая PWA/SDK-обвязка под маленькие цифровые продукты. VPN, домены, подписки, боты, доступы, SaaS-мелочь. Ставка не в том, чтобы победить всех платежных провайдеров. Ставка в том, что для части продавцов достаточно простого приема USDC с нулевой комиссией на старте, а для части покупателей — кошелька, где не нужно каждый раз думать про сеть и газ.

Stendly платит SOL в сеть, а пользователь компенсирует это USDC-комиссией.

Даже если выбрать USDC в Solana, остается странная деталь: чтобы отправить USDC, пользователю обычно нужен SOL для комиссии сети.

Для обычного человека это звучит абсурдно. У него есть доллары в виде USDC, он хочет отправить доллары, но для этого должен купить еще один токен.

В Stendly я убрал SOL из пользовательского сценария. Пользователь платит в USDC. Газ оплачивает сервис из своего SOL-резерва.

На экране это показывается простой строкой: плата сети — $0.02.

Фактическая комиссия Solana за обычную операцию меньше. Разница нужна как запас на приоритетную комиссию, колебания цены SOL и работу релейера. Это не спрятано в курсе, не вычитается у продавца и не появляется после оплаты. До подтверждения видно: сумма товара, плата сети, итог.

Я сделал криптокошелёк с тремя кнопками. Самой сложной частью оказалась не крипта

400 мс — не значит "платеж окончательно завершен"

У Solana часто встречается красивая цифра около 400 мс. Но для платежного продукта важно не перепутать скорость обработки и финальную уверенность.

Проще объяснить так: сначала сеть быстро видит транзакцию. Потом становится понятно, что она принята. Еще позже можно считать, что она окончательно закреплена в истории.

400 мс — это ближе к первому этапу, а не к полной уверенности. Для маленького цифрового товара можно принимать платеж быстрее. Для дорогой операции лучше ждать дольше.

Поэтому в Stendly нельзя просто показать зеленую галочку после первого сигнала и сразу выдать товар. Нужны статусы: обрабатывается, принят, завершен. Вебхук продавцу должен уходить в той точке, которая подходит под риск конкретного товара.

Я сделал криптокошелёк с тремя кнопками. Самой сложной частью оказалась не крипта

Еще одна обязательная вещь — защита от повторной обработки. Если одно и то же событие пришло дважды, подписка или ключ не должны выдаваться два раза.

Реальная транзакция важнее красивого экрана

Красивый баланс сам по себе ничего не доказывает. В криптопродукте важно показать, что деньги реально двигаются в сети.

Вот пример тестовой операции: перевод $0.10 USDC, комиссия сети меньше цента, статус виден в обозревателе блокчейна.

Я сделал криптокошелёк с тремя кнопками. Самой сложной частью оказалась не крипта
Я сделал криптокошелёк с тремя кнопками. Самой сложной частью оказалась не крипта

Внутри нет сложной магии. Сервер готовит транзакцию, пользователь подтверждает перевод своим ключом, Stendly оплачивает газ, Solana обрабатывает операцию, продавец получает вебхук.

Главная задача — не изобрести новый блокчейн. Главная задача — сделать так, чтобы покупатель не видел всю техническую кухню при оплате товара за $5.

Самая слабая часть — пополнение

Это место я не хочу прятать.

Stendly пока не решает главный входной барьер: что делать человеку, у которого вообще нет крипты.

Если встроить покупку с карты, сразу появляются проверки личности, ограничения стран, банковские риски, спорные операции и провайдеры, которые могут отказать пользователю. Если встроить обмены, появляются курс, комиссии, разрешения токенов и новые ошибки. Если добавить мосты между сетями, появляется отдельный риск: мосты в крипте уже много раз были одной из самых проблемных частей инфраструктуры.

Поэтому на старте пополнение максимально прямое: у пользователя есть адрес USDC в Solana, он переводит туда средства сам. Если USDC уже есть — просто отправляет. Если есть USDT или другая крипта — меняет во внешнем сервисе. Если крипты нет вообще — Stendly пока не делает этот путь простым.

Я сделал криптокошелёк с тремя кнопками. Самой сложной частью оказалась не крипта

Это ограничение неприятное, но честное. Иначе проект быстро превратится из простого кошелька в биржу, обменник и платежного посредника одновременно.

Почему я не добавляю все токены

Самый частый совет очевиден: добавить USDT TRC, ETH, BTC, TON и Base.

Проблема в том, что каждый новый токен — это не просто новая строка в списке. Это новые адреса, комиссии, ошибки, статусы, поддержка и объяснения пользователю. Для универсального кошелька это нормально. Для маленькой оплаты цифрового товара — лишний шум.

Я сделал криптокошелёк с тремя кнопками. Самой сложной частью оказалась не крипта

Я не утверждаю, что один токен и одна сеть — правильный ответ навсегда. Это правильное ограничение для MVP. Оно позволяет проверить главный вопрос: есть ли спрос на простой способ тратить USDC на цифровые товары.

Если спроса нет, добавление еще десяти сетей не спасет продукт. Если спрос есть, расширяться можно аккуратно и по данным, а не по желанию "поддерживать всё".

Что я проверяю на самом деле

Гипотеза узкая.

Есть люди, у которых уже есть крипта. Они хотят тратить ее на цифровые товары без ручного копирования адресов и выбора сети при каждой оплате.

Есть маленькие продавцы, которым не нужен полноценный платежный комбайн. Им нужен прием USDC, кабинет, API, вебхуки и отсутствие комиссии на старте.

Если эти две стороны совпадут, Stendly имеет смысл. Если нет — значит идея слишком узкая или плохо выбрана ниша.

Сейчас для меня важнее не добавить больше функций, а получить реальные операции: кто оплатил, что купил, сколько времени заняло, где человек застрял, почему продавец подключился или отказался.

Я сделал криптокошелёк с тремя кнопками. Самой сложной частью оказалась не крипта

Итог

Я начинал с желания сделать криптоплатеж проще. В процессе понял, что полностью простой крипты не существует.

Можно убрать выбор сети. Можно показывать баланс в долларах. Можно оплатить газ за пользователя. Можно сделать три кнопки вместо двадцати. Можно дать продавцу вебхук и не брать с него комиссию на старте.

Но нельзя отменить базовые свойства: ключ нужно хранить, перевод нельзя просто отозвать, сеть нужно выбрать заранее, а пополнение кошелька используя обычные денег почти всегда приводит к проверкам и посредникам.

Поэтому Stendly — не "крипта для всех" и не замена банкам. Это узкая попытка сделать один сценарий нормальным: потратить USDC в Solana на маленький цифровой товар без лишней нервотрепки.

Ссылки, если интересно потыкать:

- Главный сайт

- Web App

11
11