---
tags: Product
---
# CCO - Contribution Page
## UX questions
- How do we get to the page?
- communicate rounds or windows?
- states: before windows / after windows
- has contribution
## Setup
- CCO boost record needed with metadata
```javascript=
{
minTarget: "777777",
tributeToken: <address>,
// do we need decimals and symbol here too?
// or just match with one of the dao tokens in the ui probably?
maxTarget: "1250000",
closeTime <seconds timestamp would be nice here as it matches block timestamps, ect...>,
maxContribution: "2000",
}
// multi-round:
{
maxContribution: "2000",
rounds: [
{
round: 1,
startTime: seconds
duration: seconds
minTarget: "777777",
tributeToken: <address>,
maxTarget: "1250000",
// can eventually reconfigure targets, but daohaus has some if/or rules
},
{
round: 1,
startTime: seconds
duration: seconds
minTarget: "777777",
tributeToken: <address>,
maxTarget: "1250000",
}
]
}
```
manually update the max target and max contribution
## Contribution Page
Can toggle on/off if boost exists
## Step 1: Check eligibility
- api endpoint
- check on list + hasn't contributed max
- trigger on button click
## Step 2: Contribute
- loot grab proposal
- max is determined by boost metadata value - total aldreay contributed
More definition around contribution periods
Round options
- Max per individual
- Others later
Timestamps must be consecutive
## Step 3: Claim
- indicate when claim opens
- not sure how we calculate that?
- close time + all props processed?
- eventually claim will rage quit max
- and maybe give them a withdraw button after the rage quit?
## Status
- display data from cco boost metadata
- closing countdown
- status bar - similar component to vote bar?
## Other states:
### Already contributed state
- if connected address we can check to see if they have submitted a proposal
- if not, then they need to check eleigibility
- if they have
- less than max they can still do step 2
- indicate they have hit max and link to their proposal(s)
SAMPLE:
```json
{
tributeToken: "0xd0a1e359811322d97991e03f863a0c30c2cf029c",
network: 'kovan',
ratio: 1,
raiseStartTime: "1614536991",
claimPeriodStartTime: "1615255391",
claimTokenValue: 7.77,
claimTokenSymbol: 'HAUS',
claimTokenAddress: "",
rounds: [
{
round: 1,
minTarget: "5",
maxTarget: "10",
duration: "259200",
startTime: "1614536991",
maxContribution: "2",
minContribution: "1",
},
{
round: 2,
minTarget: "2",
maxTarget: "2",
duration: "459200",
startTime: "1615785715",
maxContribution: "4",
minContribution: "1",
}
]
}
```
1 haus = 7 loot
##### raging
- [x] better meta with rounds
- [x] display status from metadata
- [x] get current for display and progress bar
- [x] closes/starts calc
- [x] page set up - has contributed or not
- [x] check eligbility
- [x] contribute
- [x] correct network checks
- [x] tribute input to only do whole numbers + min/max enforcement
- [ ] update kyd list
- [x] checkout side window states - before/after
- [x] post contribute
- [x] claim states
- [ ] claim/rage quit
155 dai min at 7.77 haus per dai
7770 dai min
display haus or loot before purchase?
how calc current contributions - all matching loot props i guess - need date filter?
before
// double check outsude window blocks the form
// extra bot checks on sponsor
// dao metadata
save xdai burner
spec on fields
//
short vote - 1 hour
long grace - 1 hour
period duration - 2 minutes
wrapped xdai
haus
few of us
- 1 share each
hide it
//
cco dao
tokens
0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d
0xb0c5f3100a4d9d9532a4cfd68c55f1ae8da987eb
summoners
0x83aB8e31df35AA3281d630529C6F4bf5AC7f7aBF 1
0xced608aa29bb92185d9b6340adcbfa263dae075b 1
0xd26a3f686d43f2a62ba9eae2ff77e9f516d945b9 1
0x7136fbddd4dffa2369a9283b6e90a040318011ca 1
0x68d36dcbdd7bbf206e27134f28103abe7cf972df 1
0x6dc43be93a8b5fd37dc16f24872babc6da5e5e3e 1
0x15c6ac4cf1b5e49c44332fb0a1043ccab19db80a 1
start 3/15 00:00
claim start start + 14 days
```json
{
tributeToken: "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",
network: 'xdai',
ratio: 1,
raiseStartTime: "1615809600",
claimPeriodStartTime: "1617062400",
claimTokenValue: 8.88,
claimTokenSymbol: 'HAUS',
claimTokenAddress: "0xb0C5f3100A4d9d9532a4CfD68c55F1AE8da987Eb",
rounds: [
{
round: 1,
minTarget: "500000",
maxTarget: "1111110",
duration: "345600",
startTime: "1615809600",
maxContribution: "5000",
minContribution: "50",
},
{
round: 2,
minTarget: "500000",
maxTarget: "1111110",
duration: "259200",
startTime: "1616155200",
maxContribution: "100000",
minContribution: "50",
}
]
}
```
8am est monday
4 days - round 1
claiming time
8am est tues/weds the next week
test
buy back
```json
{
tributeToken: "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",
network: 'xdai',
ratio: 1,
raiseStartTime: "1615499278",
claimPeriodStartTime: "1615669899",
claimTokenValue: 4,
claimTokenSymbol: 'HAUS',
claimTokenAddress: "0xb0C5f3100A4d9d9532a4CfD68c55F1AE8da987Eb",
rounds: [
{
round: 1,
minTarget: "15000",
maxTarget: "20192",
duration: "86400",
startTime: "1615499278",
maxContribution: "5000",
minContribution: "100",
}
]
}
```
tributeToken: "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",
network: 'xdai',
ratio: 1,
raiseStartTime: "1615499278",
claimPeriodStartTime: "1615669899",
claimTokenValue: 4,
claimTokenSymbol: 'HAUS',
claimTokenAddress: "0xb0C5f3100A4d9d9532a4CfD68c55F1AE8da987Eb",
minTarget: "15000",
maxTarget: "20192",
duration: "86400",
startTime: "1615499278",
maxContribution: "5000",
minContribution: "100",
```json
{
tributeToken: "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d",
network: 'xdai',
ratio: 1,
raiseStartTime: "1615499278",
claimPeriodStartTime: "1615669899",
claimTokenValue: 4,
claimTokenSymbol: 'HAUS',
claimTokenAddress: "0xb0C5f3100A4d9d9532a4CfD68c55F1AE8da987Eb",
round: 1,
minTarget: "15000",
maxTarget: "20192",
duration: "86400",
maxContribution: "5000",
minContribution: "100",
}
```