Skip to content

docs: add PAS Quickstart and Architecture Overview#24

Closed
chariskms wants to merge 4 commits intomainfrom
ck/pas-initial-docs
Closed

docs: add PAS Quickstart and Architecture Overview#24
chariskms wants to merge 4 commits intomainfrom
ck/pas-initial-docs

Conversation

@chariskms
Copy link
Collaborator

No description provided.

@chariskms chariskms requested a review from manolisliolios March 5, 2026 08:25
### Approval Matching

Approvals are matched by **type identity** using `TypeName`. The approval set must be **exactly equal**
(same types, same count, same order via `VecSet` insertion) to the Policy's required approvals.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently, in v1, you can only have a single approval. I wonder if we should clarify this.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a callout clarifying that v1 only supports a single approval witness per action.

**Key insight**: Unlike SendFunds, the caller receives the funds and decides what to do with them
(burn, deposit elsewhere, etc.).

### UnlockFunds (System Exit)
Copy link
Collaborator

@manolisliolios manolisliolios Mar 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Closed Loop exit!

Maybe a warning that explains why this is a dangerous thing to allow.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renamed to "Closed-Loop Exit" and added a warning about assets leaving the system permanently with no further PAS restrictions.

Templates store pre-built Move Call commands structures for client-side automation. They allow the SDK
to construct the correct Move calls for resolution of actions without hardcoding package IDs and function signatures.

### Why Templates?
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the direction, I'd also highlight some benefits like the fact that there's no need for updating all clients when there's a change in the resolution for a given witness.

I'd also ask them to be cautious as this is ONLY an off-chain utility, but it enables SDKs to be built generic + support arbitrary rules. We should emphasize this, as this is part of the beauty of pas.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a callout emphasizing templates are purely off-chain and what makes generic SDK support possible. Also added a "key benefit" section about how updating a template on-chain means zero client-side changes.

└── Balance<MyCoin> stored via balance::send_funds(balance, chest_object_address)
```

Balances are **not** stored as fields on the Chest struct. They're stored as object balance
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should link the address balances docs in sui

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Linked to the Sui address balances migration guide. I didn’t find any other documentation besides the SIP.


---

## Versioning
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this needs to be part of the docs -- not really important for integrators

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the standalone section, moved a brief mention into the trust boundaries table under the UpgradeCap holder row.

request.approve(MyApproval());

// 4. Resolve — sends Balance to recipient chest
send_funds::resolve_balance(request, &policy);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd do pas::send_funds::resolve_balance to avoid confusion with framework send_funds

@chariskms chariskms closed this Mar 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants