# Features

> MadelineProto can do everything official clients can do, and more!

MadelineProto can do everything official clients can do, and more!

* It allows you to do everything official clients can do, programmatically!

* It is [fully async](https://docs.madelineproto.xyz/docs/ASYNC.html)!

* *It can make and receive voice and video calls, stream and record video chats and livestreams, and join end-to-end encrypted conference calls!* [See here for instructions](https://docs.madelineproto.xyz/docs/CALLS.html)

* It can be proxied (MTProxy, HTTP, socks5 and more)!

* It is very fast!

* It can be easily serialized!

* It featured update handling with callbacks or long polling!

* Easy to use wrappers to upload/download files and call mtproto methods

* Documentation for EVERY mtproto method! 

* Internal peer management: you can provide a simple bot API chat id or a username to send a message or to call other mtproto methods!

* You can easily login as a user (2FA is supported) or as a bot!

* Simple error handling!

* It is highly customizable with a lot of different settings!

* Bot API file id/object support (even for users)!

* A Lua binding

* A lua wrapper for td-cli scripts

* Secret chats

* MTProto 2.0

* PFS

* PFS in secret chats

* [Clickable inline buttons](https://docs.madelineproto.xyz/docs/INLINE_BUTTONS.html)!

<a href="https://docs.madelineproto.xyz/docs/REQUIREMENTS.html">Next section</a>
