Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/workflows/mintlify-validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Mintlify validate

on:
pull_request:
branches:
- main
workflow_dispatch:

permissions:
contents: read

concurrency:
group: mintlify-validate-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
mintlify-validate:
name: mintlify validate
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5

- name: Set up Nix
uses: cachix/install-nix-action@v31

- name: Run Mintlify validation
run: nix-shell --run 'cd docs-main && npx mint validate'
2 changes: 0 additions & 2 deletions docs-main/global-synchronizer/release-notes/splice.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ title: "Splice"
description: "Release notes and version history for Global Synchronizer software"
---

import ExternalSpliceMainSpliceRstCodeDocsSrcReleaseNotesYaml192 from "/snippets/external/splice/main/splice-rst-code-docs-src-release-notes-yaml-192.mdx";

{/* COPIED_START source="splice:docs/src/release_notes.rst" hash="9ece75a7" */}

## 0.6.6
Expand Down
103 changes: 69 additions & 34 deletions docs-main/integrations/wallet/proof-of-transfer.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ The Transfer Object can also be serialized into JSON format, as shown in the fol

While gRPC can be used, this guide assumes integration via the [DAML JSON API](/sdks-tools/api-reference/json-api).

To fetch update info from the participant node, query the following endpoint using the transaction's \`UpdateID\`: `GET /v2/updates/update-by-id`
To fetch update info from the participant node, query the following endpoint using the transaction's `UpdateID`: `GET /v2/updates/update-by-id`

### Locating the Transfer Object (By Transaction State)

Expand All @@ -59,19 +59,31 @@ If the update represents the creation of a transfer offer, look for a **Created*
- **Template:** `Utility.Registry.App.V0.Model.Transfer:TransferOffer`
- **Location:** Extract the Transfer Object directly from the `createArgument` of this event.

<div className="tabs">

.. group-tab:: JSON .. code:: JSON

```json
{
"createdEvent": {
"templateId": "...:Utility.Registry.App.V0.Model.Transfer:TransferOffer", "createArgument": { "operator": "operator::122...", "provider": "provider::122...", "transfer": { "sender": "issuer::122...", "receiver": "holder::122...", "amount": "2.0000000000", "instrumentId": { "admin": "...", "id": "INST" }, "requestedAt": "2026-03-01T13:58:32.626Z", "executeBefore": "2026-03-04T13:58:27.335Z", "inputHoldingCids": \["005152f0eae9..."\], "meta": { "values": { "splice.lfdecentralizedtrust.org/reason": "" } } } }

}

"createdEvent": {
"templateId": "...:Utility.Registry.App.V0.Model.Transfer:TransferOffer",
"createArgument": {
"operator": "operator::122...",
"provider": "provider::122...",
"transfer": {
"sender": "issuer::122...",
"receiver": "holder::122...",
"amount": "2.0000000000",
"instrumentId": { "admin": "...", "id": "INST" },
"requestedAt": "2026-03-01T13:58:32.626Z",
"executeBefore": "2026-03-04T13:58:27.335Z",
"inputHoldingCids": ["005152f0eae9..."],
"meta": {
"values": {
"splice.lfdecentralizedtrust.org/reason": ""
}
}
}
}
}
}

</div>
```

**Scenario B: The Transfer is Concluded**

Expand All @@ -86,19 +98,30 @@ If the update represents a concluded transfer (e.g., an accepted offer or a pre-

- **Location:** Extract the Transfer Object from the `choiceArgument` of this event.

<div className="tabs">

.. group-tab:: JSON .. code:: JSON

```json
{
"ExercisedEvent": {
"templateId": "...:Utility.Registry.V0.Rule.Transfer:TransferRule", "choice": "TransferRule_DirectTransfer", "choiceArgument": { "transfer": { "sender": "[auth0]()...::122...", "receiver": "[auth0]()...::122...", "amount": "12.0000000000", "instrumentId": { "admin": "...", "id": "INST" }, "requestedAt": "2026-02-24T16:27:33.139Z", "executeBefore": "2026-02-27T16:27:31.633Z", "inputHoldingCids": \["0000c37c6..."\], "meta": { "values": { "splice.lfdecentralizedtrust.org/reason": "" } } } }

}

"exercisedEvent": {
"templateId": "...:Utility.Registry.V0.Rule.Transfer:TransferRule",
"choice": "TransferRule_DirectTransfer",
"choiceArgument": {
"transfer": {
"sender": "auth0...::122...",
"receiver": "auth0...::122...",
"amount": "12.0000000000",
"instrumentId": { "admin": "...", "id": "INST" },
"requestedAt": "2026-02-24T16:27:33.139Z",
"executeBefore": "2026-02-27T16:27:31.633Z",
"inputHoldingCids": ["0000c37c6..."],
"meta": {
"values": {
"splice.lfdecentralizedtrust.org/reason": ""
}
}
}
}
}
}

</div>
```

**Scenario C: The Transfer Offer is Rejected or Withdrawn**

Expand All @@ -111,19 +134,31 @@ If the update represents an offer that was ultimately rejected or withdrawn, loc
3. **Fetch the Original Offer:** Query the JSON API using the extracted Contract ID: `GET /v2/events/events-by-contract-id`
4. **Location:** Extract the Transfer Object from the `createArgument` of the original transfer offer (transfer instruction) returned by this secondary query.

<div className="tabs">

.. group-tab:: JSON .. code:: JSON

```json
{
"CreatedEvent": {
"templateId": "...:Utility.Registry.App.V0.Model.Transfer:TransferOffer", "createArgument": { "operator": "operator::12209b02d...", "provider": "provider::1220c07e7...", "transfer": { "sender": "issuer::1220c07e7...", "receiver": "holder::1220c07e7...", "amount": "2.0000000000", "instrumentId": { "admin": "registrar::1220c07e7...", "id": "INST" }, "requestedAt": "2026-03-01T13:58:32.626Z", "executeBefore": "2026-03-04T13:58:27.335Z", "inputHoldingCids": \["005152f0eae9..."\], "meta": { "values": { "splice.lfdecentralizedtrust.org/reason": "" } } } }

}

"createdEvent": {
"templateId": "...:Utility.Registry.App.V0.Model.Transfer:TransferOffer",
"createArgument": {
"operator": "operator::12209b02d...",
"provider": "provider::1220c07e7...",
"transfer": {
"sender": "issuer::1220c07e7...",
"receiver": "holder::1220c07e7...",
"amount": "2.0000000000",
"instrumentId": { "admin": "registrar::1220c07e7...", "id": "INST" },
"requestedAt": "2026-03-01T13:58:32.626Z",
"executeBefore": "2026-03-04T13:58:32.626Z",
"inputHoldingCids": ["005152f0eae9..."],
"meta": {
"values": {
"splice.lfdecentralizedtrust.org/reason": ""
}
}
}
}
}
}

</div>
```

### Data Persistence and Pruning

Expand Down