PartyBid is a protocol that allows a group of internet homies to pool their funds together in order to win an NFT auction.
PartyBid is the first product developed by PartyDAO, a decentralized autonomous organization that builds and ships products. PartyDAO was created initially for the purpose of shipping PartyBid. To keep up with PartyDAO, follow @prtyDAO on Twitter and Mirror. Acquire 10 $PARTY tokens to join the DAO and party with us.
startParty
- deploy a PartyBid contract, specifying the NFT auction to targetcontribute
- contribute ETH to the PartyBidbid
- trigger a bid on the NFT auction. Always submits the minimum possible bid to beat the current high bidder. Reverts if the PartyBid is already the high bidder.
finalize
- call once after the auction closes to record and finalize the results of the auction. Deploys the fractionalized NFT vault if the PartyBid won.claim
- call once per contributor after the auction closes to claim fractionalized ERC-20 tokens (for any funds that were used to win the auction) and/or excess ETH (if the auction was lost, or if the funds were not used to win the auction)recover
- callable by the PartyDAO multisig to withdraw the NFT if (and only if) the auction was incorrectly marked as Lostcontracts/PartyBid.sol
- core logic contract for PartyBidcontracts/PartyBidFactory.sol
- factory contract used to deploy new PartyBid instances in a gas-efficient mannercontracts/market-wrapper
- MarketWrapper contracts enable PartyBid to integrate with different NFT auction implementations using a common interfacedeploy
- Deployment script for contractstest
- Hardhat tests for the core protocolcontracts/external
- External protocols' contracts (Fractional Art, Zora Auction House, Foundation Market), copied to this repo for use in integration testing.contracts/test
- Contracts written for use in testingnpm i
.env
file in order to deploy the contractstouch .env && cat .env.example > .env
Then, populate the values in .env
.
To run the Hardhat tests, simply run
npm run test
You can find the address of deployed PartyBid Factories on each chain at deploy/deployed-contracts
To deploy a new PartyBid Factory, first ensure you've populated your .env
file. The RPC endpoint should point chain you want to deploy the contracts, and the private key of the Deployer account should be funded with ETH on that chain .
Next, add a config file to deploy/configs/[CHAIN_NAME].json
specifying the addresses of the necessary external protocols on that chain. You can use other files in that folder to see which contract addresses must be populated.
Finally, run
npm run deploy:partybid
The findings from the security review for PartyBid contracts can be found here. The security review was completed by Alex Towle.
PartyBid contracts are reproduceable under the terms of MIT license.
MIT © PartyDAO