# DAG Storage Layer
## Event Block structure
Event block (or simply DAG Event) represent completed representation of event that is main part of DAG chain topologic.
#### Main components:
Multisig Event creators Hashes [32]u8
`creator: [Hash]`
Current Height
`height: u128`
Graph of parent Nodes (Hashes)
`parents: [Hash]`
Lamport timestamp for Avalanche consensus
`lamport_timestamp: u64 `
Event Transactions
`transactions: [Data]`
Event Hash
`hash: Hash`
Map of signatures for current Event that including Multisig flow
`signatures: HashMap[Hash, Signature]`
Current Frame of Events
`frame_number: u64 `
#### Event block example:
```
{
creator: [
"2b162a7cd20653f12760abf517cdeffa",
"3c162a7cd20653f12760abf517cda5f1"
]
height: 20041,
parents: [
"5d162a7cd20653f12760abf517cdeffa",
"8a162a7cd20653f12760abf517cda5f1"
]
lamport_timestamp: 155333126,
transactions: [{
hash: "8a162a7cd20653f12760abf517cda1f4",
signature: "90a62a7cd20653f12760abf517cda1f4",
type: "Deploy",
file_hash: "ac02fa7cd20653f12760abf517cda101"
}],
hash: "13a62a7cd20653f12760abf517cda5f3",
signatures: [{
signer: "03c62a7cd20653f12760abf517cda5f2",
signarure: "10c62a7cd20653f12760abf517cda5f0"
}],
frame_number: 1052
}
```
## DAG Frame record
DAG Frame is part of Events for finilizing Event Block by Avalanche Consensus
#### Frame structure
`events: [FrameRecord]`
and single `FrameRecord` is:
Event Hash
`hash: Hash`
Lamport time of Event
`lamport_time: u64`
#### Frame example:
{
events: [{
hash: "a23653287654ab216cd3125753212341",
lamport_time: 3441
}]
}
## DAG Storage
Storage save basic data:
* Events
* Frames
for Frame key/value property is:
* `key` - Frame number
* `value` - Specific serialized Frame data
for Evene key/value property is:
* `key` - Hash of Event
* `value` - Specific serialized Event data