Confused about the events happening during staking


Following actions took place and Im not sure what the status is now;

  1. Setup yoroi wallet for staking
  2. Test transaction sent and test stake of 9 ada to the ATLAS pool
  3. Sent another 9,5k ada to the same above wallet address
  4. I couldnt stake to atlas again so I chose Tera #3
  5. Checking my Yoroi dashboard again, but I only see Atlas pool. After I checked my wallet address via cardanoscan and saw that everything is staked to Atlas…?
  6. My last transaction (step 4) has an input of 6,82 ada and an output of 6,65…? What happened here

Concretely I have the following questions:

  1. Where the 9,5k ada I sent afterwards automatically staked because I already staked to Atlas with that specific address?
  2. If so, how could I still send 6,82 ada? I didn’t have any other ada

Wallet: addr1qys8554lx6czlgtmd0kcedfljwyk3r9mpaenqutcr9y7p5f0zud97e28027686s3wd5v9u76n9y0n82xuzv5tfvkm8xqtte5ea

Last tranaction:

Many thanks in advance

Cardano uses a UTxO (unspent transaction output) model as opposed to an account based model. On Cardano, your wallet can have many addresses and each address can contain UTxOs representing your assets (Ada or other tokens).

Your wallet on Cardano controls 2 keys:

  • Spending key
  • Staking key

The spending key controls your ability to spend your assets while the staking key is used to designate which stake pool you want to stake your Ada to.

When you stake your Ada, you sign a transaction that says you are designating your stake (your trust) in a particular stake pool. It is just a signed statement. There is a transaction fee and a deposit of 2 Ada to make this staking statement because it is recorded on the blockchain, but otherwise you do not send your Ada anywhere. Your Ada stays under your control managed by your wallet spending key. The deposit is returned to your wallet address if you chose to cease staking. Thus the net cost to stake is just the transaction fee of around 0.17 Ada to sign the staking statement.

If you change your mind and want to stake to another stake pool then you just pay another transaction fee to re-stake to the new pool but you don’t pay another deposit. The staking deposit is a blockchain wide deposit to enact staking for your entire wallet.

Wallets like Daedalus and Yoroi allow you to select a stake pool to stake to and then you sign the transaction that pays the deposit and blockchain transaction fee (approx 2.17 Ada in total). This stakes all the Ada in all addresses in your particular wallet to your selected stake pool forever. If you transfer more funds to your wallet in the future then these funds are automatically staked also without you having to do anything extra. Furthermore, all the staking rewards you earn through staking are also automatically re-staked to your chosen stake pool since these are also in your wallet.

Cardano has non-custodial staking. This means that there is no lock-up or transfer of your Ada from your control. There is also no possibility of slashing like can happen on other proof-of-stake blockchains.

Hopefully that explains how Cardano staking works better.

What wallet are you using?

Your Yoroi wallet should say that your wallet is staked to ATLAS stake pool.

But you can also confirm independently on a blockchain explorer. Go to:

You can cut and paste in any of your wallet addresses and check things.

Shows that your wallet is staked to “AtlasStakePool [ ATLAS ]”

See where it says “Delegated To”

It also shows your balance of 9,574.0 Ada.

Note that your wallet can have multiple addresses that it manages but the staking key is the same for all of these addresses. These addresses are not separate wallets, but rather just like sub-compartments in your wallet. A bit like how your actual physical money wallet can have different sections.

You don’t have to do anything further to stake your Ada since you are already staked to ATLAS stake pool. Any further Ada you transfer to your wallet or earn through staking rewards will automatically be staked.

Hopefully the balance is what you expected. Remember you don’t need to send your Ada anywhere in order to stake. Your Ada stays under your control by your spending key managed by your wallet software.

Also, never give your seed phrase to anyone. Ever!

Regarding the transaction:

If you enter this transaction into then it shows the input UTxO and the output UTxO. If you click on these then it will show you the details of both of these addresses. Note that both these addresses have the same staking key and show that the “Controlled Total Stake” is the same as your other wallet address. Thus these are all addresses managed by your wallet. They are just sub-compartments of your wallet.

Basically, you sent 6.652982 Ada to yourself and paid a transaction fee to do this.

When you use Yoroi and click on the Receive tab it will provide you with an unused address. If you receive funds to this address then Yoroi will recognise this address as now used and next time will give you a new address. This provides some security and privacy benefits (somewhat) and some extra abilities in the future can result from this design.

However, it is important to understand that all these addresses are still managed by your one master spending key created by your seed phrase. Yoroi will just keep creating new ones as you use them - there is no limit. Also all these addresses are part of your one wallet.

Your wallet only has one staking key. And, your wallet is already staked to ATLAS stake pool. All the Ada in all these addresses is already staked even as new addresses are created in the future since they will all have the one staking key.

Your ada was registered in the last pool but it takes a bit to make the change and update yoroi, be patient, the ada are always available in your wallet.

Many thanks for your responses and time. Much appreciated.

I can follow what you are saying, until this part. After my wallet automatically staked to the Atlas pool, I didn’t have any ADA left in my wallet. How could I make this transaction, where did these ADA come from?

Hi Miguel, what do you mean? According to our friends explanation to check the Staking key on my address, the funds are delegated to Atlas pool and not Tera #3 (which was the last stake I tried to make)

What do you mean by “didn’t have any ADA left”? And automatically staking is not possible. You always have to allow the delegation transaction.

When staking, you do not send any ADA away (apart from the deposit on the first transaction and the fees). They stay in your wallet and you can freely spent them, receive new ones, …

Staking is just a statement “all ADA in this wallet shall be staked with this pool”. Then, every five days, it is recorded, how many ADA are in that wallet at that specific point in time. That’s the stake for the epoch beginning five days later and the rewards are distributed 15 days later.

You stake key:

Was registered to AtlasStakePool #2 36 hours ago and then to AtlasStakePool 12 hours ago. That’s all. No delegation to Tera #3 in between.

This one is the change of stake delegation from AtlasStakePool #2 to AtlasStakePool. Any change of delegation will show up as a transaction from your wallet to your wallet with some additional data (the delegation) attached to it.

9 ADA coming in from the exchange:
Delegation to ATLAS #2:

9574 ADA coming in from the exchange:

Here’s the first misconception: You always stake everything in your wallet to the same pool. No need to decide for every incoming ADA, again. So, whatever you did to “choose” Tera #3 did not really lead to any transaction done on the chain. Probably, you just clicked on it in Yoroi, but nothing was really done.

You were probably confused and wanted to say “Yes, everything to ATLAS, please.”.
That was not necessary, since everything in the wallet is delegated automatically.
So, what you did was changing the delegation from ATLAS #2 to ATLAS.

Yes, in a way. Everyhing in the wallet is staked to the chosen stake pool. And there can be only one chosen stake pool.

That’s the second misconception: Staking does not send away. You currently have 9580 ADA in your wallet and can do whatever you want with it. And it’s all staked with ATLAS. And if you send 10k more, it will also be staked with ATLAS. And if you then send 15k elsewhere, the remaining 4580 ADA will be staked with ATLAS.

You only have to do anything if you want to change, to which pool the whole wallet should be staked/delegated. That’s normally done only every few weeks/months. It costs transaction fees and is not necessary if you are content with the rewards and/or like your pool (operator).

Changing several times in a period of five days does not make any sense at all. It’s only important, which pool is registered and how many ADA are in the wallet at an epoch boundary. Only then all the data are snapshotted and will be the basis for the rewards 15 days later (and for the stake pool operation between day 5 and day 10).