---
# System prepended metadata

title: DAG Storage Layer

---

# 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
