# 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