dao-voting-cw721-staked

Crates.iodao-voting-cw721-staked
lib.rsdao-voting-cw721-staked
version2.6.0
sourcesrc
created_at2023-07-03 16:02:16.816938
updated_at2024-11-08 00:35:11.047987
descriptionA DAO DAO voting module based on staked cw721 tokens.
homepage
repositoryhttps://github.com/DA0-DA0/dao-contracts
max_upload_size
id907154
size203,287
publishers (github:da0-da0:publishers)

documentation

README

dao-voting-cw721-staked

dao-voting-cw721-staked on crates.io docs.rs

This is a basic implementation of an NFT staking contract.

Staked tokens can be unbonded with a configurable unbonding period. Staked balances can be queried at any arbitrary height by external contracts. This contract implements the interface needed to be a DAO DAO voting module.

dao-voting-cw721-staked can be used with an existing NFT collection or to create a new cw721 collection upon instantiation (with the DAO as admin and minter).

To support Stargaze NFTs and other custom NFT contracts or setups with minters (such as the Stargaze Open Edition minter), this contract also supports a factory pattern which takes a single WasmMsg::Execute message that calls into a custom factory contract.

NOTE: when using the factory pattern, it is important to only use a trusted factory contract, as all validation happens in the factory contract.

Those implementing custom factory contracts MUST handle any validation that is to happen, and the custom WasmMsg::Execute message MUST include NftFactoryCallback data respectively.

The dao-test-custom-factory contract provides an example of how this can be done and is used for tests. It is NOT production ready, but meant to serve as an example for building factory contracts.

Commit count: 879

cargo fmt