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"
}

Описание полей

ПолеТипОбязательностьОписание
vStringДаВерсия протокола. Фиксированное значение "1.1".
pStringДаИдентификатор протокола. Фиксированное значение "SOLPDT".
tidStringДаTransaction ID — внутренний номер сообщения агента для дедупликации и трассировки.
cidStringДаContext ID — короткий хеш (первые 6 символов SHA-256) сессии взаимодействия между агентами.
sig_aStringДаAuthoritative Attestation — сокращённая подпись Лицензиара (первые 8-12 символов от полной Base58), подтверждающая валидность агента.
actStringДаAction — код действия. "NOP" = No Operation (пинг/проверка связи).

Коды действий (act)

КодЗначениеОписание
NOPNo OperationПинг, проверка доступности агента
ACKAcknowledgeПодтверждение получения предыдущего сообщения
ERRErrorСигнал об ошибке (требуется дополнительный контекст)
SYNSynchronizeЗапрос на синхронизацию состояния
FINFinalizeЗавершение сессии взаимодействия

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"
  }
}

Описание полей

ПолеТипОбязательностьОписание
vStringДаВерсия протокола ("1.1").
pStringДаИдентификатор протокола ("SOLPDT").
tidStringДаУникальный идентификатор транзакции агента.
sig_aStringДаСокращённая подпись Лицензиара.
settlement_contextObjectДаОбъект экономического подтверждения сделки.

Поля объекта settlement_context

ПолеТипОбязательностьОписание
mStringДаMethod — способ расчёта. "direct" = прямая транзакция на блокчейне. Также допустимо "sub" (subscription).
amtNumberДаAmount — сумма сделки в единицах валюты cur.
curStringДаCurrency — тикер актива. "USDC", "SOL", "USDT" и др.
escrowStringНетПрограммный адрес эскроу-контракта (Program ID), удерживающего средства до выполнения условий.
refStringНет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"
  }
}

Описание полей

ПолеТипОбязательностьОписание
vStringДаВерсия протокола ("1.1").
pStringДаИдентификатор протокола ("SOLPDT").
tidStringДаУникальный идентификатор транзакции агента.
sig_aStringДаСокращённая подпись Лицензиара.
agent_contextObjectДаКонтекст агента — роль и статус верификации.
compliance_gateObjectДаДанные из шлюза верификации (CGW).
execution_proofStringДаХеш ZK-доказательства, подтверждающего выполнение работы.
accountingObjectДаБлок для бухгалтерского учёта НМА.

Поля объекта agent_context

ПолеТипОбязательностьОписание
roleStringДаРоль агента: "originator" (инициатор), "executor" (исполнитель), "validator" (валидатор).
statusStringДаСтатус верификации: "verified", "pending", "suspended".

Поля объекта compliance_gate

ПолеТипОбязательностьОписание
aml_scoreIntegerДаAML Score — рейтинг риска (0-100). Значение < 30 считается низким риском.
cgw_idStringДаИдентификатор Compliance-Gateway, проводившего проверку.
jurisdictionStringДаКод юрисдикции по ISO 3166-1 alpha-2 (RU, US, AE).

Поля объекта accounting

ПолеТипОбязательностьОписание
inv_numStringДаИнвентарный номер — уникальный идентификатор актива в учётной системе.
useful_lifeIntegerДаСрок полезного использования в месяцах. Согласно ФСБУ 14/2022 должен быть ≥ 13.
cost_basisStringДаОснование стоимости — ссылка на фиксацию цены оракулом (например, 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_VERSION400Неверная версия протокола (ожидается "1.1")
PDT_ERR_INVALID_PROTOCOL400Неверный идентификатор протокола (ожидается "SOLPDT")
PDT_ERR_MISSING_TID400Отсутствует поле tid
PDT_ERR_INVALID_SIG_A403Подпись sig_a невалидна
PDT_ERR_PAYLOAD_TOO_LARGE413Размер Payload превышает 566 байт
PDT_ERR_INVALID_JSON400Некорректный формат JSON

КОРНЕВОЙ УЗЕЛ (СОЗДАТЕЛЬ СТАНДАРТА): Юрий Соколов (SOL Trust Network)
КОНТАКТЫ: standards@solpdt.com