
Что такое смарт-кошельки Solana? Сравнение и руководство по внедрению
Содержание
- Что такое смарт-кошелек?
- Какие преимущества дают смарт-кошельки?
- Встроенные смарт-кошельки, встроенные кошельки и неисполняемые аккаунты
- Типичные сценарии использования смарт-кошельков
- Как именно смарт-кошельки работают в Solana?
- Архитектура на основе программ
- Авторизация транзакций
- Делегирование аккаунта
- Работа с версионированными транзакциями
- Что такое абстракция аккаунта?
- Как в Solana работают транзакции без комиссии для пользователя?
- Как добавить смарт-кошельки Solana в приложение с помощью Crossmint
- Предварительные требования
- Создайте свой первый смарт-кошелек
- Взаимодействуйте с кошельком
- Заключение
- Дополнительные ресурсы
Разработчикам Solana теперь доступны встроенные смарт-кошельки, также известные как кошельки с абстракцией аккаунта. Это позволяет приложениям упростить онбординг и взаимодействие с пользователем.
В то же время разработчики получают больше гибкости, безопасности и возможностей для соблюдения нормативных требований. В итоге ончейн-взаимодействие становится безопаснее и удобнее.
В отличие от неисполняемых аккаунтов (аккаунтов данных) и традиционных встроенных кошельков, смарт-кошельки программируемы. Это открывает возможности для функций нового поколения: спонсирования комиссии, использования нескольких подписантов для одного кошелька, установки лимитов расходов и многого другого.
В этой статье вы узнаете о ключевых различиях между встроенными смарт-кошельками в Solana и другими решениями для кошельков.
Вы также узнаете, как смарт-кошельки работают в Solana и как внедрить встроенные смарт-кошельки в свое приложение.
Что такое смарт-кошелек?
Смарт-кошельки — это исполняемые программные аккаунты, содержащие исполняемый код. В отличие от традиционных кошельков, которые представляют собой простые пары ключей под управлением одного закрытого ключа, смарт-кошельки в Solana реализованы в виде программ со специальной логикой и функциями.
Какие преимущества дают смарт-кошельки?
Смарт-кошельки устраняют необходимость в сид-фразах и связанный с их потерей риск. Вместо этого пользователи могут назначить один или несколько «подписантов» или ключей для управления кошельком.
Такая гибкость позволяет применять более удобные способы управления ключами, например биометрию (Face ID, Touch ID или ключи доступа), а также продвинутые схемы безопасности (например, мультиподпись) и средства управления корпоративного уровня (например, серверный ключ администратора).
Смарт-кошельки позволяют проводить транзакции без комиссии для пользователя: разработчики могут оплачивать комиссии в SOL или других SPL-токенах, например USDC, и полностью скрывать их от конечного пользователя. В результате взаимодействие становится привычным и похожим на web2.
Это позволяет создавать приложения без запросов на подтверждение транзакций, без сид-фраз или закрытых ключей, которые можно потерять, и с программируемой безопасностью, обеспечиваемой программами (смарт-контрактами).
Встроенные смарт-кошельки, встроенные кошельки и неисполняемые аккаунты
| Встроенные смарт-кошельки | Встроенные кошельки | Неисполняемые аккаунты | |
| Реализация | Смарт-контракт с настраиваемой логикой | Аккаунт без смарт-контракта, встроенный в приложение | Отдельное приложение или расширение браузера |
| Управление аккаунтом | Гибкое: пользователи могут назначить одного или нескольких подписантов — от EOA, таких как Phantom, до ключей доступа и кошельков с входом через социальные сети — и при необходимости задать программные правила | Пара ключей, защищенная входом через социальную сеть (обычно в TEE или MPC-кластере) | Напрямую управляется парой ключей пользователя |
| Модель хранения | Гибкая. Можно настроить самостоятельное хранение пользователем, кастодиальное хранение разработчиком или гибридную модель, объединяющую оба режима | Обычно некастодиальная, но некоторые способы восстановления могут сделать ее кастодиальной | Самостоятельное хранение конечным пользователем |
| Управление ключами | Несколько методов авторизации (MPC, социальное восстановление и т. д.) | Обычно осуществляется приложением | Пользователь самостоятельно управляет сид-фразой или закрытым ключом |
| Авторизация транзакций | Настраиваемая логика проверки (мультиподпись, временные блокировки, лимиты) | Приложение подписывает транзакции встроенным закрытым ключом | Пользователь явно подтверждает каждую транзакцию |
| Оплата комиссии | Поддерживает абстракцию и спонсирование комиссии, позволяя оплачивать ее другими SPL-токенами, например USDC или USDT | Пользователь оплачивает все комиссии за транзакции. В каждом приложении требуется сервис покупки криптовалюты | Пользователь оплачивает все комиссии за транзакции |
| Модель безопасности | Безопасность обеспечивается открытым кодом смарт-контракта с дополнительными программируемыми ограничениями | Безопасность зависит от закрытого исходного кода поставщика встроенного кошелька | Безопасность зависит от закрытого клиентского кода |
| Варианты восстановления | Программируемое восстановление (социальное, с помощью ключей доверенных лиц) | Способы восстановления, предоставляемые приложением | Только восстановление по сид-фразе |
| Контроль расходов | Программируемые лимиты расходов и процессы утверждения | Некоторые встроенные кошельки поддерживают серверные политики транзакций (будьте осторожны: при неправильной реализации может возникнуть кастодиальная архитектура) | Отсутствует |
| Нормативные требования | Гибкие: модель хранения можно программировать, адаптируя кошельки к меняющимся нормативным требованиям | Проконсультируйтесь с конкретным поставщиком кошелька | Менее строгий контроль: кошельком управляет пользователь |
| Корпоративные функции | Ролевое управление доступом, процессы утверждения | Некоторые встроенные кошельки имеют ограниченные серверные средства управления | Отсутствуют |
| Зависимость от поставщика | Низкая. Смарт-кошельки основаны на программах с открытым исходным кодом. Пользователей можно перенести от одного поставщика инфраструктуры к другому без изменения их адресов. | Высокая. Чтобы отказаться от встроенного кошелька, каждый пользователь должен восстановить закрытый ключ. Это может быть небезопасно и потребовать от пользователей выполнения действий вручную | Низкая. Зависит от пользователя |
Типичные сценарии использования смарт-кошельков
Смарт-кошельки Solana полезны, когда требуется гибкая кастодиальная архитектура, например:
- Корпоративные казначейские кошельки под управлением нескольких сотрудников
- Кошельки AI-агентов в сценариях агентных финансов, где один ключ нужен владельцу агента, а другой — самому агенту
- Необанки и финансовые приложения, в которых пользователь самостоятельно хранит средства, но разрешает банку списывать их, например для регулярных платежей
Важная особенность делегированных подписантов — возможность ограничить их права на управление кошельком, например установив лимиты расходов или ограничения по классам активов.
Как именно смарт-кошельки работают в Solana?
Смарт-кошельки в Solana используют сочетание ончейн-программ и офчейн-инфраструктуры и обладают рядом уникальных особенностей Solana:
Архитектура на основе программ
В отличие от неисполняемых аккаунтов (аккаунтов данных), смарт-кошельки Solana, или исполняемые программные аккаунты, обычно реализованы в виде ончейн-программ, которые управляют одним или несколькими аккаунтами (PDA).
Авторизация транзакций
Вместо одного закрытого ключа смарт-кошельки используют настраиваемую логику авторизации:
- Можно потребовать несколько подписантов (функция мультиподписи)
- Можно поддерживать разные методы авторизации (ключи, биометрию, социальные сети)
- Временные блокировки и лимиты расходов можно применять программно
Делегирование аккаунта
Пользователи могут делегировать отдельные разрешения разным адресам, чтобы точнее контролировать доступные каждому ключу или устройству действия.
Работа с версионированными транзакциями
Смарт-кошельки используют стандартный формат версионированных транзакций Solana.
Что такое абстракция аккаунта?
Абстракция аккаунта (AA) позволяет разработчикам создавать настраиваемые аккаунты смарт-контрактов, которые выходят за рамки неисполняемых аккаунтов, привязанных к одной паре ключей. Это делает взаимодействие с пользователем более гибким.
AA позволяет использовать настраиваемую логику проверки. Благодаря этому аккаунты могут реализовать такие функции безопасности, как социальное восстановление, требования мультиподписи и лимиты расходов, не полагаясь на стандартные правила блокчейна.
Основная цель AA — сделать блокчейн-технологию незаметной для пользователей, устранив технические барьеры, такие как комиссии за транзакции и сид-фразы, но сохранив преимущества самостоятельного хранения.
Как в Solana работают транзакции без комиссии для пользователя?
Ключевое преимущество смарт-кошельков для транзакций без комиссии для пользователя заключается в том, что абстракция происходит на уровне аккаунта и не требует отдельной реализации для каждого dApp. Это делает взаимодействие настолько удобным, что пользователи могут даже не знать о существовании комиссий за транзакции.
Это позволяет разработчикам реализовать:
Встроенную абстракцию комиссии
Смарт-кошельки могут встраивать спонсирование комиссии непосредственно в свою архитектуру. Контракт кошелька может сам определять, кто и при каких обстоятельствах оплачивает комиссию.
Гибкий выбор валюты комиссии
Если вы не хотите оплачивать комиссии пользователя за транзакции, он может платить в SOL или таких токенах, как USDC и USDT.
Механизмы подтверждения
Смарт-кошельки могут использовать настраиваемую логику проверки, чтобы определять, когда разрешены спонсируемые транзакции. Например, можно ограничивать их частоту или разрешать их только для определенных приложений.
Как добавить смарт-кошельки Solana в приложение с помощью Crossmint
Интегрировать смарт-кошельки в приложение можно разными способами: на стороне клиента, на стороне сервера или с помощью архитектуры с двумя ключами для AI-агентов.
В приведенном ниже руководстве вы узнаете, как развернуть свой первый смарт-кошелек на стороне сервера.
Предварительные требования
Сначала создайте аккаунт разработчика в тестовой консоли Crossmint.
Затем откройте Настройки > Общие в проекте и измените тип кошелька на «Смарт-кошельки».
Чтобы получить API-ключ, перейдите в раздел Интеграция > API-ключи и выберите «Создать новый ключ» в разделе «Серверные ключи».
В категории Wallets API выберите следующие области доступа:
wallets.createwallets.readwallets:signatures.createwallets:transactions.createwallets:transactions.readwallets:transactions.sign
Нажмите «Создать серверный ключ», чтобы сохранить ключ для следующего шага.
Создайте свой первый смарт-кошелек
Создайте файл (например, createWallet.ts) и добавьте в него этот код:
const apiKey = "YOUR_API_KEY";
const walletType = "solana-smart-wallet";
const adminSigner = {
// In production, you may want to use an MPC solution, like
// crossmint-managed MPC keys
type: "solana-keypair",
};
async function createWallet() {
const response = await fetch("https://staging.crossmint.com/api/2022-06-09/wallets", {
method: "POST",
headers: {
"X-API-KEY": apiKey,
"Content-Type": "application/json",
},
body: JSON.stringify({
type: walletType,
config: {
adminSigner,
},
}),
});
return await response.json();
}
createWallet()
.then((json) => console.log(json))
.catch((err) => console.error(`error: ${err}`));Перед запуском укажите в YOUR_API_KEY ключ, полученный на предыдущем шаге.
Теперь запустите скрипт:
npx tsx createWallet.tsAPI вернет ответ с данными вашего нового кошелька.
Сохраните адрес кошелька: он понадобится на следующем шаге.
Взаимодействуйте с кошельком
Теперь, когда кошельки настроены на вашем сервере, можно начать с ними взаимодействовать.
Откройте Crossmint Testnet USDXM Faucet и вставьте адрес кошелька из предыдущего шага, чтобы получить тестовые USDXM в Solana.
Теперь, когда у вас есть токены, проверим баланс кошелька (checkBalance.ts):
const apiKey = "YOUR_API_KEY";
const walletAddress = "YOUR_WALLET_ADDRESS"; // From previous step
const tokens = ["sol", "usdc", "usdxm"]; // Tokens to fetch balances for
const chains = ["solana"]; // Chains to query balances from
async function getWalletBalance() {
const url = new URL(`https://staging.crossmint.com/api/v1-alpha2/wallets/${walletAddress}/balances`);
url.search = new URLSearchParams({
tokens: tokens.join(','),
chains: chains.join(',')
}).toString();
const response = await fetch(url, {
method: "GET",
headers: {
"X-API-KEY": apiKey,
"Content-Type": "application/json",
},
});
return await response.json();
}
getWalletBalance()
.then((json) => console.log(json))
.catch((err) => console.error(`error: ${err}`));
Поздравляем! Теперь на вашем сервере развернуты смарт-кошельки.
Теперь вы можете изучить документацию, чтобы узнать, как провести первую транзакцию, добавить делегированных подписантов и многое другое.
Заключение
Смарт-кошельки откроют новое поколение приложений на базе Solana с более удобным онбордингом и взаимодействием, повышенной безопасностью и улучшенным соблюдением нормативных требований.
Crossmint с энтузиазмом поддерживает множество сценариев — от интеллектуальной собственности и программ лояльности до AI-агентов. Наши простые API и no-code-инструменты для кошельков, платежей и токенизации надежно масштабируются до миллионов пользователей. А после запуска встроенных смарт-кошельков Solana они также поддерживают финтех-компании и приложения с AI-агентами.
Если вы хотите узнать больше о внедрении смарт-кошельков Solana в свой проект, свяжитесь с нами. Мы будем рады помочь.
Дополнительные ресурсы
- Документация по кошелькам — Crossmint
- Документация по платежам — Crossmint
- Документация по токенизации — Crossmint
Похожие статьи
Подпишитесь на Helius
Следите за новостями разработки на Solana и получайте уведомления о наших публикациях


