Context

RLN is the major step to do spam protection for Waku based network. We want to onboarding Status app to leverage RLN for this capability, also learn the UX regarding to the RLN adoption.

Initially, only 1:1 messages will apply for RLN, communities messages will be split out to different shards.

RLN contract will have configuration like 100 messages per 10 minutes, it could also has multiple options depends on how much the user pays.

Nwaku needs to access the contract configuration on evm based chains. And adapt and change the configuration introduced in this PR in nwaku.

Go-waku should provide an interface to query the remaining available message quotas, and persistent the number in database in case application restarts.

Application should check the error code returned by Waku publish message method, and show a proper information if the error indicates that there is no more quotas available.

Related issue: https://github.com/status-im/status-go/issues/6130

Direct Messages

If you want to search from local logs, try keywords: sent-message: public message

Message Type: CONTACT_CODE_ADVERTISEMENT

Control message, sent when user’s metadata changes, like