Index: src/services/guardianship/index.js
===================================================================
--- src/services/guardianship/index.js	(revision e62f65d51ce6e100e8c44bd84a06c8731f893a03)
+++ src/services/guardianship/index.js	(revision af5b79bce6ea434335758683cb102f0e695757ce)
@@ -16,5 +16,5 @@
  */
 export { SHAER_CONTEXT, GUARDIAN_RELATIONSHIP, GUARDIAN_RELATIONSHIP_COMPACT, isGuardianRelationship } from './context.js';
-export { helpRequestProps, isHelpRequest, waveProps, isWave } from './notes.js';
+export { helpRequestProps, isHelpRequest, waveProps, isWave, hasGuardiansProps, objectHasGuardians } from './notes.js';
 export { wireDelivery, c2sVisibility, deliverDirectNote } from './delivery.js';
 export { wireHandshake, handleOutbox as handleGuardianshipOutbox, handleInbox as handleGuardianshipInbox, parseRelationship } from './handshake.js';
Index: src/services/guardianship/notes.js
===================================================================
--- src/services/guardianship/notes.js	(revision e62f65d51ce6e100e8c44bd84a06c8731f893a03)
+++ src/services/guardianship/notes.js	(revision af5b79bce6ea434335758683cb102f0e695757ce)
@@ -5,4 +5,21 @@
  * on direct notes. Everyone who does not speak shaer can ignore it.
  */
+import { listGuardians } from './relations.js';
+
+/**
+ * shaer:hasGuardians (§2.2): an advisory OBJECT hint that the author is a ward,
+ * so a remote server can route interactions to the guardians WITHOUT fetching
+ * the actor. Stamped on every object a ward publishes; MUST be safely ignorable.
+ */
+export function hasGuardiansProps(slug) {
+  try { return (slug && listGuardians(slug).length) ? { 'shaer:hasGuardians': true } : {}; }
+  catch { return {}; }
+}
+
+/** True when an incoming object carries the ward hint (§2.2). Register-only for
+ *  now; acted on later at reddings-boei / escalation routing. */
+export function objectHasGuardians(o) {
+  return !!o && (o['shaer:hasGuardians'] === true || o.hasGuardians === true);
+}
 
 /** Extra JSON-LD properties for an outgoing note built from an ap_outbox row. */
@@ -31,3 +48,3 @@
 }
 
-export default { helpRequestProps, isHelpRequest, waveProps, isWave };
+export default { helpRequestProps, isHelpRequest, waveProps, isWave, hasGuardiansProps, objectHasGuardians };
