TGViewer
99developers 99developers @ctodevelopers · 1.76K subscribers
Post #319 1.03K
У меня 20 USDT на Tron, 20 USDC на Solana, еще 30 USDC мне прислали в Base и где-то лежали 15 USDT в Ethereum. А да, там еще $100 должны были на USD счет прислать.

Есть два пути, чтобы с этим жить. Первый – дать клиенту полное управление каждым токеном (пусть даже это только стейбл токены) и пусть сам решает что с этим делать, гоняет их туда-сюда. Второй – показать человеку баланс в $185 и сказать – не парься, мы позаботимся, если ты захочешь сделать транзакцию на $68.

Мы выбрали второй путь, потому что он понятнее людям и снижает барьер входа. Для того чтобы реализовать этот подход мы попробовали два разных пути.

Как мы стартанули?
Начали с того что мы делаем внутренние exchange транзакции, если они нужны. Например, если у тебя транзакция на 68 в USDT Tron, а там у тебя пока всего 20 USDT, мы добавим в трон 48 USDT из других твоих владений и сделаем транзакцию на 68 (про gas fee пока не говорю, работа с ним – тема для отдельного поста).

Такой подход не самый простой в реализации, потому что ограничения провайдера могут тебя подловить. Например, мы не можем сделать трансфер на сумму меньше $1, поэтому калькуляция consolidation plan для таких вещей заковыристая и может приводить к ошибкам.

Самый главный минус этой схемы в другом. Когда ты делаешь эти 3 внутренних перевода, чтобы получить 68 USDT на троне, начинаются пляски с балансом. Токены на обмен уже ушли, но еще не дошли, приходится химичить и вот тут уже ошибки будут сыпаться просто регулярно. Нужно точная и выверенная работа. Или приходит письмо о том что пользователь перевел 3 USDC (а это была та самая нужная нам консолидация). Естественно, будут жалобы в саппорт и непонимание откуда эта транзакция, я ее не делал, че за бред. И пользователи будут правы, ругая нас за такое.

Ключевой плюс этой схемы – цена. Каждый обмен токенов меж сетями стоит нам денег. Когда мы сами можем оптимизировать обмен или использовать prefunded wallets, цена обмена падает драматически.

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

Просто, быстро, эффективно. Но дороже.

Способы оптимизировать это по цене тоже есть. Например, мы можем динамически определять какой твой кошелек сделать главным. Если мы видим что ты транзактишь в Ethereum, главный кошелек твой будет там. Если мы знаем что в твоем регионе USDT и Tron сильно популярнее остального, мы сделаем его главный прям на старте. А дальше – та же схема с prefunded wallets как и в первом случае, хоть она будет несколько сложнее в реализации, но это мелочи.

PS. В качестве шутки (а может и не шутки) обсуждали идею сделать в сервисе advanced mode для гиков, где таки дать возможность полностью рулить сетями и дать в полное управление non-custodial wallet. Поглядим, мож сделаем )
  • 🔥 9
  • 👍 4
More from @ctodevelopers
  1. Sep 30, 2026Еще один стейблкоин. И почему новый OUSD может серьезно пошатнуть USDC и USDT? Стейблкоины…
  2. Sep 19, 2026Недавно поймал себя на том, что не помню нюансы работы одного из наших сервисов внутри Jaz…
  3. Sep 7, 2026Сегодня расскажу вам про одну очевидную и забавную дилемму, которая есть во всех приложени…
  4. Aug 28, 2026И даже свой канал в телеграм завели, как же без этого https://t.me/jazarione
  5. Aug 21, 2026Для начала оффтоп, друзья, я честно скажу, был приятно удивлен большим количеством вопросо…
  6. Aug 14, 2026Раз в неделю буду писать посты о том что за продукт мы делаем и почему. Фокус будет именно…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →