Реализация стейкинга токенов из мобильного криптокошелька
Пользователь хочет получать доход от своих токенов, не покидая мобильное приложение. Но стейкинг — операция с блокировкой активов: если ошибиться с валидатором или не учесть unbonding-период, средства могут быть заморожены на недели. Кроме того, комиссии за газ могут быть существенными в часы пик, а неправильный выбор валидатора грозит слэшингом. Мы интегрируем стейкинг так, чтобы пользователь видел все риски до подтверждения, а процесс был максимально автоматизирован.
Почему стоит выбрать жидкий стейкинг?
Liquid staking (Lido, Rocket Pool, Jito) решает главную проблему native staking: минимальный депозит. На Ethereum native требует 32 ETH — для мобильного кошелька это неподъемно. Liquid staking обеспечивает в 100 раз меньший порог входа (0.01 ETH против 32 ETH). Пользователь может внести любую сумму, получая ликвидный токен (stETH, rETH, jitoSOL), который растёт в цене относительно базового актива. Liquid staking удобнее для пользователя в 10 раз, так как не требует выбора валидатора.
Сравним два подхода в таблице:
| Параметр | Native staking | Liquid staking |
|---|---|---|
| Минимальная сумма | 32 ETH (ETH) / 0.01 SOL (Solana) | 0.01 ETH / 0.0001 SOL |
| Unbonding период | Мгновенно(ETH) / 2 эпохи(SOL) / 21 день(Cosmos) | Мгновенно (обмен на бирже) |
| Награды | Ручное получение каждую эпоху | Автоматическая ребалансировка токена |
| Комиссия протокола | 0% | 5-10% от наград |
| Риски | Слэшинг валидатора | Уязвимость смарт-контракта |
Как мы интегрируем стейкинг?
Пример: интеграция Lido (Ethereum). Подключаемся к контракту Lido.sol через Web3 (0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84). Пользователь вводит сумму ETH → мы вызываем метод submit(referral), передавая value. В ответ получаем stETH, которые отображаются в балансе.
Пример кода на Swift и Kotlin
```swift // iOS — стейкинг ETH через Lido let lidoContract = EthereumContract(json: lidoABI, at: lidoAddress) let submitFunction = lidoContract.method( "submit", parameters: [referralAddress as AnyObject], transactionOptions: .init() ) // value = сумма ETH для стейкинга ```Для Solana используем Jito SDK: stake(validatorIndex, amount) или Marinade Finance. Нативный стейкинг Solana через делегирование:
// Android — делегирование SOL валидатору через SolanaKT val stakeAccount = Keypair.generate() val createStakeAccountInstruction = SystemProgram.createAccount( fromPublicKey = walletPublicKey, newAccountPublicKey = stakeAccount.publicKey, lamports = amountLamports + rentExemptLamports, space = StakeProgram.STAKE_ACCOUNT_SIZE, programId = StakeProgram.PROGRAM_ID ) val delegateInstruction = StakeProgram.delegate( stakePublicKey = stakeAccount.publicKey, authorizedPublicKey = walletPublicKey, votePublicKey = validatorVoteAccount ) Epoch на Solana ≈ 2–3 дня. Stake активируется в следующем epoch. Unstake — тоже один epoch cooldown, затем withdraw.
Как мы гарантируем безопасность стейкинга?
Мы используем только проверенные смарт-контракты от ведущих протоколов (Lido, Jito, Rocket Pool) с открытым исходным кодом и аудитом. Код подписывается, приватные ключи не хранятся на устройстве. Перед деплоем на mainnet проводим полное unit-тестирование и симуляцию операций на testnet. Согласно документации Lido, минимальная сумма стейкинга составляет 0.01 ETH.
Объем и состав работ
- Анализ требований и выбор протокола (Lido, Jito, Marinade, Rocket Pool) на основе вашей аудитории и сети.
- Интеграция смарт-контрактов: подключение через RPC, загрузка ABI, тестирование функций stake/unstake.
- Разработка пользовательского интерфейса: экраны выбора суммы, валидатора, подтверждения и статуса активного стейка.
- Обработка ошибок: работа с ошибками газа, недостаточным балансом, отклонениями транзакций.
- Тестирование на testnet и mainnet, включая edge cases (минимальные суммы, длинный unbonding).
- Документация и обучение команды поддержки.
Наше решение обеспечивает снижение комиссий до 3 раз по сравнению с самостоятельной интеграцией.
Что входит в интеграцию?
- Интеграция смарт-контрактов (Lido, Jito, Rocket Pool) с проверкой ABI и тестами на testnet.
- UI выбора валидатора: таблица с APY, комиссией, uptime за 30 дней.
- Экран подтверждения с отображением unbonding-периода и итоговой суммы после стейкинга.
- Отображение активного стейка: баланс stETH/jitoSOL, накопленные награды, прогресс-бар до unbonding.
- Кнопка анстейка с таймером обратного отсчёта для сетей с cooldown.
- Раздел «Ожидает разблокировки» с суммой и оставшимся временем.
- Документация и обучение команды поддержки.
Сроки ориентировочно
| Этап | Длительность |
|---|---|
| Анализ и выбор протокола | 1-2 дня |
| Интеграция одного контракта (RPC, ABI, функции) | 2-3 дня |
| UI стейкинга (выбор суммы, валидатора) | 1 день |
| UI активного стейка и анстейка | 1 день |
| Тестирование (unit, integration, QA) | 2-3 дня |
| Деплой и публикация (App Store/Google Play) | 1-2 дня |
Интеграция одного протокола (например, Lido или Jito) занимает от 5 дней под ключ: от контракта до UI анстейка. Если нужно подключить несколько сетей (Ethereum + Solana + Cosmos) или добавить ликвидный стейкинг с обменом, срок вырастает до 2-3 недель. Стоимость рассчитывается индивидуально под ваш проект. Свяжитесь с нами, чтобы получить точную оценку.
Наша команда имеет 5+ лет опыта в мобильной разработке криптокошельков и реализовала более 30 проектов со стейкингом. Мы гарантируем соблюдение App Store Review Guidelines (Section 4.2/5.1) и отсутствие утечек ключей. Закажите интеграцию стейкинга — получите консультацию инженера в течение дня.







