{"version":"1.0","node_did":"did:astranl:astranl.com","surfaces":{"manifest":{"method":"GET","path":"/.well-known/astranl-node.json","auth":"none"},"health":{"method":"GET","path":"/federation/health","auth":"none"},"peers_list":{"method":"GET","path":"/federation/peers","auth":"none"},"price_audits":{"method":"GET","path":"/federation/price_audits","auth":"none"},"stats_aggregate":{"method":"GET","path":"/federation/stats","auth":"none"},"changes":{"method":"GET","path":"/federation/changes","auth":"none"},"peer_dashboard":{"method":"POST","path":"/federation/peers/dashboard","auth":"ed25519-signed"},"handshake":{"method":"POST","path":"/federation/handshake","auth":"ed25519-signed"},"price_audit_file":{"method":"POST","path":"/federation/price_audit","auth":"ed25519-signed"},"settle":{"method":"POST","path":"/federation/settle","auth":"ed25519-signed"}},"polling_recommendation":{"health":"every 60s","changes":"every 5 minutes (use ?since= cursor)","dashboard":"on demand or after change events"},"signature_scheme":{"algorithm":"Ed25519","canonical":"json.dumps(payload, sort_keys=True, separators=(',',':'))","replay_window_seconds":300,"format":"ed25519:<base64-signature>"},"references":{"protocol_spec":"https://astranl.com/protocol/acp/","rules":"https://astranl.com/federation/rules/","llms":"https://astranl.com/llms.txt"}}