Cardano-node rewards not added to available balance

I have a node delegating for staking. The node has received some rewards but they aren’t accesible as they are never added to the available balance. It has been a couple of months since first reward and it is not accesible yet. This is the wallet info returned by the node API:

{…, “state”=>{“status”=>“ready”},
“balance”=>{“reward”=>{“quantity”=>1200403, “unit”=>“lovelace”},
“total”=>{“quantity”=>107200403, “unit”=>“lovelace”},
“available”=>{“quantity”=>106000000, “unit”=>“lovelace”}},
“name”=>“stake_wallet”, “delegation”=>{“next”=>,

“tip”=>{“height”=>{“quantity”=>5285190, “unit”=>“block”},
“time”=>“2021-02-01T10:33:11Z”, “epoch_number”=>245,
“absolute_slot_number”=>20609300, “slot_number”=>132500}}

Does anyone knows how to access to the rewards using cardano-node and the rest API?


U need to withdraw the rewards

Perhaps u will need to adapt the commands for Allegra era


Hi, Thanks for the info! So it is cardano-cli what should be used to create the transaction. I have been checking the REST API and seems that its is not possible to create the transaction with the from and to address using it. From the REST API you can only select the origin wallet and the destination address. I’ll try with the cardano-cli command

I have followed the steps in the document and what I see is that this is to create staking nodes but it is not useful for delegation. At least when the delegation has been done using the cardano-wallet rest join api method: Cardano Wallet Backend API Documentation

When I try to delete the delegation via api it warns about the unspoiled rewards and doesn’t allow stop delegation

curl -X DELETE http://localhost:8090/v2/stake-pools/.../wallets/.../ -H “Content-Type: application/json” -d ‘{“passphrase”:"…"}’
{“code”:“non_null_rewards”,“message”:“It seems that you’re trying to retire from delegation although you’ve unspoiled rewards in your rewards account! Make sure to withdraw your 1489690 lovelace first.”}

I don’t know if any Cardano developer can bring some light about delegating using cardano-wallet api

The developer of Cardano Wallet gave me the solution answering this GitHub issue:

Basically, a transaction to send the rewards to an address in the wallet adding the withdrawal field is enough:

curl -X POST http://localhost:8090/v2/wallets/..../transactions/ -H “Content-Type: application/json” -d ‘{“passphrase”:"…", “payments”: [{“address”:"…", “amount”: {“quantity”: 1489690, “unit”: “lovelace”}}], “withdrawal”: “self”, “time_to_live”: { “quantity”: 600, “unit”: “second” }}’