Skip to main content

Bonds and permissions

PressChain separates who an identity is, which role it holds, whether its economic bond is active, and whether it is permitted to perform a specific action. Applications should keep those checks separate too. A connected wallet is not automatically an Author. An Author role does not automatically make someone the manager of every Capsule. An active bond does not bypass contributor or outlet authority.

Current testnet bond floor

These are current V3 testnet definitions. Do not present them as final mainnet economics unless a mainnet authority manifest approves the same values.

Bond versus fee

A bond is persistent economic stake associated with eligibility or accountability. A fee is an economic cost associated with an action. A funded action transfers or escrows value for the action itself. Treating all three as “gas” obscures what the user is actually authorizing. For example:
  • role.activate is a bond action.
  • capsule.publish is classified as standard and requires an active bond for publishing roles.
  • bounty.create is funded because the bounty requires actual funding.
  • challenge.open is elevated and also requires an active bond.
Network gas is an additional execution cost and should be shown separately when possible.

Permission is contextual

The V3 evidence registry provides a clear example. Canonical evidence can be attached by the Capsule author, a registered contributor or protocol administration. A user can have an Editor role and still lack the Capsule relationship required by that contract path. The contributor registry similarly permits its Capsule manager path to the Capsule author or contract admin. Share accounting is enforced independently. That is why applications should build an action preflight object rather than a single isEditor boolean.

Do not trust the client as enforcement

Preflight exists to make the user experience understandable. The authoritative contract or service still validates the transition. If your application hides a button from an unauthorized user, that is helpful. If the underlying transaction succeeds for the same unauthorized user through a different client, the permission model is broken.

Withdrawals and cooldowns

Role bond withdrawal is classified as a public economic action with a micro fee and a cooldown requirement. Applications should represent a withdrawal as a lifecycle, not an instant toggle. A useful UI distinguishes requested, cooling down, claimable and completed states if those states are exposed by the active bond implementation.

Economic values as configuration

Mainnet fee amounts are intentionally not inferred from testnet policy. Keep amount resolution out of button components.
This lets the same application code understand the stable action semantics while an approved network manifest supplies environment-specific amounts.

Permission UX

When an action is blocked, explain the actual missing condition:
  • “Connect PressKey” for identity
  • “Switch to PressChain V3 testnet” for network
  • “Activate Journalist role” for role state
  • “Top up your role bond” for bond state
  • “Only the Capsule author or an attached contributor can add official evidence” for relationship authority
Specific errors make the protocol legible. They also reduce the temptation to create application-only exceptions that drift away from the chain rules.