Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Weighted NFTs #874

Closed
wants to merge 5 commits into from
Closed

Weighted NFTs #874

wants to merge 5 commits into from

Conversation

tenthirtyone
Copy link

@tenthirtyone tenthirtyone commented Feb 6, 2018

Preamble

eip: 874
title: Weighted NFTs
author: Alex Sherbuck Alex@igave.io
type: Standard Track
category: ERC
status: Draft
created: 2018-02-06

Summary

Not all NFTs are created equal. Nothing exists to distinguish one NFT from another. Weight allows a DAO or other external actors to recognize some value for unique asset holdings.

Motivation

This allows DAOs to form based on asset/NFT holdings instead of just ERC-20 token holdings. Asset holders may decide how to set their token weight.

Specification

The Weighted Digital Asset Registry is an extension for ERC-821 that tracks asset weight. This follows the standard set in ERC821 and adds:

Weighted DAR

Extension to ERC-821

totalWeight

function totalWeight() public view returns (uint256);
Returns the total weight tracked by the DAR

isWeighted

function isWeighted() public view returns (bool);
This method returns true.

weightOfAsset

function weightOfAsset(uint256 assetId) public view returns (uint64);
Returns the total weight of an individual asset.

weightOfHolder

function weightOfHolder(address holder) public view returns (uint256);
Returns the total weight of the assets controlled by the holder.

changeWeight

function changeWeight(uint256 assetId, uint64 weight) public;
Changes the weight of the asset to the given value.

Events

event TransferWeight(
    address indexed from,
    address indexed to,
    uint256 indexed assetId,
    uint64 weight
  );
event ChangeWeight(
    uint256 indexed assetId,
    uint64 weight
  );

DAR Adapter

An adapter that exposes a balanceOf.

voteWeightAddress

function voteWeightAddress() public view returns (address);
Returns the address of the Weighted DAR.

balanceOf

function balanceOf(address holder) public view returns (uint256);
Calls the weightOfHolder function of the Weighted DAR.

Implementation

This will be updated to the most recent ERC-721 standard. Update: Standard is settled. Getting to work

Weighted Digital Asset Registry - w/ DAO voting

Rationale

Including an adapter for the DAO to reference holder weight minimizes the impact on current DAO code that references an ERC-20's balanceOf

Copyright

Copyright and related rights waived via CC0.

@tenthirtyone tenthirtyone changed the title dar voting weight NFT weighting for DAO voting rights Feb 6, 2018
@tenthirtyone tenthirtyone changed the title NFT weighting for DAO voting rights Weighted Digital Asset Repository Feb 8, 2018
@tenthirtyone tenthirtyone changed the title Weighted Digital Asset Repository Weighted Distinguishable Asset Registry Feb 8, 2018
EIPS/DAR-vote-weight.md Outdated Show resolved Hide resolved
EIPS/DAR-vote-weight.md Outdated Show resolved Hide resolved
@Arachnid
Copy link
Contributor

This is a courtesy notice to let you know that the format for EIPs has been modified slightly. If you want your draft merged, you will need to make some small changes to how your EIP is formatted:

  • Frontmatter is now contained between lines with only a triple dash ('---')
  • Headers in the frontmatter are now lowercase.

If your PR is editing an existing EIP rather than creating a new one, this has already been done for you, and you need only rebase your PR.

In addition, a continuous build has been setup, which will check your PR against the rules for EIP formatting automatically once you update your PR. This build ensures all required headers are present, as well as performing a number of other checks.

Please rebase your PR against the latest master, and edit your PR to use the above format for frontmatter. For convenience, here's a sample header you can copy and adapt:

---
eip: <num>
title: <title>
author: <author>
type: [Standards Track|Informational|Meta]
category: [Core|Networking|Interface|ERC] (for type: Standards Track only)
status: Draft
created: <date>
---


#### totalWeight
`function totalWeight() public view returns (uint256);`
Returns the total weight tracked by the DAR
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is a DAR?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DAR was the 821 standard that was contentious with 721 before everyone decide to merge 821 Digital Asset Registry into 721 a while back.

@axic
Copy link
Member

axic commented Nov 8, 2018

@tenthirtyone are you still interested in pursuing this ERC?

@tenthirtyone
Copy link
Author

@axic Yes, we're doing things over at heritage.aero with it

@github-actions
Copy link

There has been no activity on this pull request for two months. It will be closed in a week if no further activity occurs. If you would like to move this EIP forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review.

@github-actions github-actions bot added the stale label Sep 22, 2020
@github-actions
Copy link

This pull request was closed due to inactivity. If you are still pursuing it, feel free to reopen it and respond to any feedback or request a review in a comment.

@github-actions github-actions bot closed this Sep 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants