The contribute module was created in order to solve the problem of allowing users to collectively "fund" a node. The idea is that an administrator enables 'contributions' to be given to certain node types. Then users, who have a balance, are able to contribute up to their whole balance (or a maximum value as set by the administrator) to fund the node. When the node reaches its budget, a module can react by implementing
You can also list all contributions, or all nodes that receive contributions.
This is still in alpha stage, I don't see why the API would have to change other than adding functions, but I can't make any promises.