An Assurance Contract is a contract of the form "I commit to X if Y other people do the same". for example, "I commit to come to a protest if 100K other people make the same commitment". if less than 100K sign this contract, it has no effect. if 100K or more sign it, it goes into effect and everyone who signed it is expected to come to the protest.
Assurance Contracts, at least in theory, are useful coordination tools for problems where collective action is needed and individual actions is for some reason risky or not worth it for the individual if they end up doing it alone or as part of a too small group.
There's has been much discussion on LessWrong about creating software tools that let people coordinate with assurance contracts. there were already a few similar attempts outside of the community, but it is generally agreed on LW that these tools aren't good enough yet....