# Contracts

You just need to provide smart contract details, and Spock will start syncing the data. The data syncing time can vary depending on the number of wallets that have interacted with the contracts, the number of transactions, and the age of the contracts.

By providing smart contract addresses, you will unlock the majority of data points in Understand section, which includes:

## Let's explore some common scenarios related to the structure of smart contracts.

### Case #1

### Single Instance Contract

If there is one contract that handles all the transactions, then just provide the contract address and ABI. You can leave the ABI field blank if the contract is already verified on Etherscan.<br>

Example : \
Consider an example of the [Unipilot Staking](https://etherscan.io/address/0xc9256e6e85ad7ac18cd9bd665327fc2062703628) contract which handles all stake, un-stake, and reward redemption transactions.

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

### Case #2 &#x20;

### Several Contracts Deployed By An EOA

If there are multiple smart contract addresses associated with the same given ABI deployed by an EOA, you need to toggle the "several contracts deployed by an EOA" option to "Yes". This will prompt you to provide additional contract addresses as input separated by commas.\
\
Example:\
Let's consider an example of the [Compound cDAI](https://etherscan.io/address/0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643) market contract. In this case, we have multiple market contract addresses that correspond to the same cDAI ABI.

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

### Case #3&#x20;

### Several Contracts Deployed By A Factory

If the provided smart contract address is deployed by a factory contract, then you need to toggle the "several contracts deployed by a factory" field to "Yes". This allows us to retrieve the factory contract address, and other sibling contract addresses associated, and extract the data for the entire ecosystem.

Example : \
Let's consider the example of the [Uniswap v3 USDC/ETH](https://etherscan.io/address/0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640) pool contract. By toggling the "several contracts deployed by a factory" field to "Yes", you will be able to retrieve data for all Uniswap v3 pools.

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


---

# 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://spock-analytics.gitbook.io/introduction/configuration/contracts.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.
