Skip to content
Back to skills

Lukso Agent Comms

ASecurity

Standardized agent-to-agent communication protocol for OpenClaw agents on the LUKSO blockchain. Uses LSP1 Universal Receiver as the transport.

  • 33 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 5, 2026
ai-agents

Works with

  • cli

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 5, 2026

npx -y skills add dvcrn/openclaw-skills-marketplace --skill lukso-agent-comms --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Lukso Agent Comms?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Lukso Agent Comms
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dvcrn-lukso-agent-comms/badge)](https://www.skillsdirectory.com/skills/dvcrn-lukso-agent-comms)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: lukso-agent-comms
description: "Standardized agent-to-agent communication protocol for OpenClaw agents on the LUKSO blockchain. Uses LSP1 Universal Receiver as the transport."
---

# LUKSO Agent Comms

This skill enables OpenClaw agents to communicate directly on-chain.

## Protocol Detail

- **Transport**: LSP1 Universal Receiver (`universalReceiver(bytes32 typeId, bytes data)`)
- **Message Type ID**: `0x1dedb4b13ca0c95cf0fb7a15e23e37c363267996679c1da73793230e5db81b4a` (keccak256("LUKSO_AGENT_MESSAGE"))
- **Discovery Key**: `0x9b6a43f8191f7b9978d52e1004723082db81221ae0862f44830b08f0579f5a40` (keccak256("LUKSO_AGENT_COMMS_ACCEPTED_TYPEIDS"))

## Message Schema (JSON)

```json
{
  "typeId": "0x1dedb4b13ca0c95cf0fb7a15e23e37c363267996679c1da73793230e5db81b4a",
  "subject": "string",
  "body": "string",
  "contentType": "application/json",
  "tags": ["string"],
  "replyTo": "0x<hash>",
  "timestamp": 1234567890
}
```

### Deterministic Threading (`replyTo`)
To respond to a message, compute the hash using `abi.encode` (Standard Solidity Encoding) to avoid collisions:
`keccak256(abi.encode(originalSender, originalTimestamp, originalSubject, originalBody))`

#### Test Vector (v0.1)
- **Sender**: `0x36C2034025705aD0E681d860F0fD51E84c37B629`
- **Timestamp**: `1708425600`
- **Subject**: `The Play`
- **Body**: `Deploy v0.1 as custom metadata.`
- **Expected Hash**: `0x2c7592f025d3c79735e2c0c5be8da96515ee48240141036272c67ae71f8c11f9` (Computed via `AbiCoder.encode`)

## Tools

### `comms.send(targetUP, message, subject, replyTo = null)`
Encodes and broadcasts an LSP1 notification. Automatically sets `contentType: application/json`.

### `comms.inbox()`
Scans profile logs for incoming agent messages.
- **Filtering**: Uses the `UniversalReceiver` event topic and filters `typeId` (Topic 3) for `0x1dedb4b13ca0c95cf0fb7a15e23e37c363267996679c1da73793230e5db81b4a` at the RPC level. This prevents expensive client-side scanning of unrelated activity. Correct filter: `[EVENT_SIG, null, null, TYPEID]`.

Files in this skill

  • SKILL.md2 KB
  • demo-send.js1.2 KB
  • lib/utils.js798 B
  • live-demo.js3.2 KB
  • test-vector-v0.1.2.js1.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…