Skip to main content
The signature is created through a cryptographic process using Ed25519 elliptic curve signatures:

Step 1: Intent Message Construction

The judgment data is wrapped in an IntentMessage structure that includes:
  • Intent Scope: Identifies the operation type (e.g., AttackEvaluation)
  • Timestamp: Millisecond-precision timestamp of the judgment
  • Data Payload: The complete judgment result (verdict, scores, responses, etc.)

Step 2: Binary Canonical Serialization (BCS)

The intent message is serialized using BCS (Binary Canonical Serialization), the standard used across the Sui ecosystem. BCS ensures:
  • Deterministic encoding (same data always produces identical bytes)
  • Compact representation (efficient on-chain storage)
  • Cross-platform compatibility (works identically in Rust, TypeScript, Python)

Step 3: Ed25519 Signing

The serialized bytes are signed using an Ed25519 keypair held by the judgment service: The private key signs the complete serialized payload (not a hash) Ed25519 provides 128-bit security with small signature size (64 bytes) The signature is cryptographically bound to both the data and the signing key

Step 4: Hex Encoding

The resulting signature is encoded as a hexadecimal string for JSON transport and on-chain submission.