TalentLayer Documentation
  • 👋Introduction
    • Value Proposition
    • Options for Integration
      • On-Demand Integration
      • Native Integration
    • TalentLayer's Functions
      • PlatformID
        • Fees & Economics
      • TalentLayerID
      • Reviews
      • Services
      • Escrow and Dispute
        • Dispute Workflow
        • Arbitration
          • Kleros Arbitration
          • Platform Managed Arbitration
    • Current Network Liquidity
    • Decentralization
  • ⚙️Technical Guides
    • Web 3 SDK & API
    • StarterKit Template
    • Technical Schemas
    • Network Support
    • Lower-Level Guides
      • Smart Contracts
        • Deployments
        • TalentLayerPlatformID.sol
        • TalentLayerID.sol
        • TalentLayerService.sol
        • TalentLayerReview.sol
        • Escrow & Dispute Contracts
      • The Graph
        • Introduction
        • Querying from an application
        • Queries examples
        • Implementing the pagination
      • Metadata
      • Third-Party Modules
        • Lens Protocol - Social
        • XMTP - Messaging
        • Sismo - Privacy
        • Iexec - Web3Mail
      • Messaging
        • Integrating XMTP
      • Standards
        • ERC-792: Arbitration standard
        • ERC-1497: Evidence Standard
      • How-To Guides
        • How to implement minting TalentLayer IDs?
        • How to implement the service creation?
        • How to implement the proposal creation?
        • How to implement the proposal validation?
    • Delegation
      • Meta Transaction
      • Delegate System
        • Setting
        • User workflow
        • Service creation example
        • How mintForAddress works
  • ⭐Get a Platform ID
  • 🧠Inspiration for Builders
  • 💬Contact The Team
  • 🦝Core Developer Guides
    • Subgraph Local Setup
    • Smart Contracts Local Setup
    • Advanced Documentation
    • Contract & Graph Deployment Guide
    • TalentLayer Improvement Proposals
    • Audit Report
Powered by GitBook
On this page
  • Intro to Delegation
  • Use Case of Delegation
  • Limits of Delegation
  • Delegation covering
  • TalentLayer's Implementation

Was this helpful?

  1. Technical Guides

Delegation

Intro to Delegation

Delegation enables platforms to take actions and cover costs of users interacting with their UI. This is possible thanks to meta-transactions - a standard way for a third-parties to send another user’s transactions on the original user's behalf.

Use Case of Delegation

The goal of the delegation system is to allow users to give the right to third party accounts (called delegates) to perform actions on the protocol on their behalf.

The main use cases can be:

  • covering user fees: platforms can perform actions on behalf of the users, covering their fees

  • account abstraction: platforms can abstract away the complexity of having to approve transactions for their users by taking those actions for them

  • plugins: users can delegate actions to plugins for automation, scheduling, smoother experience, etc..

This system can also achieve a much better UX for users. Once they have a TalentLayer ID, they only need to call one function to link a new delegate to their profile.

The delegate can now call functions for the user, who won’t have to send transactions or sign messages anymore.

Limits of Delegation

Delegates will only be able to perform actions that don’t touch user funds. Operations that involve user funds will have to be done directly by the user, both for security and technical reasons.

These operations are:

  • accept proposal making a deposit in the escrow

  • pay arbitration fee to raise dispute

The delegates are linked to a profile, so this means that they cannot be used to mint a TalentLayer id for a user.

Delegation covering

You can, when the delegation is activated, cover fees for the actions below

  • Mint a TalentLayerId for a user

  • Update profile data

  • Create a service

  • Create and update a proposal

  • Release and reimburse

  • Create a review

TalentLayer's Implementation

We have implemented a delegation system in contracts that the user interacts with:

  • TalentLayerID

  • ServiceRegistry

  • TalentLayerEscrow

  • TalentLayerReview

To support this, we've enabled:

  • tracking the list of delegates for each TalentLayer ID

    • this state will be stored in TalentLayerID and the other contracts will read from it

  • allowing users to add and remove a delegate

  • for each function that supports delegation: enabling checking whether the user is either the owner or a delegate of the involved profile

PreviousHow to implement the proposal validation?NextMeta Transaction

Last updated 1 year ago

Was this helpful?

⚙️