NFTs as Proof of Endowment… or, EnDAOment
What if I told you a giant mural on the side of a building in downtown Memphis is an NFT filled with unreleased Elvis Presley tracks? To download and listen to the tracks, you have to visit the location and scan the RFID chip or QR code outside the mural. Would you be interested in visiting the location?
Well, this is exactly what we accomplished! Except for the whole unreleased Elvis Presley tracks. We definitely did not do that. If Graceland reads this blog post, however, reach out and we can help you make it happen!
What we did do is create a technical demonstration riffing on earlier ideas from technology that allows the removal of middlemen and intermediaries. These so called “Trustless Trusts” use blockchain and smart contracts to interact with programmable value and Real World Assets in new and imaginative ideas. In this instance the vector of value is this awesome real life, supersized mural in Memphis Tennessee. Read all about the NFT that is charged with 100K that will generate interest for a charity St. Judes in a form of lossless charity that does not exhaust any of the principal.
A superpower of smart contract blockchain systems is their permissionless composability. We can start to plug various protocols together to interact in interesting and powerful ways. Much like Voltron.
https://www.youtube.com/watch?v=2M3cyCFWChg
We will use a few protocols here and the rest is more of recipe on “how to” for those that are technically inclined to follow along.
- Charged Particles — a protocol that lets you put digital assets inside your NFTs. Now, ordinary NFTs (think neutral molecules) can contain a digital “charge” inside — ERC20, ERC721 or ERC1155 — giving you the unprecedented power to create nested NFTs. If you can digitize it, you can deposit it into your NFTs.
- Kali DAO protocol — Launch DAOs with Legal Benefits in Seconds
- Aave — Earn interest, borrow assets, and build applications
- Polyscan— The block explorer which allows interaction with smart contracts on the blockchain without needing to directly use a front end.
The required action is to take the interest generated from a Charged Particle NFT that is charged up with Aave (interest bearing)tokens and direct them to a third party wallet and demonstrate the ability of a Kali DAO to manage the NFT and dispense the interest through its arbitrary external calls. Why? DAO’s need to be able to interact directly with smart contracts via their governance protocols and procedures. The power is that communities can serve as decentralized, autonomous (or not) bodies to manage valuable assets on digital blockchain ledgers. Otherwise, the DAO’s all need gatekeepers, fiduciaries and intermediaries to do the things they want to do.
Step 1 — Set Creator Annuities: Original Minter needs to set.
We use the Charged Particles protocol for nesting value generating ERC20’s into a NFT. To learn all about the protocol check out the website here. The accrued Aave tokens that build up the charge in a NFT can be dispensed to a 3rd party wallet, such as a charity. The “creator annuity” is the stream of interest/accruals in the Aave lending protocol. We assign the stream.
Charged Particles Contract on Matic : 0xdc29C7014d104432B15eD2334e654fCBf3d5E528
Go to Write as Proxy: Function 11 on polyscan
Percent is multiplied by 100. So if we want to assign 99% and hold 1% of the Creator Annuity (the Aave Interest) then it is 9999 as in the schematic. The creator annuity is the amount of value (the “charge”) that gets accrued through depositing Aave tokens into the NFT.
The contractAddress is the Proton Address: 0x1CeFb0E1EC36c7971bed1D64291fc16a145F35DC This is the contract for the Protons. Protons are the NFT’s that are minted using charged.fi.
Third Party address: 0xcbbd18d3ac27ab0fffd04bccd091b2802c92e0ca for testing. This is the beneficiary of the interest on the 99% split above.
TokenID — Is the NFT token ID that we are working with (the “Proton”). Each NFT-721 has a unique token ID (URI).
Step 2 — Claim Creator Annuities: Original Minter needs to set the split in Step 1
Go to Write as Proxy: Function 6 on polyscan
The function #6 is dischargeParticle that claims the accrued charge and splits. As I found it does take a minimum amount of charge before this will be claimable.
- The receiver is the party minter of the Proton (the Creator)
- Contract address is same as above the Proton Address
- TokenId is same as above and is the NFT token id
- wallentManagerID is for Aave the v2 should be aave.B
- assetToken depends on the Aave token in question. The above was for wMatic. Would need to get the token contract address accordingly if it is another token.
Step 3 — DAO control and Management of the NFT “Proton” and claiming
It is easy enough to transfer the NFT to a DAO Treasury. Here is a Kali Dao formed called BirdDAO on Matic Chain. It is a Kali-generated, unincorporated non profit association (“UNA”) in DE, and not intended to generate profits and only to decentralize the process of trustlessly managing NFTs and DAO assets. Learn more about UNA’s here from A16z.
Transfer the Proton NFT to the DAO treasury address above.
Step 4 — DAO proposal to “claim” the accrued interest.
If this were a charity such as Giving Block then a user could assign the split in Step 2 directly to the Ethereum wallet generated by the Giving Block. Here is their address for St. Jude’s Children Hospital. There appear to be limited options beyond Ethereum ERC-20’s, but worth checking in to see if they also support Matic.
Kali allows external calls to smart contracts that are then treated as proposals and then execute so long as they are passed via governance. This is similar to how DAO actions and votes might be signaled through a proposal, but all happens within the DAO and on-chain executable. In other words, this actually will become executable if it is passed via the DAO governance.
Next we click Calls under new proposal, enter the contract we want to call. In this case it is the same as in Step 2. We paste in the ABI and parse. We then select the function dischargeParticle and it should look similar below.
Here we use a different tokenID #11 that is charged with USDC into Aave Matic.
The USDC token address on Matic is here. Other variables should be the same as above. We submit a proposal and then it enters the queue. Protip always increase the Matic gas to a high or medium as it seems to underestimate for some reason.
Step 5 — DAO votes
Here we vote as a DAO. The voting period is three days. If the vote carries then come back and process it and it will execute on chain.
Congratulations, we have just used a NFT that is managed by a DAO, that is a legal entity, to discharge interest to a third party beneficiary. Natural extensions of this use case.
- Real Property — Collect security deposits and rent and have them wrapped into value accruing assets.
- Accounting- Assign a percentage of the income to taxable accounts to pay THE man.
- Charity — well duh.
- Management- DAOs working with contract workers can preassign the stream to the management company