Convenience libraries simplify the creation of specific user interface elements, some entirely manage the user account onboarding, and others give you a variety of methods of interacting with smart contracts, for a variety of API preferences, from promises, to callbacks, to strong types, and so on.

The provider API itself is very simple, and wraps Ethereum JSON-RPC (opens new window)formatted messages, which is why developers usually use a convenience library for interacting with the provider, like ethers (opens new window)web3.js (opens new window)truffle (opens new window)Embark (opens new window), or others.

From those tools, you can generally find sufficient documentation to interact with the provider, without reading this lower-level API.