declare const _default: "# SLAP Topic Manager\n\n**Protocol Name**: SLAP (Service Lookup Availability Protocol) \n**Manager Name**: `SLAPTopicManager` \n\n---\n\n## Overview\n\nThe SLAP Topic Manager is responsible for identifying valid SLAP outputs in transactions. These outputs advertise the availability of a **lookup service** that can be accessed within an overlay network. By publishing a SLAP token, a node declares it is providing a specific service, prefixed `ls_`.\n\n---\n\n## Purpose\n\n- **Announce**: Declare that the identity key provides a certain lookup service, such as `ls_example` or other overlay lookups.\n- **Availability**: Indicate that the node or service is currently active and can be queried via the provided URI.\n\n---\n\n## Requirements for a Valid SLAP Output\n\nSimilar to SHIP, SLAP tokens must follow a specific 5-field structure in a [PushDrop](https://www.npmjs.com/package/@bsv/sdk#pushdrop) script:\n\n1. `\"SLAP\"` \u2014 The literal string indicating SLAP protocol.\n2. `identityKey` \u2014 The public key that claims ownership of this advertisement.\n3. `advertisedURI` \u2014 A valid URI, aligning with what is contemplated in BRC-101.\n4. `service` \u2014 The name of the service. Must:\n - Pass the BRC-87 checks.\n - Start with `ls_`.\n5. `signature` \u2014 The ECDSA signature from `identityKey` covering the above 4 fields.\n\n---\n\n## Signature and Locking Key\n\nThe final field is a signature that **must** link back to the identity key. The `SLAPTopicManager` uses the `isTokenSignatureCorrectlyLinked` code to confirm:\n\n- The signature is valid for the data in the first four fields.\n- The `lockingPublicKey` of the UTXO matches the derived key from the identity key used to sign.\n\nIf any step fails, the SLAP output is rejected.\n\n---\n\n## Data Format and Validation\n\n1. **Exact 5 PushDrop Fields**:\n - If fewer or more than 5 fields are found, the SLAP manager will skip the output.\n2. **Valid `service`**:\n - Must begin with `ls_`.\n - Only letters (lowercase) and underscores are allowed, per `isValidTopicOrServiceName` (BRC-87).\n3. **Advertised URI**:\n - Must not be `localhost`.\n - Must use a recognized scheme (`https://`, `wss://`, or specialized custom `https+bsvauth...` forms).\n4. **Signature**:\n - Must be in DER format.\n - Must match the identity key.\n\n---\n\n## Further Reading\n\n- **SLAPLookupService**: For how to query these records afterward.\n- **SHIP**: The complementary protocol for advertising \"host-based\" topics (`tm_`).\n"; export default _default; //# sourceMappingURL=SLAPTopic.docs.d.ts.map