[secondary proposal] API3 AirMailer

https://gateway.pinata.cloud/ipfs/QmZuewSWRZ4ZwVcxzSK6quHh426TJh9KzPK5NSXGVSfuTc

5 Likes

Cool stuff. For a web2 brainlet, who would deploy Airnode in this setup? And what sort of local infrastructure would be needed for an organization to use AirMailer?

For an example like Netflix, they probably are using their own email servers hosted themselves (in a data center) for emails sent from @netflix.com, so they would use deploy an airnode to AWS that communicates with those email servers.

1 Like

The proposal is now up for vote
https://gateway.pinata.cloud/ipfs/QmZuewSWRZ4ZwVcxzSK6quHh426TJh9KzPK5NSXGVSfuTc

1 Like

Could you expand a bit on the technical side here?

Is this something that EB will be hosting? Will any/all parts of this be open source?

How does this differ from building an API with a single endpoint that’s a wrapper around something like Mailgun and then just configuring an Airnode to expose that endpoint?

We envision this product functioning similarly to the current Airnode RRP, with the IOS
configuration replaced with an SMTP configuration

I assume you mean “OIS configuration”? If so, what does it mean to “replace” it? Are you going to fork Airnode?

Subsequently, the SMTP configuration or email API configuration would be checked, and Airnode would submit the data to the email server or API.

How does this work? How are you “checking the configuration”? Does this mean that the user is submitting SMTP details/email API key with the onchain request?

encrypting recipient addresses

How would this work? Where does the encryption happen? Onchain or offchain?

HTTP gateway based webform or API for a user to link an Ethereum address

How would you verify the link between an email address and Ethereum address?

Everything will be open source, see my netflix example just above regarding who hosts what etc.

We do envision doing something similar to what you described with mailgun, however it’s not as cut and dry as just configuring airnode to work with that. A smart contract need to be written that is in-line with how emails would be sent as opposed to something like a ticker symbol and it’s corresponding price. Furthermore there needs to be a way to register, store, and map user email addresses to etherum addresses in a secure fashion. We have a few ideas in mind but we’re hoping to offer up multiple solutions and letting API3 choose.

Yes OIS configuration, and by replace it we mean the config file. The current config that airnode uses would be replaced by something that works with email. not forking airnode. ideally we build a seperate adapter that uses SMTP instead of using an existing API.

It would work the same way airnode works, the config is checked when airnode wakes up every 2 minutes or whatever the interval is. The config checks the chain and any corresponding events would be cross checked with the email address to ethereum address mapping. There won’t be SMTP details or keys published on-chain.

The on-chain encryption solution we are planning to offer is one possible method where an email address encrypted with the airnode public key would be published on-chain, and then decrypted by the airnode using it’s private key. The primary concern here is that if the airnode key got compromised, then on-chain email addresses could be decrypted. The alternative to this that we have in mind is to match the airnode instead with an amazon S3 bucket, and users can call the airnode HTTP gateway to add the email address to ethereum address mapping to S3 in an off-chain manner. Ideally we want to offer both of these solutions to API3 and then the DAO decide what will be used, or if both options can be presented to a customer and let them decide which best suits their needs and security profile.

sign your email address with your private key :wink: