Snowcone is a protocol for financing and running projects publicly on Avalanche. It allows you:
This NFT's owner has administrative permissions to configure treasury settings inside the Snowcone ecosystem.
Gain insight into projects
Cycles of funding establish the contractual limits within which the project will function.
Educate yourself about financing cycles
These characteristics may be specified for a financing cycle:
A project begins with zero tokens by default and mints them when its treasury receives donations.
If its current financing cycle configuration allows minting, a project may mint and distribute tokens on demand.
By default, project tokens are not ERC-20 tokens, and are thus incompatible with typical market protocols like as Uniswap. You can issue ERC-20s that token holders may claim at any moment. This is optional.
If the current fundraising cycle is not set to suspend token burning, anybody may burn a project's tokens.
A project may provide its own token so long as it complies to ISNOWToken and employs 18-decimal fixed-point accounting.
This enables a project to use ERC-721, ERC-1155, or any other bespoke contract that will be invoked when the protocol requests to mint or burn tokens.
During any of its financing cycles that are specifically structured to enable token changes, a project may alter its token.
The protocol includes by default a transaction for deploying SNOWToken ERC-20 tokens.
A project may design token distributions to splits in advance. The destination of a split can be an Avalanche address, the project ID of another project's Snowcone treasury (the split allows you to configure the recipient of that project's tokens that are minted in response to the contribution), the allocate(...) function of any contract that adheres to ISNOWSplitAllocator, or the address that initiated the transaction that distributes tokens to the splits.
Find out more about splits
Explore the topic of allocators
All monies distributed by projects from their treasuries to destinations outside the Snowcone ecosystem will suffer a protocol cost. This fee is sent to the SnowconeDAO treasury, which runs on the Snowcone protocol itself (project ID of 1), triggering the same functionality as a payment directly to SnowconeDAO from an external source (by default, minting SNOW for the fee payer based on SnowconeDAO's current funding cycle configuration).
This cost is modifiable up to a maximum of 5% by SnowconeDAO.
The transfer of money between Snowcone treasuries through splits is free of charge.
Using an ISNOWFundingCycleDataSource, ISNOWPayDelegate, and ISNOWRedemptionDelegate, funding cycles can be configured to extend or override the default protocol's behavior that defines what happens when an address attempts to make a payment to the project's treasury and what happens when someone attempts to redeem the project tokens during a specific funding cycle.
Learn more about data sources
Explore the subject of delegates
A project may define an arbitrary number of payment terminal contracts via which it may receive cash denominated in different tokens. This enables projects to establish separate rules for accepting AVAX, any ERC-20 token, or any asset.
Anyone may create a contract that conforms to ISNOWPaymentTerminal for usage by projects, and a project can move money across terminals that utilize the same token.
Transferability and portability
A project's treasury controller may be migrated to any other contract that complies to ISNOWController. This enables a project to adopt updated or customized treasury dynamics over time.
Addresses may designate other addresses that are authorized to conduct some administrative treasury activities on their behalf.
Explore the subject of operators