The NCC packs many powerful features. On its own, the NCC is a thin client wallet while at the same time, is a webserver. It is a fast boot, browser based client that is independent of the NIS blockchain server. It gets connected to a server seamlessly (default need no configuration but this can be changed to suit) and one can transact immediately without having to wait. Separately, the NCC is also a webserver and allows a person who can program in any language to communicate with the NEM ecosystem via the JSON RESTful service that comes with the NCC. Inside the NCC, sits the NEM Core solution (reference document here) which can also be used to talk directly with the NIS. However, this is more complicated and needs the user to understand how to format messages and transactions to be sent out. With the NCC and the JSON RESTful service this is made simpler. Any programmer who is well versed in programming can do a lot with the NCC. These include:
1. Applications requiring configuring and signing multi-signature approvals
2. Initiating transactions
3. Sending messages
4. Sending Mosaics
5. Initiate/start/stop harvesting (mining)
6. Create new accounts
7. Manage accounts
The NCC, via the NEM core, is basically a window and gateway to NEM’s blockchain technology. The NCC, thus, allows simple to sophisticated applications to be programmed without ever needing to know how the NEM blockchain works, and in whatever language the programmer chooses that is JSON RESTful compliant.
Centralised smart contracts can therefore be easily achievable, without much payload to the blockchain. Although it can be contentious, smart contracts are better run and managed by central entities.
The NCC API can be used when you know you have a local NCC Wallet running on the local machine. The full documentation can be found here: https://github.com/NemProject/NemCommunityClient/blob/master/docs/api.md
Unlike the NIS API, the NCC API also allows you to sign transactions and messages directly, since NCC has direct access to a user's funds (albeit encrypted).