# Technical Implementation

### Relationship Diagram

<figure><img src="/files/poSnT74PtMlSMnkP0FA0" alt=""><figcaption></figcaption></figure>

#### **SecondSwap\_Marketplace**

* Primary interface for users to interact with the protocol
* Manages listings, purchases, and token transfers
* Coordinates between vesting management and trading functionality
* Maintains list of supported payment tokens
* Delegates fee calculations and settings to MarketplaceSetting

#### **SecondSwap\_MarketplaceSetting**

* Configuration hub for marketplace parameters
* Manages fee structures (buyer, seller, referral fees)
* Controls marketplace freeze functionality
* Handles penalty fees for early unlisting
* Single source of truth for marketplace configuration

#### **SecondSwap\_VestingManager**

* Orchestrates vesting operations across multiple vesting contracts
* Tracks user allocations and vesting settings
* Manages sell limits and transfer restrictions
* Intermediary between Marketplace and individual StepVesting contracts

#### **SecondSwap\_StepVesting**

* Implements core vesting logic for a specific token
* Manages vesting schedules and token distributions
* Handles token transfers between parties
* Maintains individual vesting records per address

#### **SecondSwap\_Whitelist**

* Manages access control for private sales
* Tracks whitelisted addresses
* Controls maximum whitelist capacity
* Owned by the lot creator (seller)

#### **SecondSwap\_WhitelistDeployer**

* Factory contract for creating whitelist instances
* Deploys new whitelist contracts for private sales
* Links whitelist contracts to marketplace listings

#### **SecondSwap\_VestingDeployer**

* Factory contract for creating vesting instances
* Maps tokens to their owners
* Deploys new vesting contracts with specified parameters
* Manages vesting contract initialization


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.secondswap.io/technology-and-safety/technical-overview/technical-implementation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
