# Skywalk PT1

Skywalk PT1 is designed to accept ERC1155 conditional token prediction market positions. This represents the predominant design of EVM-based prediction markets. The minting and redemption interfaces are entirely self-contained within the EVM versions of PT1.

### Reference Contract

Polygon: `0xB1dbf169e5091927E0618176C4cB272C9E0c1c34`

### Factory

As a security measure, Skywalk will only recognize alternative tokens deployed through the factory smart contract.

Polygon: `0x9CcCA3D8cCbeEEd856C072C115bcE49a29145355`

### Skywalk Router

The router contract consolidates approvals to make minting multiple prediction tokens easier. It is not compatible with alternative tokens.

Polygon: `0xBB1346dFadde111C6DCa04fC328b9f25eCa8d5c1`

### Decimals

* EVM Chains: 18

### Schema

| Required Variable       | Usage                                                                                                                                                             |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SKYWALK_REGISTRY_ADDR` | Skywalk Registry Address. Alternative tokens can use the 0 address                                                                                                |
| `MARKET_ID`             | Skywalk Market ID. Alternative token issuers can request their own ID block                                                                                       |
| `SKYWALK_PT_EDITION`    | Skywalk Prediction Token Edition                                                                                                                                  |
| `OUTCOME_HASH`          | A hash of the `MARKET_ID`, External Condition Hash and the specific outcome/side (YES or NO)                                                                      |
| `PAIR_HASH`             | A hash of both outcome hashes for a particular condition                                                                                                          |
| `EXTERNAL_ERC1155_ID`   | The ID of the acceptable ERC1155 token from the underlying exchange. Each Prediction Token will only be mintable when depositing ERC1155 tokens matching this ID. |

| Optional Variable        | Usage                                                |
| ------------------------ | ---------------------------------------------------- |
| `SKYWALK_META_PAIR_HASH` | Skywalk Meta Pair Hash. Use 0 hash if not available. |
| `SKYWALK_META_PAIR_SIDE` | Skywalk Meta Pair Side. Use FALSE if not available.  |

Skywalk Meta Pair Hashes refer to matching prediction markets at different exchanges.

### Exchange-Specific Parameters

External Condition Hash:

* Polymarket:  `conditionId`  as defined by their Gamma API

### Ways to Mint

Skywalk PT1 has been designed to make it easy to accept ERC1155 tokens from users who hold it within a single-signer Gnosis SAFE along with more advanced users who manage these tokens directly.

| Mint Source         | Mint Destination    | Function to Call  |
| ------------------- | ------------------- | ----------------- |
| Gnosis SAFE         | Controlling Wallet  | `mintToSafeOwner` |
| Holding Wallet/SAFE | Holding Wallet/SAFE | `directMint`      |

### Ways to Redeem

Because Polymarket conditional tokens use 6 digits of decimal precision, any Prediction Token redemption amounts that cannot be converted to at least one-millionth of an ERC1155 will be considered dust and burnt.

Users may redeem tokens to the destination of their choosing by calling the `redeemForErc1155`  function.

### Burn Functionality

PT1 tokens retain their native ERC-20 `burn` functionality. This may be useful when the underlying positions expire at 0 value. Direct burns will trap an equivalent amount of the underlying tokens in the PT1 contract forever and do not affect the redemption rate.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://skywalk.gitbook.io/skywalk-docs/specs/skywalk-pt1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
