See the work
Roles are public NFTs. Several hats means several role NFTs, not a private agreement.
Roles, pay, and access in one place
DAOs lose contributors because responsibilities are informal, every payment needs a vote, and access is granted by hand. PayRole makes each role a public, non-transferable NFT with its own NEP-141 salary, delegated minting, and role-gated access. Newcomers can see what to do and what it pays; contributors get paid without recurring votes.
The contributor graph is the product: public responsibilities, predictable pay, and access that follows the role instead of a manual spreadsheet.
Roles are public NFTs. Several hats means several role NFTs, not a private agreement.
Each role streams a NEP-141 salary per interval. More roles earn more, automatically.
Salaries draw from the contract's payroll budget, never the DAO treasury directly.
Role owners can add or remove contributors without a DAO-wide vote for every change.
Contracts check has_role; Web2 apps sign in through OIDC with the same role.
Burning a role stops pay and revokes access immediately, with pending salary paid by default.
The factory creates {name}.{factory}, deploys the wasm, and initializes the contract with the owner you choose. The owner should be the DAO or Trezu account that governs roles and the payroll budget.
Scans the factory registry and verifies each child's live owner_id(). From here the DAO creates public roles, sets per-role salaries, delegates role owners, tops up the payroll budget, and retires contributors.
Shows each role membership, the time until the next payout, the claimable amount, and a claim button. Pay is guaranteed by the role, not by a recurring vote. Enter any address or use the connected wallet.
Sign in with your NEAR wallet through the OpenID Connect provider, then see which access labels your live role NFTs grant. Web2 apps get the same role the DAO manages on-chain, without a separate password or manual access list.
Contract owners can map roles to labels in Owned contracts → Contract administration → OIDC access labels. The mapping is stored locally in this browser; the role check itself is always live on-chain. If no labels are configured, the page uses role names as sample access labels.