RPIP-32 - Stake ETH on behalf of node

This is a discussion thread for RPIP-32.

A proposal to enable an independent address to fund a registered node with ETH. Subsequently, the node can utilise this ETH to make deposits, without having direct access to the ETH.


Do you want to clarify whether the withdrawal address can also still fund the node account balance as if it weren’t the withdrawal address (just like anyone else)? (In addition to the new proposed power of funding the node with ETH-to-be-deposited-as-minipools-or-only-withdrawn-by-me.)

1 Like

If I understand correctly, yes I believe we should clarify whether it is just the withdrawal address that can fund the node or any address? Is that what you mean?

We currently have it coded that any address can fund the node using this feature, but only the withdrawal address can withdraw the unused ETH.

The only consideration we have come up with to lock the deposit feature to the withdrawal address is, in case, someone accidentally sends ETH to the wrong node.

We are erring on the side of making it open for any addresses to deposit to support flexibility.


Ok cool. Your current implementation sounds good to me. Just clarify that it’s permissionless to deposit in the spec.


Moving this to sentiment poll.

  • Support moving to vote; I think this proposal is great!
  • Support moving to vote; I think this is “good enough”
  • Undecided; I have a specific question I’d like clarified in the comments below
  • Undecided; other
  • Oppose moving to vote; I have a specific issue I’m mentioning in the comments below
  • Oppose moving to vote; other
0 voters
1 Like

If a non-associated address funds a node, is the Node Operator unable to control those funds outside of node management? As in, the non-associated address is the only address that can receive the funds (and rewards) after withdrawal? Or, once ETH is staked on behalf is executed, the ETH is now the same as the node’s own ETH?

1 Like

If a non-associated address funds a node, the node operator can only stake those funds. On reward distribution or withdrawal, the funds are sent to the node’s withdrawal address.

By default this is the node address but it could also be set to the non-associated address. In that case, a non-associated address would need to ensure that the withdrawal address is set before they fund the node. Once the withdrawal address is set, it can only be changed by the withdrawal address.

Hope that answers the question.

This RPIP has been moved to Review in preparation for finalisation.

Please provide any last community feedback here.


Reviewed, lgtm. Note the second bullet in the spec doesn’t have anything concrete in it and is just explanatory (I think the separate tracking is required to enable later concrete bullets).

I agree but as you said it provides some context for the other bullets.

1 Like

Voting in favor here as well- the new mechanic helps separate the role of node operator from capital provider, which will improve protocol composability

  • As someone who wants to supply ETH to a node for staking, I want the supplied ETH to be accounted for separately from the node’s own funds

I did not understand what the purpose of this bullet was at first, but then from reading the forum it seems to be that (Node-funded ETH) is allowed to do any function, while (External-funded ETH) is ONLY allowed to be staked.

Am I correct with that interpretation?

Staked or clawed back by the eth withdrawal address, yes.