
Permissionless Hierarchy : A new way to look at DAOs.
DAOs are the biggest misnomer of web3. They don’t work, and no one seems to know how to make it work. Here, I present a view to challenge the way we look at DAOs to begin with. The take-away for me from 2 days of DAO discussions in Amsterdam is nobody has figured out how to manage the chaos to get anything useful done in a DAO. DAOs are today just a glorified Discord channel with no clear route to be either Decentralized (what does that even mean?) or Autonomous. “DAO” is a marketing gimmick....
Request to build - Decentralized NFT based lending protocol
A completely decentralized protocol that lets people borrow money from the treasury by producing an NFT. This is to be built on top of LooksRare, because LooksRare is decentralized and hence infinitely composable.Borrow at floor priceProduce an NFT from an NFT collection on LooksRare. The maximum amount you can borrow against the NFT is the minimum floor price of that collection over the last 30 days. You can only deposit verified collections’ NFTs - for securing the protocol. Open to any oth...
Request to build - A decentralized Audit Marketplace mechanism design
Auditing wait times on top audit firms are 9-12 months and expensive. We need something that is more participative and allows for new and yet-unproven security auditors. Here I propose a decentralized audit marketplace that turns the auditing process into a prediction marketplace.1. Select a juryA jury is usually reputed security engineers. This jury doesn’t do the audit itself, but only signs off a reported vulnerability as a real bug. There are 5 jury members selected for every audit. They ...
Founder [Questbook (YCw21)](https://questbook.xyz) Writing about things that need to be built in web3

Permissionless Hierarchy : A new way to look at DAOs.
DAOs are the biggest misnomer of web3. They don’t work, and no one seems to know how to make it work. Here, I present a view to challenge the way we look at DAOs to begin with. The take-away for me from 2 days of DAO discussions in Amsterdam is nobody has figured out how to manage the chaos to get anything useful done in a DAO. DAOs are today just a glorified Discord channel with no clear route to be either Decentralized (what does that even mean?) or Autonomous. “DAO” is a marketing gimmick....
Request to build - Decentralized NFT based lending protocol
A completely decentralized protocol that lets people borrow money from the treasury by producing an NFT. This is to be built on top of LooksRare, because LooksRare is decentralized and hence infinitely composable.Borrow at floor priceProduce an NFT from an NFT collection on LooksRare. The maximum amount you can borrow against the NFT is the minimum floor price of that collection over the last 30 days. You can only deposit verified collections’ NFTs - for securing the protocol. Open to any oth...
Request to build - A decentralized Audit Marketplace mechanism design
Auditing wait times on top audit firms are 9-12 months and expensive. We need something that is more participative and allows for new and yet-unproven security auditors. Here I propose a decentralized audit marketplace that turns the auditing process into a prediction marketplace.1. Select a juryA jury is usually reputed security engineers. This jury doesn’t do the audit itself, but only signs off a reported vulnerability as a real bug. There are 5 jury members selected for every audit. They ...
Founder [Questbook (YCw21)](https://questbook.xyz) Writing about things that need to be built in web3

Subscribe to Madhavan Malolan

Subscribe to Madhavan Malolan
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
Send a message to another user, on chain.
TL;DR
Encrypt message to receiver using their public key
Create a transaction on main chain that emits an event with the receiver’s address and the encrypted message
Create a subgraph and index these events
Display the encrypted messages
When the user opens the message, decrypt and display message

For this you need the public key of the user. You might not always have it.
To get the public key, you need to have access to atleast 1 transaction made by this user.
To register to receive encrypted messages, a user must make a register transaction to your smart contract on chain. Then, using this transaction, extract the public key and store it on chain.
The typed message should be encrypted using Metamask.
Refer :
https://docs.metamask.io/guide/rpc-api.html#encrypting
If public key is available, encrypt it. Else send an un-encrypted message.
To send a message put the encrypted or unencrypted message on a blob in IPFS.
Make a transaction to your smart contract that emits an event with the to address and ipfs hash .
https://docs.soliditylang.org/en/v0.8.11/contracts.html#events
Index these events using TheGraph protocol.
Make it query-able “get all messages for a given receiver”.
https://thegraph.com/docs/en/developer/create-subgraph-hosted/

When a user opens their inbox show the list of all the messages they’ve received by querying TheGraph
Show only sender name (ens) or address and send time.
https://thegraph.com/docs/en/developer/graphql-api/

When the user taps on the message, fetch the file from ipfs. If it is encrypted decrypt using Metamask.
https://docs.metamask.io/guide/rpc-api.html#eth-decrypt
If you build this on or before 10th January 2022, I pay 1 ETH.
Send a message to another user, on chain.
TL;DR
Encrypt message to receiver using their public key
Create a transaction on main chain that emits an event with the receiver’s address and the encrypted message
Create a subgraph and index these events
Display the encrypted messages
When the user opens the message, decrypt and display message

For this you need the public key of the user. You might not always have it.
To get the public key, you need to have access to atleast 1 transaction made by this user.
To register to receive encrypted messages, a user must make a register transaction to your smart contract on chain. Then, using this transaction, extract the public key and store it on chain.
The typed message should be encrypted using Metamask.
Refer :
https://docs.metamask.io/guide/rpc-api.html#encrypting
If public key is available, encrypt it. Else send an un-encrypted message.
To send a message put the encrypted or unencrypted message on a blob in IPFS.
Make a transaction to your smart contract that emits an event with the to address and ipfs hash .
https://docs.soliditylang.org/en/v0.8.11/contracts.html#events
Index these events using TheGraph protocol.
Make it query-able “get all messages for a given receiver”.
https://thegraph.com/docs/en/developer/create-subgraph-hosted/

When a user opens their inbox show the list of all the messages they’ve received by querying TheGraph
Show only sender name (ens) or address and send time.
https://thegraph.com/docs/en/developer/graphql-api/

When the user taps on the message, fetch the file from ipfs. If it is encrypted decrypt using Metamask.
https://docs.metamask.io/guide/rpc-api.html#eth-decrypt
If you build this on or before 10th January 2022, I pay 1 ETH.
No activity yet