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 ...

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
<100 subscribers
<100 subscribers
Share Dialog
Share Dialog


I wrote earlier that NFTs are an essential piece in the identity layer on web3.
https://mirror.xyz/madhavanmalolan.eth/2nmFmRYYrzCobAZibMK_F_UNe5xAAxI3UqUOK6jHkbA
Identities are contracts deployed on chain, thus has an address just like a user.
A user can deploy a contract for an identity. Each identity has multiple owners. Each owner has an equity in the identity.
constructor(address[] owners, uint[] equities) public
Owners can transfer NFTs to the contract
function transferNFT(address NFTCollection, uint tokenId) public {
// requires approval before this call
}
Anyone can check if the identity has an NFT from a certain collection
function hasNft(address NFTCollection) external returns(uint tokenId, uint since) {
// since = number of blocks since the NFT has been transferred to this identity
}
Once the NFT has been transferred to the identity it cannot be returned to the original owner. The only way to return it is to disintegrate the identity.
Anyone can transfer ERC20 tokens or native token to the contract. Any owner can add the addresses of tokens that they're willing to accept
function acceptErc20(address) public
All the money is stored in the contract. Any owner can initiate a withdraw. The money is sent to all the owners in proportion to their equities.
function withdraw() public {
// loop on all acceptedErcs, loop on all owners
}
To get all the money and NFTs back, any owner can call disintegrate
function disintegrateInit() {
require(msg.sender == one of the owners)
withdraw();
}
function disintegrateFinalize() {
// return all NFTs to original owner
}
The contract must be deployed to Optimism Mainnet and should have a simple UI. The UI must have the following
a way to create the identities
add supported erc20 tokens
transfer NFT or ERC20 to identity
withdraw
disintegrate
view all NFTs in the identity
Maximum bounty 5000USDC!
I wrote earlier that NFTs are an essential piece in the identity layer on web3.
https://mirror.xyz/madhavanmalolan.eth/2nmFmRYYrzCobAZibMK_F_UNe5xAAxI3UqUOK6jHkbA
Identities are contracts deployed on chain, thus has an address just like a user.
A user can deploy a contract for an identity. Each identity has multiple owners. Each owner has an equity in the identity.
constructor(address[] owners, uint[] equities) public
Owners can transfer NFTs to the contract
function transferNFT(address NFTCollection, uint tokenId) public {
// requires approval before this call
}
Anyone can check if the identity has an NFT from a certain collection
function hasNft(address NFTCollection) external returns(uint tokenId, uint since) {
// since = number of blocks since the NFT has been transferred to this identity
}
Once the NFT has been transferred to the identity it cannot be returned to the original owner. The only way to return it is to disintegrate the identity.
Anyone can transfer ERC20 tokens or native token to the contract. Any owner can add the addresses of tokens that they're willing to accept
function acceptErc20(address) public
All the money is stored in the contract. Any owner can initiate a withdraw. The money is sent to all the owners in proportion to their equities.
function withdraw() public {
// loop on all acceptedErcs, loop on all owners
}
To get all the money and NFTs back, any owner can call disintegrate
function disintegrateInit() {
require(msg.sender == one of the owners)
withdraw();
}
function disintegrateFinalize() {
// return all NFTs to original owner
}
The contract must be deployed to Optimism Mainnet and should have a simple UI. The UI must have the following
a way to create the identities
add supported erc20 tokens
transfer NFT or ERC20 to identity
withdraw
disintegrate
view all NFTs in the identity
Maximum bounty 5000USDC!
No activity yet