Skip to content

Instantly share code, notes, and snippets.

View patcito's full-sized avatar

Patrick Aljord patcito

View GitHub Profile
@patcito
patcito / invest-proof-ungating-matrix.md
Last active February 15, 2026 15:17
invest-proof ungating combinations matrix

How to Allow All Investors (Disable Whitelist)

Option What to do Restart? Reversible?
A. Set PutManager ftACL to zero Multisig calls setACL(address(0)) on PutManager.
Leave ENV as-is.
No Yes — setACL(newAddr) to re-gate
B. Set merkle root to zero Call updateMerkleRoot(bytes32(0)) on ACL contract (0xA09d...).
Leave ENV as-is.
No Yes — set new non-zero root to re-gate

Recommendation: Option A — single on-chain tx, no deploy, no restart.

listing_needs_approval — Frontend Integration Guide

No breaking changes. The existing is_listed field is unchanged.

New field on /tge/nfts response

{
  "is_listed": false,
 "listing_needs_approval": true,

Treasury stETH Balance in Dashboard TVL & Yield

Backward compatibility

These changes are fully backward compatible. No structs, fields, or JSON keys were added, removed, or renamed. The response shape is identical — only the values inside existing fields change:

  • collaterals[].collateralSupply — WETH entry is slightly larger (includes stETH)
  • collaterals[].collateralSupplyUsd — recalculated from merged supply
  • collaterals[].sharePct — recalculated
  • metrics.allTimeYieldClaimedUsd — includes stETH yield

Multisig Investor Wrappers — Merged into Dashboard TVL

What changed

The /status/put/dashboard endpoint now merges multisig investor wrapper TVL into the existing collateral entries on chain 1 (Ethereum mainnet).

There are 9 standalone ftAaveYieldWrapper contracts that hold investor capital in Aave. Previously they were invisible in the dashboard. Now their principal() is summed into the matching PutManager collateral by asset address.

No new collateral entries are added. The collateral count stays the same — wrapper amounts are folded into the existing USDC and USDT totals.

Marketplace V2: New & Updated Endpoints

1. GET /marketplace/v2/bids/my — Updated Response

New field added: filledByAddress

The response for filled bids now includes the address that filled the offer.

{
@patcito
patcito / gist:d32ec2ed491df651ed1fdb72c548140b
Created February 7, 2026 13:44
GET /whitelist/investor-tokens endpoint documentation
# GET /whitelist/investor-tokens
Returns all tokens a wallet is whitelisted for in the active merkle root, including merkle proofs, token decimals, oracle prices, and USD values.
## Query Parameters
| Parameter | Required | Default | Description |
|-----------|----------|---------|-------------|
| `wallet` | Yes | — | Wallet address (hex, e.g. `0xabc...`) |
| `chainId` | No | Config default | Chain ID (e.g. `146` for Sonic, `1` for Ethereum) |

New Endpoint: GET /marketplace/v2/puts/my/puts

What it does

Returns all of a user's PUTs in a single query — combining what my/on-sale and my/on-hold already do, plus PUTs with active offers. This lets you build a unified "My PUTs" view without multiple API calls.

Base URL

GET /marketplace/v2/puts/my/puts?chainId={chainId}&owner={address}
@patcito
patcito / ftusd-api-docs.md
Last active February 2, 2026 14:05
FTUSD Dashboard API Documentation - User Balances, Preview Endpoints, USD Values

FTUSD Dashboard API Documentation

This document covers the API endpoints for the FTUSD dashboard, including user balances, staking info, and reward previews.


Endpoints Overview

Endpoint Method Description

RPC Semaphore - Grafana Queries

Current Utilization (%)

rpc_semaphore_utilization

503 Rejections Rate

rate(rpc_semaphore_total_rejections[5m])
@patcito
patcito / gist:be55946cc48cc300560b320881e87da7
Created January 26, 2026 18:01
PUT Dashboard APY Fields - Frontend Guide
# PUT Dashboard APY Fields
## Endpoint
```
GET https://api.flyingtulip.com/status/put/dashboard
```
## Where to find APY