Skip to main content

Protocol objects

Luvion uses versioned objects and domain-separated canonical encoding. Canonical binary encoding is the signed representation, while JSON provides transport and inspection. Unknown or unsupported schema versions fail closed.

Policy

A pilot policy fixes the tenant, policy identifier and version, and one or more operation rules. The implemented treasury rule binds:

FieldMeaning
networkCAIP-2-style network identifier, such as eip155:1
account_idPartner-defined protected account identifier
asset_id, decimalsAsset identity and exact atomic-unit scale
max_atomic_unitsMaximum permitted amount as a canonical decimal string
allowed_destinationsExact allowlist for the pilot
required_approvalsNumber of eligible approvals required
approver_idsActors eligible under this policy version
authorization_ttl_sValidity window after authorization
prohibit_initiator_approvalEnforces initiator and approver separation

Operation submission

The implemented API accepts an idempotency_key, network, protected account, asset, amount, destination, and a 32-byte external payload hash. The server adds the authenticated initiator identity and server time.

{
"idempotency_key": "pilot-transfer-001",
"network": "eip155:1",
"account_id": "treasury-primary",
"asset_id": "usdc",
"amount": {"atomic_units": "250000", "decimals": 6},
"destination": "eip155:1:0x1111",
"payload_hash": "1717171717171717171717171717171717171717171717171717171717171717"
}

An identical authenticated retry returns the original record. Reusing the key with changed business fields returns a conflict.

Authorization intent

The authorization intent binds the stable request ID, action, network, account, optional asset/amount/destination, policy hash, approval-context hash, validity window, nonce, and external payload hash. Changing any protected field changes the intent digest.

Signing request

The signing request adds the signature scheme, key ID and epoch, threshold, strictly ordered participant identifiers, evidence hash, and issue time. This prevents a valid signature for one signer set, policy, epoch, or evidence bundle from being silently reused for another.

Authorization certificate

The certificate contains the complete signing request plus the backend public key, signature, and transcript hash. Execution verifies structure, backend identity, signature integrity, validity time, and exact intent binding.

Execution result

The adapter receives the stable request ID as its idempotency key. A completed result binds the external operation ID, external status, receipt hash, and provider-specific evidence fields. An uncertain result remains reconcilable and must not be treated as a confirmed failure or silently submitted again.

Evidence export

The export contains the exact policy, validated request record, deterministic record digest, event-chain head, execution or validation receipt when present, and optional independent witness receipt. Public reports must exclude bearer tokens, private key material, and private infrastructure configuration.

Stability

These implemented v0.1 pilot objects support design review and controlled validation. General availability follows interface stabilization, backwards-compatibility review, and partner acceptance.