---
# System prepended metadata

title: SDK design

---

# SDK design

## General stuff

### Data structures

`web3` is strange, returns both an `Array` object and an `Object` object. You can index the structures by using positional arguments (`result[]`) but also with `result.name`.

---

## On chain

### Adapters

Adapters is a generic registry for assets of various type. Each adapter _adapts_ a particular service of the yearn protocol to a common interface.

- **V2 adapter**
- **V1 adapter**
- **IronBank adapter**
- ...

adapters also provide user specific positions for a particular vault or for the entire adapted service.

### Registry of adapters 

> aka: Yearn Lens

Lens is a an _adapter_ for adapters, aggregating assets from all the adapters.


### "Oracle"

Oracle provides _not quite precise but still useful_ pricing between tokens, using swap services. Oracle will be responsible for providing a TVL and for price normalization

## Off chain

### APY calcs