Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New EDITOR section #415

Merged
merged 91 commits into from
Oct 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
6cabe29
new EDITOR section
nearnshaw Jul 26, 2024
98ad826
Merge branch 'main' into desktop-editor
nearnshaw Jul 26, 2024
548b0cf
fix links
nearnshaw Jul 29, 2024
215ab98
multiple edits
nearnshaw Jul 31, 2024
477cc9f
more additions
nearnshaw Jul 31, 2024
2f372ab
Merge branch 'main' into desktop-editor
nearnshaw Jul 31, 2024
728a791
fix link
nearnshaw Jul 31, 2024
ca35328
adjust image sizes and more
nearnshaw Jul 31, 2024
cdddab1
smart items as section
nearnshaw Jul 31, 2024
adabc58
reorder pages
nearnshaw Jul 31, 2024
1ab4992
expand more
nearnshaw Aug 1, 2024
9c20c03
publish scene - first iteration
nearnshaw Aug 2, 2024
7188163
fixes
nearnshaw Aug 2, 2024
12d7d36
retouch intro
nearnshaw Aug 2, 2024
00493f5
polish editor essentials
nearnshaw Aug 2, 2024
9741d0e
test
nearnshaw Aug 2, 2024
f97f10d
test 2
nearnshaw Aug 2, 2024
a7ba720
bigger titles
nearnshaw Aug 2, 2024
22de31c
bigger titles
nearnshaw Aug 2, 2024
f0900c1
interlinks
nearnshaw Aug 2, 2024
be4e527
overall diagram
nearnshaw Aug 7, 2024
b36b9d0
Merge branch 'main' into desktop-editor
nearnshaw Aug 13, 2024
d892182
fix links
nearnshaw Aug 14, 2024
66f04da
fix link
nearnshaw Aug 14, 2024
19fefaf
images
nearnshaw Aug 14, 2024
1a8dd04
test
nearnshaw Aug 14, 2024
c9f683f
title sizes
nearnshaw Aug 14, 2024
d860a9e
many renames and other changes
nearnshaw Aug 14, 2024
42119e2
feat: change h6 by h5
braianj Aug 15, 2024
26cce08
feat: update theme with heading
braianj Aug 15, 2024
8db1ac8
Merge branch 'main' into desktop-editor
nearnshaw Aug 15, 2024
85b9f2d
h4 > h3
nearnshaw Aug 15, 2024
bf6ffd6
Creators Hub > Creator Hub
nearnshaw Aug 19, 2024
3a40e15
many changes
nearnshaw Aug 19, 2024
3327523
many changes
nearnshaw Aug 20, 2024
a8c810c
3d content essentials parts
nearnshaw Aug 21, 2024
b5bcb03
many fixes
nearnshaw Aug 23, 2024
391226c
quickstart first draft
nearnshaw Aug 26, 2024
3399c19
enhancements
nearnshaw Aug 30, 2024
81c01d1
Merge branch 'main' into desktop-editor
nearnshaw Sep 2, 2024
160d3d1
refine
nearnshaw Sep 2, 2024
f87bcc8
finish tutorial
nearnshaw Sep 4, 2024
16e234e
fixes
nearnshaw Sep 4, 2024
702c5e5
rearrange creator landing
nearnshaw Sep 5, 2024
dca0a20
Creator Hub, not Creators Hub
nearnshaw Sep 5, 2024
501fe63
adjustments
nearnshaw Sep 5, 2024
9e298d6
bigger image
nearnshaw Sep 5, 2024
468ad9a
retouches
nearnshaw Sep 5, 2024
2ad0e36
retouches
nearnshaw Sep 9, 2024
eb4cda1
camera-first-draft
nearnshaw Sep 10, 2024
d182b16
camera docs
nearnshaw Sep 11, 2024
cdbe54c
deprecated section
nearnshaw Sep 11, 2024
9d3afef
fix links
nearnshaw Sep 11, 2024
4a26aa1
Merge branch 'main' into desktop-editor
nearnshaw Sep 11, 2024
8275e2f
default transition to all camera snippets
nearnshaw Sep 11, 2024
c5f5d91
remove comment
nearnshaw Sep 11, 2024
8d055f2
Merge branch 'desktop-editor' of https://github.com/decentraland/docu…
nearnshaw Sep 11, 2024
e2e5859
minor fixes to camera
nearnshaw Sep 11, 2024
1a28e8c
trigger area and streaming
nearnshaw Sep 11, 2024
a2ed969
creator hub rename
nearnshaw Sep 12, 2024
7c5d54a
mention templates
nearnshaw Sep 12, 2024
6a94197
fixes to camera
nearnshaw Sep 13, 2024
0aaae0d
Merge branch 'main' into desktop-editor
nearnshaw Oct 8, 2024
ef7833f
debug in preview
nearnshaw Oct 8, 2024
81f53c9
single player scenes (#435)
nearnshaw Oct 8, 2024
84b9e2a
input modifiers
nearnshaw Oct 8, 2024
aac4ad0
Merge branch 'desktop-editor' of https://github.com/decentraland/docu…
nearnshaw Oct 8, 2024
49a0780
retouches
nearnshaw Oct 9, 2024
3ea72fd
polish 101 tutorial
nearnshaw Oct 9, 2024
95514a9
add image of avocado
nearnshaw Oct 9, 2024
a80b62c
fix CLI command
nearnshaw Oct 9, 2024
43acea0
adjust image sizes
nearnshaw Oct 10, 2024
e2547f2
warning about user data
nearnshaw Oct 10, 2024
3b32de9
emotes texture size
nearnshaw Oct 10, 2024
3474e9c
reload when debugging
nearnshaw Oct 16, 2024
3441f5f
version control
nearnshaw Oct 16, 2024
0310f7e
video player basic material
nearnshaw Oct 18, 2024
6244435
fix link
nearnshaw Oct 18, 2024
61d9ee5
warnings
nearnshaw Oct 22, 2024
ce90df3
global sounds
nearnshaw Oct 22, 2024
dff7ad1
more direct download link
nearnshaw Oct 22, 2024
f13ba3f
player docs edits
nearnshaw Oct 22, 2024
b89c45d
whitepaper
nearnshaw Oct 22, 2024
e2bec19
URL links to DCL on new client
nearnshaw Oct 22, 2024
8d9823e
fix whitepaper links
nearnshaw Oct 22, 2024
2e78dff
test YT video
nearnshaw Oct 22, 2024
5b67ed5
update YT videos
nearnshaw Oct 22, 2024
ed716f5
isStateSynced
nearnshaw Oct 22, 2024
09fedd3
retuouch isSynced snippet
nearnshaw Oct 22, 2024
f407c33
isSynced retouches
nearnshaw Oct 22, 2024
c4d39eb
Merge branch 'main' into desktop-editor
nearnshaw Oct 22, 2024
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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
More info: https://gohugo.io/content-management/cross-references/

```markdown
To publish [publish]({{< ref "/content/creator/scenes/publishing/publishing.md" >}}) your scene bla bla bla
To publish [publish]({{< ref "/content/creator/deprecated/scenes/publishing/publishing.md" >}}) your scene bla bla bla
```

---
Expand Down
112 changes: 57 additions & 55 deletions content/contributor/auth/authchain.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ url: /contributor/auth/authchain
weight: 2
---


Many actions in the Decentraland protocol either require or benefit from authorization with a signature from the user's Ethereum account. For example:

1. Upload a new version of any [Entity]({{< ref "/contributor/content/entities" >}}) they own (such as their profile).
Expand All @@ -13,7 +12,6 @@ Many actions in the Decentraland protocol either require or benefit from authori

To perform these actions, users and delegates must sign payloads describing their intent and produce an _authentication chain_.


## Introduction

Authentication chains encapsulate a series of verification steps, with each step depending on the succcessful verification of the previous one. All steps must be deemed valid by the verifier for any restricted action to take place.
Expand Down Expand Up @@ -47,11 +45,11 @@ This single-delegate chain is the most common form of authorization used in Dece

Each step in the authentication chain contains three pieces of information: a `type`, a `payload` and a corresponding `signature`.

| Field | Value |
| ----- | --- |
| `type` | The name of a type ([see below](#types)).
| `payload` | A type-dependent string.
| `signature` | The hex-encoded Ethereum signature of `payload`, beginning with `0x`.
| Field | Value |
| ----------- | --------------------------------------------------------------------- |
| `type` | The name of a type ([see below](#types)). |
| `payload` | A type-dependent string. |
| `signature` | The hex-encoded Ethereum signature of `payload`, beginning with `0x`. |

{{< info >}}
Since the most common serialization of an authentication chain is a JSON array, the examples below are presented in that form. See [Transmitting a Chain](#transmitting) for more details.
Expand Down Expand Up @@ -80,7 +78,7 @@ The second step must carry a `signature` from this account for its `payload`.

### Intermediate Steps: Delegation

When delegates are acting on the user's behalf, an item is added to the middle of the chain for each of them. The conditions for these steps are:
When delegates are acting on the user's behalf, an item is added to the middle of the chain for each of them. The conditions for these steps are:

1. The type is [`ECDSA_EPHEMERAL`](#ECDSA_EPHEMERAL)
2. The `payload` is a specially crafted text (see below).
Expand Down Expand Up @@ -164,7 +162,6 @@ There is no universal strategy to decide what the valid time window should be. T
Ephemeral keys should never hold funds or possess the ability to transfer digital assets. It's much safer for end-users if the leak of an ephemeral key cannot result in financial losses.
{{< /info >}}


## Formalization

What follows is a more formal and precise definition of the processes involved. Follow these instructions to successfully handle authentication chains.
Expand All @@ -174,80 +171,85 @@ What follows is a more formal and precise definition of the processes involved.
Clients crafting an authentication chain for the user follow these steps:

1. Add the identification step:
1. Set the `type` to `SIGNER`.
2. Set the `payload` to the user's Ethereum address.
3. Set the `signature` to an empty string.

1. Set the `type` to `SIGNER`.
2. Set the `payload` to the user's Ethereum address.
3. Set the `signature` to an empty string.

2. Add delegations steps:
1. Generate or use an existing delegate private key (may require interaction).
2. Calculate the delegate Etherum address derived from the corresponding public key.
3. Set the `type` to `ECDSA_EPHEMERAL`.
4. Set the `expiration` to a date in the future.
5. Choose a `purpose` for this key.
5. Set the `payload` to this exact form:
```md
<purpose>
Ephemeral address: <delegate-address>
Expiration: <date>
```
6. Set the `signature` field to the `payload` signature from the previous key (user or delegate).
7. Repeat for all successive delegates.

3. Add the action authorization step:
1. Set the `type` to a valid value ([see below](#types))
2. Set the `payload` to the type-specific value (such as the entity ID).
3. Set the `signature` field to the `payload` signature from the previous key (user or delegate).

4. Send the authentication chain to the verifier.

1. Generate or use an existing delegate private key (may require interaction).
2. Calculate the delegate Etherum address derived from the corresponding public key.
3. Set the `type` to `ECDSA_EPHEMERAL`.
4. Set the `expiration` to a date in the future.
5. Choose a `purpose` for this key.
6. Set the `payload` to this exact form:
```md
<purpose>
Ephemeral address: <delegate-address>
Expiration: <date>
```
7. Set the `signature` field to the `payload` signature from the previous key (user or delegate).
8. Repeat for all successive delegates.

3. Add the action authorization step:

1. Set the `type` to a valid value ([see below](#types))
2. Set the `payload` to the type-specific value (such as the entity ID).
3. Set the `signature` field to the `payload` signature from the previous key (user or delegate).

4. Send the authentication chain to the verifier.

### Verification

Content servers and 3rd-party services implementing verification follow these steps:

1. Verify identification:
1. Verify the `type` is `SIGNER`.
2. Verify the `payload` is the Ethereum address of the user.
3. Verify the `signature` is an empty string.

1. Verify the `type` is `SIGNER`.
2. Verify the `payload` is the Ethereum address of the user.
3. Verify the `signature` is an empty string.

2. Verify delegates:
1. Verify the `type` is `ECDSA_EPHEMERAL`.
2. Verify the `payload` is in this form and extract the fields:
```md
<purpose>
Ephemeral address: <delegate-address>
Expiration: <date>
```
3. Verify the `date` is still in the future.
4. Verify the `purpose` is supported by your service.
4. Verify the `signature` is valid for the given `payload` and the previous public key.
6. Repeat for all successive delegates.

1. Verify the `type` is `ECDSA_EPHEMERAL`.
2. Verify the `payload` is in this form and extract the fields:
```md
<purpose>
Ephemeral address: <delegate-address>
Expiration: <date>
```
3. Verify the `date` is still in the future.
4. Verify the `purpose` is supported by your service.
5. Verify the `signature` is valid for the given `payload` and the previous public key.
6. Repeat for all successive delegates.

3. Verify action authorization:
1. Verify the `type` is a valid value ([see below](#types)).
2. Verify the `payload` is valid for this `type`.
3. Verify the `signature` is valid for the given `payload` and the previous public key.

4. Accept the authentication chain.
1. Verify the `type` is a valid value ([see below](#types)).
2. Verify the `payload` is valid for this `type`.
3. Verify the `signature` is valid for the given `payload` and the previous public key.

4. Accept the authentication chain.

### Standard Action Types and Purposes {#types}

The `type` and `payload` values for identification and delegation are standard and must be verified as laid out above, but clients and services can agree on any action `type`, and its `payload` structure, as well as set a `purpose` for their delegate keys that they consider valid.

The protocol defines three standard types, and one standard purpose:

###### Type `SIGNER` {#SIGNER}
##### Type `SIGNER` {#SIGNER}

**Must** be the initial `type` in the chain, where `payload` is the user's Ethereum address and `signature` is an empty string.

###### Type `ECDSA_EPHEMERAL` {#ECDSA_EPHEMERAL}
##### Type `ECDSA_EPHEMERAL` {#ECDSA_EPHEMERAL}

**Must** be the `type` for intermediate steps in the chain, where `payload` is in the form described above.

###### Type `ECDSA_SIGNED_ENTITY` {#ECDSA_SIGNED_ENTITY}
##### Type `ECDSA_SIGNED_ENTITY` {#ECDSA_SIGNED_ENTITY}

The final `type` in the chain for authorizing entity deployments, where `payload` is the ID of an entity owned by the user.

###### Purpose `Decentraland Login` {#DecentralandLogin}
##### Purpose `Decentraland Login` {#DecentralandLogin}

The usual `purpose` for World Explorers, signed both when logging into the world and when renewing their delegate key.
The usual `purpose` for World Explorers, signed both when logging into the world and when renewing their delegate key.
Loading
Loading