Oddbean new post about | logout
 You could try to delete the older events using kind 5. 
 Yep, this is a good mitigation strategy. But if nothing changes on either side, unfortunately, Amethyst will still write new events every time I change my relay settings, and we’ll soon be back to the same problem. 
 Until greenart7c3 can work his magic, here's another one of my awful scripts to delete all kind 10002 events from a relay, following nostr:nprofile1qqs8h057dewjchkpp2etmjkvd9chzr7j09m5ra4jsvq4ls60usya73qpz4mhxue69uhkummnw3ezummcw3ezuer9wchsz9thwden5te0wfjkccte9ejxzmt4wvhxjme0qy88wumn8ghj7mn0wvhxcmmv9ue77sja's advice above. It works with Citrine but not with Haven (Haven is silently ignoring delete events).

nostr:nprofile1qqsw9n8heusyq0el9f99tveg7r0rhcu9tznatuekxt764m78ymqu36cpz4mhxue69uhhyetvv9ujuat50phjummwv5hszymhwden5te0wahhgtn4w3ux7tn0dejj7qg4waehxw309an8yetwwvh82arcduhx7mn99uuwx66a, is supporting NIP-09 (Event deletion requests) something you feel strongly against, or is this just something that haven't been implemented yet / possible bug?

My impression from this line is that delete events should be working: https://github.com/bitvora/haven/blob/b51529221e3df04de22b73840e2b3cc3ed6b898c/main.go#L247

```javascript
import WebSocket from 'ws'
import { Relay, useWebSocketImplementation } from 'nostr-tools/relay'
import { finalizeEvent, getPublicKey } from 'nostr-tools/pure'
import * as nip19 from 'nostr-tools/nip19'


useWebSocketImplementation(WebSocket);

const relay = await Relay.connect('ws://192.168.1.1:4869');
console.log(`connected to ${relay.url}`)

const sk = nip19.decode('nsec1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa').data
const pk = getPublicKey(sk)

let eventCount = 0

let eventTemplate = {
  kind: 5,
  created_at: Math.floor(Date.now() / 1000),
  tags: [],
  content: 'Deleting all kind 10002 events',
}

relay.subscribe([
  {
    kinds: [10002],
    authors: [pk],
  },
], {
  onevent(event) {
    console.log('got event:', event)
    eventTemplate.tags.push(['e', event.id], ['k', '10002'])
    eventCount++
  },
  async oneose() {
    console.log('Got', eventCount, 'events')

    if (eventCount > 0) {
      const signedEvent = finalizeEvent(eventTemplate, sk)
      console.log('Deletion event:', signedEvent)
      await relay.publish(signedEvent)
    }

    relay.close()
  }
})
``` 
 what are 10002 events and why delete them? 
 10002 events are events containing a list of your Inbox/Outbox relays—see: https://nostr-nips.com/nip-65

I’m deleting them because some relays are retaining outdated events and lists. When Amethyst downloads an outdated list from a relay, it sends a new 10002 event with the latest list. Since relays aren’t deleting old events and Amethyst isn’t filtering to show only the most recent event, users who switch relays frequently (like me) end up receiving a ton of redundant 10002 events, often triggering rate limits, etc.

Not sure if I’m explaining this clearly, but I hope it makes sense.