POST
/
v1
/
funds
curl --request POST \
  --url https://api.endaoment.org/v1/funds \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "deploymentTransactionHash": "0xf89f7da1e5d79dcb1b8863d0926fe41204785b443ce2d1dca4bf50070c492567",
  "fundInput": {
    "name": "Doe Family Foundation",
    "advisor": {
      "firstName": "John",
      "lastName": "Doe",
      "email": "john.doe@example.com",
      "address": {
        "line1": "123 Main Street",
        "line2": "Suite 100",
        "city": "San Francisco",
        "state": "CA",
        "zip": "94105",
        "country": "USA"
      }
    },
    "description": "A family foundation dedicated to supporting educational initiatives",
    "type": "Private"
  },
  "referralSource": "partner_website",
  "fundSalt": "0x7189b9ff31064f2bbc98ad4e92e5562c00000000000000000000000000000000",
  "chainId": 1,
  "referralCode": "PARTNER2024"
}'
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "Doe Family Foundation",
  "type": "Private",
  "manager": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "walletAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
  },
  "chainId": 1,
  "deploymentTransactionHash": "0xf89f7da1e5d79dcb1b8863d0926fe41204785b443ce2d1dca4bf50070c492567",
  "contractAddress": "0x1234567890123456789012345678901234567890",
  "advisor": {
    "firstName": "John",
    "lastName": "Doe"
  },
  "featuredIndex": 1,
  "usdcBalance": "20500000",
  "lastBalanceSyncUtc": "2024-03-14T12:00:00Z",
  "description": "A family foundation dedicated to supporting educational initiatives",
  "shortDescription": "Supporting education",
  "vanityUrl": "doe-family-foundation",
  "paypalId": "123e4567-e89b-12d3-a456-426614174000",
  "logo": "https://example.com/logo.png",
  "createdAtUtc": "2024-01-01T00:00:00Z",
  "updatedAtUtc": "2024-03-14T12:00:00Z",
  "lifetimeDonationsUsdc": "1000000000",
  "staffNotes": "<string>",
  "category": "Education",
  "grantsGiven": 10,
  "inTransitBuyUsdcAmount": "5000000",
  "inTransitSellUsdcAmount": "3000000",
  "investedUsdc": "50000000",
  "totalGrantedUsdc": "25000000",
  "processingTransfersTotalUsdc": "1000000",
  "illiquidBalance": "10000000",
  "poolDetails": {
    "eligibleEntities": "Organizations",
    "algorithmType": "QuadraticFunding",
    "distributionSchedule": "Quarterly",
    "distributionPercentage": 0.25,
    "eligibleVotes": "GrantsAndDonations",
    "voteWeight": "UsdcValue"
  },
  "expectedDeploymentInfo": {
    "expectedManagerAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
    "expectedSalt": "0x0000000000000000000000000000000000000000000000000000000000000123",
    "expectedComputedAddress": "0x1234567890123456789012345678901234567890",
    "expectedChainId": 1
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
fundInput
object
required

Details of the fund to be created

deploymentTransactionHash
object
  Transaction hash of the fund contract deployment:
  - If provided, the fund will be created using the information from the deployment transaction provided.
  - If not provided, creates the fund and delegates the blockchain logic to Endaoment.
  - Must be a valid Ethereum transaction hash matching pattern: 0x followed by 64 hexadecimal characters (0-9, a-f)
Example:

"0xf89f7da1e5d79dcb1b8863d0926fe41204785b443ce2d1dca4bf50070c492567"

referralSource
string

Referral source informed by the user for the fund creation

Example:

"partner_website"

fundSalt
object

Random Bytes32 Hex Value used as an idempotency key for fund creation. If not provided, backend will generate one. Note: Off-chain creation requests without salt will not have idempotency guarantees on retries.

Example:

"0x7189b9ff31064f2bbc98ad4e92e5562c00000000000000000000000000000000"

chainId
number

Chain ID to process the fund deployment.

- If not provided, the API will process the fund deployment on the default chain.
- If provided, must be a valid Ethereum chain ID.
- Must be provided if a transaction hash is provided so the backend can fetch the correct deployment from the selected blockchain.
Example:

1

referralCode
string

Referral code for the fund creation. All codes are case-insensitive and will be stored in uppercase.

Example:

"PARTNER2024"

Response

200
application/json
The fund has been successfully created and processed.
id
string
required

Unique identifier of the fund

Example:

"123e4567-e89b-12d3-a456-426614174000"

name
string
required

Name of the fund

Example:

"Doe Family Foundation"

type
enum<string>
required

Access type of the fund

Available options:
Private,
Community,
Transparent,
ImpactPool
Example:

"Private"

manager
object
required

Basic information about the fund manager. The manager has technical capability to interact with the blockchain and perform programmatic functions.

chainId
object
required

Chain ID where the fund is deployed

Example:

1

advisor
object
required

Fund advisor information. The advisor is tied to a real-world person/entity and acts as the public contact for the fund. This can be the same person as the manager or someone the manager acts on behalf of.

Index determining the fund's position in featured listings. Lower numbers appear first

Example:

1

usdcBalance
string
required

Current USDC balance with 6 decimal places (1000000 = 1 USDC)

Example:

"20500000"

description
string
required

Detailed description of the fund

Example:

"A family foundation dedicated to supporting educational initiatives"

createdAtUtc
string
required

UTC timestamp of fund creation

Example:

"2024-01-01T00:00:00Z"

updatedAtUtc
string
required

UTC timestamp of last fund update

Example:

"2024-03-14T12:00:00Z"

lifetimeDonationsUsdc
string
required

Total lifetime donations received in USDC with 6 decimal places

Example:

"1000000000"

grantsGiven
number
required

Total number of grants given by this fund

Example:

10

inTransitBuyUsdcAmount
string
required

Amount of USDC pending purchase with 6 decimal places

Example:

"5000000"

inTransitSellUsdcAmount
string
required

Amount of USDC pending sale with 6 decimal places

Example:

"3000000"

investedUsdc
string
required

Total amount invested in USDC with 6 decimal places

Example:

"50000000"

totalGrantedUsdc
string
required

Total amount granted in USDC with 6 decimal places

Example:

"25000000"

processingTransfersTotalUsdc
string
required

Total amount in processing transfers in USDC with 6 decimal places

Example:

"1000000"

illiquidBalance
string
required

Total balance in illiquid portfolios in USDC with 6 decimal places

Example:

"10000000"

poolDetails
object
required

Impact Pool specific details. Only available for Impact Pool type funds

expectedDeploymentInfo
object
required

Information needed for on-chain deployment. Only available for funds not yet deployed

deploymentTransactionHash
object | null

Transaction hash of the deployment transaction

Example:

"0xf89f7da1e5d79dcb1b8863d0926fe41204785b443ce2d1dca4bf50070c492567"

contractAddress
object | null

Contract address of the fund

Example:

"0x1234567890123456789012345678901234567890"

lastBalanceSyncUtc
object | null

UTC timestamp of the last balance sync

Example:

"2024-03-14T12:00:00Z"

shortDescription
object | null

Brief description of the fund

Example:

"Supporting education"

vanityUrl
object | null

Custom URL identifier for the fund

Example:

"doe-family-foundation"

paypalId
object | null

PayPal merchant ID associated with the fund

Example:

"123e4567-e89b-12d3-a456-426614174000"

URL of the fund's logo image

Example:

"https://example.com/logo.png"

staffNotes
string | null

Internal notes about the fund (staff only)

category
object | null

Category of the fund (e.g., Education, Health)

Example:

"Education"