> For the complete documentation index, see [llms.txt](https://docs.bullpen.fi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bullpen.fi/prediction-markets/wallets-and-collateral.md).

# Wallets and Collateral

How wallets, collateral, and deposits work for prediction market trading on Polymarket.

## Collateral: USDC.e

All prediction markets on Polymarket are denominated and settled in **USDC.e** on the Polygon network.

### What is USDC.e?

USDC.e is a bridged version of USDC from Ethereum to Polygon. It maintains 1:1 backing with USDC on Ethereum while enabling faster, cheaper transactions on Polygon.

| Property | USDC.e                                       |
| -------- | -------------------------------------------- |
| Network  | Polygon PoS                                  |
| Contract | `0x2791bca1f2de4661ed88a30c99a7a9449aa84174` |
| Decimals | 6                                            |
| Backing  | 1:1 with USDC on Ethereum                    |

### USDC.e vs Native USDC

Polygon has two versions of USDC:

| Token      | Description                                   |
| ---------- | --------------------------------------------- |
| **USDC.e** | Bridged from Ethereum, used by Polymarket     |
| **USDC**   | Native Polygon USDC issued directly by Circle |

Polymarket uses USDC.e. Depositing native USDC requires bridging or swapping first.

## Depositing Funds

### From Ethereum

1. Send USDC to your Polymarket Ethereum deposit address
2. Polymarket bridges it to Polygon as USDC.e
3. Funds arrive in \~30 minutes
4. Gas fees apply (\~$30+ depending on network conditions)

### From Polygon

1. Send USDC.e directly to your Polygon deposit address
2. Funds arrive in a few minutes
3. Gas fees are minimal (a few cents)

Sending USDC.e over Polygon is faster and cheaper than bridging from Ethereum.

## Proxy Wallet System

When you first trade on Polymarket, a **proxy wallet** is deployed for you on Polygon. This is where your positions and USDC.e are held.

### How It Works

1. You connect with your EOA (MetaMask, hardware wallet, etc.) or Magic.link email wallet
2. A 1-of-1 multisig Safe is deployed on Polygon
3. Your connecting wallet is the sole owner/signer
4. All trading occurs through this proxy wallet

### Architecture

```
Your Wallet (EOA or Magic)
         │
         │ owns
         ▼
   Proxy Wallet (Safe)
         │
         │ holds
         ▼
  USDC.e + Outcome Tokens
```

The proxy wallet is a Gnosis Safe with a single signer (you). It provides several benefits:

* **Gasless trading**: Polymarket relays transactions and pays gas
* **Atomic execution**: Multi-step operations happen in one transaction
* **No approval popups**: Allowances are pre-set for the Exchange contract

### Signature Types

Polymarket supports multiple wallet configurations:

| Signature Type | Description                      | Use Case                   |
| -------------- | -------------------------------- | -------------------------- |
| **Type 0**     | Standard EOA signature (EIP-712) | MetaMask, hardware wallets |
| **Type 1**     | Magic.link email wallet          | Email-based login          |
| **Type 2**     | Browser wallet proxy (Safe)      | Most web users             |

The signature type tells Polymarket how to verify your order signatures.

## Wallet Security

### Custody Model

Polymarket uses a non-custodial model:

* You control the signing key
* Only you can authorize transactions
* Polymarket can relay transactions on your behalf (after you sign)
* Polymarket cannot move funds without your signature

### The Safe Contract

Your proxy wallet is a 1-of-1 Gnosis Safe:

* Battle-tested smart contract wallet
* Single owner (your connected wallet)
* Audited by multiple security firms
* Used across DeFi for billions in assets

### Private Key Access

You retain full control:

* Your EOA private key controls the proxy wallet
* Export your key from MetaMask or Magic.link
* Transfer assets using your EOA at any time

## Importing and Exporting Wallets

### Exporting from Magic.link

If you signed up with email (Magic.link):

1. Log in to your Polymarket account
2. Go to Cash > three dots menu > Export Private Key
3. Or visit: `https://reveal.magic.link/polymarket` while logged in
4. Copy your private key securely

### Importing to MetaMask

1. Open MetaMask
2. Click your account icon > Import Account
3. Paste your exported private key
4. Your EOA is now accessible in MetaMask

### EOA vs Magic Wallet Limitations

| Feature                 | EOA (MetaMask)  | Magic.link            |
| ----------------------- | --------------- | --------------------- |
| Private key export      | Yes             | Yes                   |
| Import to other wallets | Yes             | Yes                   |
| Programmatic trading    | Straightforward | Requires funder setup |
| Hardware wallet support | Yes             | No                    |

**Important**: Only EOAs can be directly imported to external wallets or trading bots. Magic.link wallets can export their private key and then be imported elsewhere, but the proxy wallet (Safe) itself cannot be imported directly.

### Programmatic Access

For API or bot trading:

**EOA Users:**

1. Use your private key directly
2. Set `signature_type=0`
3. Set allowances for the Exchange contract

**Magic.link Users:**

1. Export your private key
2. Use `signature_type=1` with the funder address parameter
3. The funder address is your proxy wallet address

## Allowances

Before trading programmatically, you must set token allowances:

### Required Allowances

| Token      | Contract          | Purpose                |
| ---------- | ----------------- | ---------------------- |
| USDC.e     | Exchange contract | Buying outcome tokens  |
| CTF tokens | Exchange contract | Selling outcome tokens |

### Setting Allowances

For web users, Polymarket handles this automatically through the proxy wallet.

For programmatic users:

1. Approve the Exchange contract to spend your USDC.e
2. Approve the Exchange contract to transfer your CTF tokens
3. Allowances must be set from the funder address

## Balance Management

### Checking Balances

Your trading balance is:

```
Available = USDC.e Balance - Reserved for Open Orders
```

### Reserved Funds

When you place buy orders, the USDC.e is reserved:

* A $50 order at $0.50 reserves $25
* This amount is unavailable for other orders
* Cancelling the order releases the reservation

### Insufficient Balance Errors

If you see "not enough balance/allowance":

1. Check your USDC.e balance in the proxy wallet
2. Cancel open orders to free reserved funds
3. Verify allowances are set (for programmatic trading)
4. Ensure you have enough for the order size at your price


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.bullpen.fi/prediction-markets/wallets-and-collateral.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
