# Overview

Integrate directly with Gearbox contracts from your Solidity code. This guide covers on-chain integration patterns for smart contract developers.

## Prerequisites

* Solidity 0.8.x experience
* Familiarity with interface-based contract interaction
* Understanding of ERC-20 and common DeFi patterns

## What You'll Learn

| Topic              | Description                                                  |
| ------------------ | ------------------------------------------------------------ |
| Credit Accounts    | Contract discovery, CreditFacade, CreditManager interactions |
| Multicall Encoding | Build and execute multicalls in Solidity                     |
| Pool Operations    | Deposit, withdraw, and read pool state                       |

## Guide Structure

1. [**Credit Accounts**](https://docs.gearbox.finance/dev/solidity-guide/credit-accounts) - Contract discovery, ICreditFacadeV3, ICreditManagerV3 interfaces
2. [**Multicalls**](https://docs.gearbox.finance/dev/solidity-guide/multicalls) - MultiCall struct encoding, adapter calls
3. [**Pool Operations**](https://docs.gearbox.finance/dev/solidity-guide/pool-operations) - IPoolV3 deposit/withdraw, ERC-4626 functions

Note: Contract discovery patterns (AddressProvider, ContractsRegister) are covered in the Credit Accounts guide.

## Key Interfaces

```solidity
// Core interfaces you'll use
import {IAddressProviderV3} from "@gearbox-protocol/core-v3/contracts/interfaces/IAddressProviderV3.sol";
import {ICreditFacadeV3} from "@gearbox-protocol/core-v3/contracts/interfaces/ICreditFacadeV3.sol";
import {ICreditManagerV3} from "@gearbox-protocol/core-v3/contracts/interfaces/ICreditManagerV3.sol";
import {IPoolV3} from "@gearbox-protocol/core-v3/contracts/interfaces/IPoolV3.sol";
```

## When to Use Solidity Integration

| Use Case                      | Recommended        |
| ----------------------------- | ------------------ |
| On-chain protocol integration | Yes                |
| Building adapters             | Yes                |
| Composable strategies         | Yes                |
| Backend services              | No (use SDK Guide) |
| Frontend applications         | No (use SDK Guide) |

For TypeScript/JavaScript applications, see the [SDK Guide](https://docs.gearbox.finance/dev/sdk-guide-typescript/sdk-guide).

## Architecture Understanding

For conceptual background on how Gearbox works:

* [Credit Suite Architecture](https://docs.gearbox.finance/dev/concepts/credit-suite) - How Credit Managers, Facades, and Configurators work together
* [Pool Architecture](https://docs.gearbox.finance/dev/concepts/pools) - Lending pools and ERC-4626 compliance
* [Multicall System](https://docs.gearbox.finance/dev/concepts/multicall-system) - How multicalls execute and validate

***

## Detailed Guides

### Multicall Operations

Complete reference for each multicall operation with Solidity examples:

| Operation                                                                                                                    | Description                               |
| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| [Adding Collateral](https://docs.gearbox.finance/dev/solidity-guide/multicalls/multicalls/adding-collateral)                 | Transfer tokens to credit account         |
| [Debt Management](https://docs.gearbox.finance/dev/solidity-guide/multicalls/multicalls/debt-management)                     | Borrow and repay                          |
| [Updating Quotas](https://docs.gearbox.finance/dev/solidity-guide/multicalls/multicalls/updating-quotas)                     | Manage collateral quotas                  |
| [Withdrawing Collateral](https://docs.gearbox.finance/dev/solidity-guide/multicalls/multicalls/withdrawing-collateral)       | Remove tokens from account                |
| [Controlling Slippage](https://docs.gearbox.finance/dev/solidity-guide/multicalls/multicalls/controlling-slippage)           | Protect against price movement            |
| [Making External Calls](https://docs.gearbox.finance/dev/solidity-guide/multicalls/multicalls/making-external-calls)         | Interact with DeFi protocols via adapters |
| [Enabling/Disabling Tokens](https://docs.gearbox.finance/dev/solidity-guide/multicalls/multicalls/enabling-disabling-tokens) | Manage active collateral                  |
| [Updating Price Feeds](https://docs.gearbox.finance/dev/solidity-guide/multicalls/multicalls/updating-price-feeds)           | On-demand oracle updates (Pyth, Redstone) |
| [Collateral Check Params](https://docs.gearbox.finance/dev/solidity-guide/multicalls/multicalls/collateral-check-params)     | Optimize health checks with hints         |
| [Revoke Allowances](https://docs.gearbox.finance/dev/solidity-guide/multicalls/multicalls/revoke-allowances)                 | Security cleanup                          |

See [Multicalls Overview](https://docs.gearbox.finance/dev/solidity-guide/multicalls) for the diff pattern and complete encoding examples.

### Use Case Guides

Integration-specific guides for common development scenarios:

| Building             | Guide                                                                                                  | Focus                                                 |
| -------------------- | ------------------------------------------------------------------------------------------------------ | ----------------------------------------------------- |
| New DeFi Adapter     | [Adapter Development](https://docs.gearbox.finance/dev/solidity-guide/use-cases/adapter-development)   | AbstractAdapter, security patterns, diff functions    |
| Strategy Contract    | [Protocol Integration](https://docs.gearbox.finance/dev/solidity-guide/use-cases/protocol-integration) | Multicall building, access control, automation        |
| Core Extensions      | [Core Extension](https://docs.gearbox.finance/dev/solidity-guide/use-cases/core-extension)             | Extending core contracts, advanced customizations     |
| Liquidation Contract | [Liquidation Bots](https://docs.gearbox.finance/dev/solidity-guide/use-cases/liquidation-bots)         | On-chain liquidation, flash loans, keeper integration |
