SOLPDT 1.1 | APPENDIX A
PAYLOAD-V2 | TRANSACTION EXAMPLES
Приложение A: Спецификация контейнеров Payload-V2
Transaction Examples
Стандарт: SOLPDT 1.1 — Agentic Trust Layer Extension
A.1. Назначение
Настоящее приложение содержит эталонные примеры криптографических контейнеров Payload-V2 для различных сценариев использования в экосистеме SOLPDT 1.1. Все примеры оптимизированы под ограничения размера поля Memo в транзакциях Solana (лимит Instruction Data) и используют минималистичные имена ключей для экономии байтов.
Примеры охватывают три основных сценария:
- Базовый (Minimal Valid Payload) — пинг, сигнал присутствия, простые меж-агентные коммуникации
- С прямым платежом (On-chain Direct Settlement) — связка действия с финансовой транзакцией
- Расширенный для НМА (Full Audit Trail) — признание актива по ФСБУ 14/2022 и IAS 38
A.2. Базовый пример (Minimal Valid Payload)
Используется для простых сигналов между агентами, когда финансовый контекст не требуется. Пример: пинг, подтверждение доступности, сигнал «жив».
{
"v": "1.1",
"p": "SOLPDT",
"tid": "msg-8821",
"cid": "6f9a2b",
"sig_a": "5z8x...2n4m",
"act": "NOP"
} Описание полей
| Поле | Тип | Обязательность | Описание |
v | String | Да | Версия протокола. Фиксированное значение "1.1". |
p | String | Да | Идентификатор протокола. Фиксированное значение "SOLPDT". |
tid | String | Да | Transaction ID — внутренний номер сообщения агента для дедупликации и трассировки. |
cid | String | Да | Context ID — короткий хеш (первые 6 символов SHA-256) сессии взаимодействия между агентами. |
sig_a | String | Да | Authoritative Attestation — сокращённая подпись Лицензиара (первые 8-12 символов от полной Base58), подтверждающая валидность агента. |
act | String | Да | Action — код действия. "NOP" = No Operation (пинг/проверка связи). |
Коды действий (act)
| Код | Значение | Описание |
NOP | No Operation | Пинг, проверка доступности агента |
ACK | Acknowledge | Подтверждение получения предыдущего сообщения |
ERR | Error | Сигнал об ошибке (требуется дополнительный контекст) |
SYN | Synchronize | Запрос на синхронизацию состояния |
FIN | Finalize | Завершение сессии взаимодействия |
A.3. Пример с прямым платежом (On-chain Direct Settlement)
Используется для транзакций, где передача данных неразрывно связана с оплатой. Поле settlement_context связывает действие агента с конкретной транзакцией в блокчейне.
{
"v": "1.1",
"p": "SOLPDT",
"tid": "pay-4402",
"sig_a": "2b9v...k8s1",
"settlement_context": {
"m": "direct",
"amt": 1500.50,
"cur": "USDC",
"escrow": "EscrowProg1111",
"ref": "inv-2024-05"
}
} Описание полей
| Поле | Тип | Обязательность | Описание |
v | String | Да | Версия протокола ("1.1"). |
p | String | Да | Идентификатор протокола ("SOLPDT"). |
tid | String | Да | Уникальный идентификатор транзакции агента. |
sig_a | String | Да | Сокращённая подпись Лицензиара. |
settlement_context | Object | Да | Объект экономического подтверждения сделки. |
Поля объекта settlement_context
| Поле | Тип | Обязательность | Описание |
m | String | Да | Method — способ расчёта. "direct" = прямая транзакция на блокчейне. Также допустимо "sub" (subscription). |
amt | Number | Да | Amount — сумма сделки в единицах валюты cur. |
cur | String | Да | Currency — тикер актива. "USDC", "SOL", "USDT" и др. |
escrow | String | Нет | Программный адрес эскроу-контракта (Program ID), удерживающего средства до выполнения условий. |
ref | String | Нет | Reference — ссылка на внешний счёт, инвойс или юридический договор. |
A.4. Расширенный пример для НМА (Full Audit Trail)
Максимальный контейнер для признания актива по ФСБУ 14/2022 и IAS 38. Содержит полный набор данных для бухгалтерского учёта и аудита.
{
"v": "1.1",
"p": "SOLPDT",
"tid": "nma-9901",
"sig_a": "9r3t...w0q2",
"agent_context": {
"role": "originator",
"status": "verified"
},
"compliance_gate": {
"aml_score": 12,
"cgw_id": "GateAlpha-01",
"jurisdiction": "RU"
},
"execution_proof": "zk-proof-hash-882291",
"accounting": {
"inv_num": "SOL-2024-001",
"useful_life": 24,
"cost_basis": "pyth-oracle-fix-1715"
}
} Описание полей
| Поле | Тип | Обязательность | Описание |
v | String | Да | Версия протокола ("1.1"). |
p | String | Да | Идентификатор протокола ("SOLPDT"). |
tid | String | Да | Уникальный идентификатор транзакции агента. |
sig_a | String | Да | Сокращённая подпись Лицензиара. |
agent_context | Object | Да | Контекст агента — роль и статус верификации. |
compliance_gate | Object | Да | Данные из шлюза верификации (CGW). |
execution_proof | String | Да | Хеш ZK-доказательства, подтверждающего выполнение работы. |
accounting | Object | Да | Блок для бухгалтерского учёта НМА. |
Поля объекта agent_context
| Поле | Тип | Обязательность | Описание |
role | String | Да | Роль агента: "originator" (инициатор), "executor" (исполнитель), "validator" (валидатор). |
status | String | Да | Статус верификации: "verified", "pending", "suspended". |
Поля объекта compliance_gate
| Поле | Тип | Обязательность | Описание |
aml_score | Integer | Да | AML Score — рейтинг риска (0-100). Значение < 30 считается низким риском. |
cgw_id | String | Да | Идентификатор Compliance-Gateway, проводившего проверку. |
jurisdiction | String | Да | Код юрисдикции по ISO 3166-1 alpha-2 (RU, US, AE). |
Поля объекта accounting
| Поле | Тип | Обязательность | Описание |
inv_num | String | Да | Инвентарный номер — уникальный идентификатор актива в учётной системе. |
useful_life | Integer | Да | Срок полезного использования в месяцах. Согласно ФСБУ 14/2022 должен быть ≥ 13. |
cost_basis | String | Да | Основание стоимости — ссылка на фиксацию цены оракулом (например, pyth-oracle-fix-1715). |
A.5. Интеграция в транзакцию Solana (Memo Program)
В сети Solana контейнер Payload-V2 упаковывается в инструкцию программы Memo (MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr). Это делает его частью истории блокчейна, доступной для индексации и аудита.
Полный пример транзакции (Simulation View)
Transaction Summary:
Signature: 4Hz5k9P...zX2v1B9mN8q7Lp5k4j3h2g1fS8d7s6a5P4o3i2u1Y (Base58)
Slot: 265890122
Blockhash: 8C5h2G...p9A1s2D3f4G5h6J7k8L9
Status: Success
Timestamp: May 16, 2024, 14:30:00 UTC
Fee: 5000 lamports (0.000005 SOL)
Instructions:
1. Program: System Program (Transfer)
From: Agent_Wallet_A (A1b2C3d4E5f6G7h8I9j0K1l2M3n4O5p6Q7r8S9t0U1v)
To: Settlement_Escrow (E9r2t8y7u6i5o4p3a2s1d0f9g8h7j6k5l4z3x2c1v0b)
Amount: 0.5 SOL
2. Program: Memo Program (MemoSq4gqAB...)
Data (Payload-V2):
{
"v": "1.1",
"p": "SOLPDT",
"tid": "tx-settle-001",
"sig_a": "sig_hex_8899aabbcc",
"settlement_context": {
"m": "direct",
"amt": 0.5,
"cur": "SOL"
}
}
Logs:
Program System Program invoke [1]
Program System Program success
Program MemoSq4gqAB... invoke [1]
Memo: SOLPDT v1.1 | tid=tx-settle-001 | settlement=direct
Program MemoSq4gqAB... success Структура инструкции Memo
{
"programId": "MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr",
"accounts": [],
"data": "{\"v\":\"1.1\",\"p\":\"SOLPDT\",\"tid\":\"tx-settle-001\",\"sig_a\":\"sig_hex_8899aabbcc\",\"settlement_context\":{\"m\":\"direct\",\"amt\":0.5,\"cur\":\"SOL\"}}"
} Требования к упаковке
| Параметр | Значение |
| Программа | MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr (Memo Program V2) |
| Формат данных | Минимизированный JSON (без пробелов и переносов строк) |
| Максимальный размер | 566 байт (ограничение поля Memo в Solana) |
| Кодировка | UTF-8 |
A.6. Сравнение размеров контейнеров
| Тип контейнера | Примерный размер (байт) | Использование settlement_context |
| Базовый (Minimal) | ~120 байт | Отсутствует |
| С прямым платежом | ~250 байт | Присутствует (обязательно) |
| Расширенный для НМА | ~450 байт | Может отсутствовать или присутствовать |
Примечание: Все примеры укладываются в лимит 566 байт, установленный для поля Memo в Solana.
A.7. Валидация Payload-V2
При получении транзакции с Payload-V2 Compliance-Gateway выполняет следующие проверки:
| № | Проверка | Критерий |
| 1 | Версия протокола | v должно быть "1.1" |
| 2 | Идентификатор протокола | p должно быть "SOLPDT" |
| 3 | Наличие tid | Уникальный идентификатор обязателен |
| 4 | Валидность sig_a | Подпись должна верифицироваться публичным ключом Лицензиара |
| 5 | Соответствие схеме | JSON должен соответствовать одной из определённых структур |
| 6 | Размер | Не более 566 байт |
A.8. Коды ошибок валидации Payload
| Код ошибки | HTTP статус | Описание |
PDT_ERR_INVALID_VERSION | 400 | Неверная версия протокола (ожидается "1.1") |
PDT_ERR_INVALID_PROTOCOL | 400 | Неверный идентификатор протокола (ожидается "SOLPDT") |
PDT_ERR_MISSING_TID | 400 | Отсутствует поле tid |
PDT_ERR_INVALID_SIG_A | 403 | Подпись sig_a невалидна |
PDT_ERR_PAYLOAD_TOO_LARGE | 413 | Размер Payload превышает 566 байт |
PDT_ERR_INVALID_JSON | 400 | Некорректный формат JSON |
КОРНЕВОЙ УЗЕЛ (СОЗДАТЕЛЬ СТАНДАРТА): Юрий Соколов (SOL Trust Network)
КОНТАКТЫ: standards@solpdt.com