How to build a bitcoin delegation server? Actually, I know there are already have blockchain.info and its own api. But I want to build my own server which can provide basic API like:



Generate a wallet by use password and username.


User can login/logout(Optional)


User can do transaction (send/receive to/from someone's address)



But, I have google for a while. The only way to create a wallet is configure the bitcoin.conf before run the bitcoind server. I don't know how can this works, I know there are also a way call multisig, But I don't know how to connect it with the wallet. I mean how to make each user has his/her own wallets.

Anyone help?
Let's break it down a little.

Things you need a node for:


Receiving new transactions and blocks
Indexing transactions 
Building transactions
Broadcasting transactions


Things you don't need a node for:


Generating keys
Signing transactions


You could, in theory, just build a program that generates your keys and multisig redeem scripts, and converts them to addresses for your users. Then, you can use insight or blockchain.info or any one of several explorers to look up transactions for the addresses you generate, and build outgoing transactions.

Once you have the outgoing transaction, your program can sign it with the keys you previously generated, and then broadcast it via an explorer API.

Alternatively, you could run your own bitcoind node, and index incoming transactions yourself.

A wallet and a node are two separate concepts. Bitcoind can act as both, but it's core function is that of a node. Many people run bitcoind with absolutely no keys on it, and use light clients like Electrum or hardware wallets to store their actual BTC.