-
Notifications
You must be signed in to change notification settings - Fork 30
Description
🧠 Task: Exploring Smart Accounts as Modular Signers for Trustless Work Escrows (v1)
1️⃣ Context (What & Why)
This task explores how OpenZeppelin Smart Accounts for Stellar can introduce modular authorization and policy-based signing into the Trustless Work escrow ecosystem.
The goal is to evaluate whether Smart Accounts can act as escrow role signers (Marker, Approver, or Releaser) — enabling features like multisig approvals, automated restrictions, and agent-controlled actions without exposing private keys.
How it fits:
- Trustless Work escrows assign on-chain roles (Marker, Approver, Releaser, etc.) to specific Stellar addresses.
- These roles currently sign transactions using private keys.
- Smart Accounts (Soroban contracts) allow those same roles to be contracts with programmable authorization, expanding flexibility and security for platforms, enterprises, and agentic systems.
🔍 This is an independent exploration within Trustless Work’s modular signer initiative — running in parallel to the AI Agent Signer project.
2️⃣ Functional Scope (v1)
Goal:
Deploy and test an OpenZeppelin Smart Account on Stellar Testnet and assign its contract ID to one of the roles in a Trustless Work multi-release escrow.
Validate that the Smart Account can successfully authorize an escrow action (e.g., milestone update, approval, or release) according to its internal policy.
Main actions:
-
Review and deploy a Smart Account contract using OpenZeppelin’s official Stellar library:
👉 https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/accounts -
Configure its authorization policy — for example:
- Allow only
approve_milestonecalls on a Trustless Work escrow contract. - Enforce multisig or owner thresholds if supported.
- Allow only
-
Create a multi-release escrow in the Backoffice and assign the Smart Account’s contract ID as one role.
-
Execute an escrow action through the API or Backoffice and observe whether the Smart Account authorizes the operation.
-
Document results, challenges, and recommendations for deeper integration.
Reference documentation:
- OpenZeppelin Smart Accounts (Stellar): https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/accounts
- Trustless Work API: https://docs.trustlesswork.com/trustless-work/api-reference
- Escrow Lifecycle: https://docs.trustlesswork.com/trustless-work/core-concepts/escrow-lifecycle
- Viewer dApp: https://viewer.trustlesswork.com/
3️⃣ Inputs & Outputs
Inputs:
- Smart Account configuration (owners, threshold, allowlist, etc.)
- Escrow ID and assigned role
- Escrow action (approve, update, or release)
Expected Outputs:
- Transaction hash confirming a successful on-chain action
- Notes on whether the Smart Account’s policy was respected
- Summary of compatibility or integration gaps observed
4️⃣ Non-Goals
- No changes to the Trustless Work backend or API.
- No frontend or SDK modification required.
- No AI or agent logic — this task focuses purely on Smart Account contract interactions.
- Testnet only; no production deployment.
5️⃣ Deliverables
-
A concise README.md that includes:
- Steps to deploy and configure the Smart Account.
- Description of the policy rules used.
- Escrow configuration and test scenario.
- Transaction results (hash + link to Viewer).
- Observations on integration behavior.
-
Optional diagram:
Smart Account → Trustless Work API → Escrow Contract → Stellar Network.
6️⃣ Acceptance Criteria
✅ Smart Account deployed successfully on Stellar Testnet.
✅ Contract ID assigned as a valid escrow role in Trustless Work.
✅ At least one escrow action (approve, update, or release) successfully executed and verified on-chain.
✅ README includes setup, findings, and policy notes.
✅ No secrets or private keys committed.
7️⃣ Security Checklist
- Operate on Stellar Testnet only.
- Use non-sensitive demo keys.
- Clearly document policy restrictions that enforce least privilege (specific contracts & methods).
- Verify that unauthorized calls fail as expected.
- Note any security improvements Smart Accounts provide over key-based signing.
8️⃣ Bonus (Optional Exploration)
- Test multisig policies or timelocked approvals if supported by the OpenZeppelin module.
- Propose a lightweight policy schema for Trustless Work roles (e.g.,
role.kind = smart). - Assess how Smart Accounts could work with the Viewer or Indexer for better visibility.
- Explore interoperability with the Server-Side Signer and AI Agent Signer tasks.
9️⃣ Verification / Test Plan
- Deploy the Smart Account following OpenZeppelin’s documentation.
- Record its contract ID and policy.
- Assign that contract ID to a role in a Trustless Work escrow created via Backoffice.
- Attempt a permitted action (e.g., approval).
- Verify in the Viewer or API that the action was executed and logged.
- Attempt an unpermitted action (should fail per policy).
- Document all observed behavior.
🔗 Helpful References
- Trustless Work Docs → https://docs.trustlesswork.com/
- Backoffice → https://dapp.trustlesswork.com/
- Viewer → https://viewer.trustlesswork.com/
- OpenZeppelin Stellar Smart Accounts → https://github.com/OpenZeppelin/stellar-contracts/tree/main/packages/accounts
🧩 Notes
- This is a stand-alone research and implementation task within Trustless Work’s modular signer initiative.
- Insights will inform future experiments on policy-driven signing, compliance automation, and enterprise-grade role management.
- Keep findings concise, reproducible, and well-documented to guide subsequent contributors.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status