Partial

Delegation

A delegation lets one identity act for another. Nobody ever signs with someone else's key: you sign with yours, for the company, under a grant the rules check.

A delegation records:

FieldMeaning
PartyWho is acted for (Acme Trading)
DelegateWho acts (you, or your accomplice)
Scope* for everything, a contract (std.business.payable), or one action (std.business.payable.Pay)
EndsAn optional end date: "it's like a job, it can end"

Where delegations come from

  • Creating an organisation or space gives its creator a full delegation (*).
  • At each start, Mandala makes sure you have one for yourself and your accomplice has one from you.
  • An owner of an organisation, an admin of a space, or a person for their own records can grant one. The grantor or the delegate can revoke it.

How it is checked

Twice. Mandala refuses before signing a read or an action for a party without a current covering grant, and says what to grant. Then the contract itself checks the grant: active, for that party, to that signer, with that scope, and not past its end. Each record keeps the delegation of its last action, so every receipt reads "Sam for Acme Trading, under delegation del-… (scope …, until …)".

Grant one today

Granting additional delegations is done through the API:

curl -X POST https://<your-node>/api/identities/acme-trading/delegations \
  -H 'content-type: application/json' \
  -d '{"scope": "std.business.payable", "ends_ms": 0}'

Coming soon — granting in words from Settings → People ("can answer the customer inbox, edit orders before dispatch; can't see payables"), checked against the contracts, with Face ID for sensitive grants.