Визначення
Memo — це стандартна програма Solana (SPL Memo Program), яка дозволяє додати до транзакції довільний текстовий запис без впливу на її виконання. Memo не змінює логіку операцій, не переміщує кошти й не взаємодіє з іншими програмами — це суто інформаційний шар, призначений для ідентифікації та контексту.
У контексті безпеки Memo відіграє роль додаткового засобу перевірки призначення платежу: запис дозволяє зв'язати транзакцію з конкретним акаунтом, замовленням або коментарем поза межами блокчейну.
Як працює
SPL Memo Program має фіксовану адресу на Solana. Щоб прикріпити запис до транзакції, достатньо додати одну інструкцію, яка викликає цю програму та передає їй байти тексту. Механіка проста:
- Транзакція містить стандартні інструкції (переказ SOL, виклик смарт-контракту тощо) і, окремо, інструкцію Memo.
- Програма Memo читає передані дані, записує їх у транзакційний лог і завершує роботу — без зміни стану будь-якого акаунта.
- Максимальний розмір запису обмежений форматом транзакції Solana (зазвичай до 566 байтів для всієї транзакції, тож Memo має бути лаконічним).
- Будь-хто може прочитати Memo через блокчейн-експлорер або RPC-запит — дані не шифруються.
Типові сценарії використання: депозитні мемо на централізованих біржах, позначки для бухгалтерського обліку, тегування внутрішніх переказів між підрахунками компанії, коментарі до NFT-транзакцій.
Приклад
Користувач поповнює акаунт на біржі. Біржа генерує унікальний рядок, наприклад «DEP-847291-A», і instructs користувача вказати його в полі Memo під час переказу SOL. У результаті транзакція містить дві інструкції:
- System Program — переказ 0.5 SOL з гаманця користувача на адресу біржі.
- Memo Program — запис «DEP-847291-A».
Біржа сканує вхідні транзакції, знаходить переказ із відповідним Memo і автоматично зараховує кошти на правильний внутрішній рахунок. Без Memo ідентифікувати призначення платежу було б значно складніше.
Типова помилка
Найпоширеніша помилка — покладатися на Memo як на єдиний засіб ідентифікації одержувача без додаткової перевірки адреси. Якщо користувач вказав правильний Memo, але відправив SOL на чужу адресу, кошти надійдуть не на біржу, а сторонньому лицю, і Memo не допоможе їх повернути. Memo доповнює адресу, а не замінює її.
Інша помилка — розміщувати в Memo конфіденційні дані (паролі, ключі, особисту інформацію). Оскільки всі записи у блокчейні Solana є публічними й незмінними, така інформація стає доступною будь-кому назавжди.
Пов'язані матеріали
Внутрішні переходи
- Keypair — про пару ключів, яка підписує транзакцію з Memo
- Revocation — про відкликання доступів у контексті безпеки акаунтів
Додаткові ресурси
- Офіційна документація SPL Memo Program на репозиторії Solana Labs — для розробників, які інтегрують Memo у свої додатки
- Розділ «Словник термінів Solana» — для пошуку суміжних понять