A hot custodial Ravencoin wallet.
Never use mainnet against a public or hosted RPC. This wallet sends private keys to raven_url when it signs (signrawtransaction). Mainnet (network: "rvn") is allowed only against a Ravencoin node you fully operate. Public endpoints such as ting.finance are for testnet only.
Requires Node.js 22 or later.
Clone the git repo git clone https://github.com/ravenrebels/multiwallet.git
cd ./multiwallet
npm install
(builds client gui)
npm run build
Copy the example and start the server. If config.json is missing, the app creates the same testnet defaults on first run.
cp config.example.json config.json
The example uses the public Ravencoin testnet RPC at ting.finance:
- network:
rvn-test - raven_url:
https://rvn-rpc-testnet.ting.finance/rpc - raven_username / raven_password:
anon/anon(the client always sends Basic auth; this public endpoint does not need real credentials)
mode can be RAVENCOIN_AND_ASSETS, ASSETS, or SOME_ASSETS. With SOME_ASSETS, set assets to the token names the GUI should show.
Do not point mainnet at ting.finance or any other public RPC. The process refuses known public hosts when network is rvn.
For mainnet set:
- network:
rvn - raven_url: your own node, for example
http://127.0.0.1:8766 - raven_username / raven_password: the
rpcuser/rpcpasswordon that node
Required for mainnet. Optional on testnet if you prefer your own indexed Raven Core instead of ting.finance.
On testnet, raven_url is typically http://127.0.0.1:18766. Set raven_username / raven_password to match rpcuser / rpcpassword.
The node needs extra indexes. Example raven.conf:
server=1
testnet=1
onlynet=ipv4
regtest=0
listen=1
#Maintains the full transaction index on your node. Needed if you call getrawtransaction. Default is 0.
txindex=1
#Maintains the full Address index on your node. Needed if you call getaddress* calls. Default is 0.
addressindex=1
#Maintains the full Asset index on your node. Needed if you call getassetdata. Default is 0.
assetindex=1
#Maintains the full Timestamp index on your node. Default is 0.
timestampindex=1
#Maintains the full Spent index on your node. Default is 0.
spentindex=1
#Username and password - You can make this whatever you want.
rpcuser=secret
rpcpassword=secret
#What IP address is allowed to make calls to the RPC server. If youre running the wallet on the same machine youre
#developing on, this is fine. If not, you need to put the IP address of the machine CALLING the node here.
rpcallowip=127.0.0.1
dbcache=4096
upnp=1
npm run serve
Server is now running on http://localhost:80
You can change port by setting env variable PORT.
So running
PORT=8080 npm run serve
will start the server on port 8080