SolanaPay-KZ
Открытый набор инструментов, позволяющий интернет-магазину принимать оплату в стейблкоине USDC и в SOL на блокчейне Solana, показывая покупателю цену в тенге.
Деньги идут напрямую с кошелька покупателя на кошелёк продавца. Ни этот проект, ни его авторы не принимают, не хранят и не могут задержать ваши средства. Приватные ключи не запрашиваются, не создаются и не хранятся ни на одном шаге.
Что входит
| Часть | Для кого | Состояние |
|---|---|---|
| Плагин WooCommerce | магазин на WordPress | готов |
| Сервер для Tilda | магазин на Tilda | готов, интеграция на модерации |
| Библиотека для разработчиков | своя платформа | готова |
Как это работает
- Покупатель оформляет заказ. Магазин знает сумму в тенге.
- Сумма пересчитывается в токены по биржевому курсу и замораживается на 15 минут — чтобы цена не менялась, пока покупатель платит.
- Покупателю показывается QR-код. Он платит из своего кошелька.
- Магазин проверяет платёж прямо в блокчейне и подтверждает заказ.
Между вторым и третьим шагом никто не стоит: перевод идёт с кошелька на кошелёк. Наш код только считает сумму и убеждается, что деньги пришли.
Почему курс берётся именно так
Основной источник — биржевой курс пары USDT/KZT на Binance, умноженный на курс USDC к USDT. Это единственная прямая пара криптовалюты с тенге, которая существует.
Запасной источник — официальный курс доллара к тенге, умноженный на долларовую цену токена. Он даёт значение примерно на процент ниже биржевого, поэтому используется только когда биржа недоступна.
CoinGecko, который обычно советуют в таких случаях, тенге не поддерживает вовсе: на запрос он отвечает успехом и пустым результатом. Наивная реализация приняла бы пустоту за нулевой курс.
Округление всегда в пользу продавца
Сумма в токенах округляется вверх, до последнего знака, который существует у монеты. У USDC это шесть знаков, у SOL — девять. Покупатель платит не меньше, чем стоит заказ; разница не превышает одной миллионной доллара.
Что делать, если сумма не сошлась
Платёж, который найден, но не совпал по сумме, никогда не отменяется автоматически. Такой заказ помечается как требующий проверки, и решение принимает продавец, глядя на саму транзакцию. Причина простая: автоматика здесь ошибается дороже человека — деньги в блокчейне необратимы.
То же и с недоступностью сети: если узел Solana не отвечает, заказ не меняет состояние. Молчание сети не является ответом «денег нет».
Исходный код
github.com/Tatancloud/solanapaykz — лицензия MIT. Код можно читать, использовать и изменять, в том числе в коммерческих проектах.