{
  "generated_at": "2026-05-11T00:56:48.476130+00:00",
  "slug": "api-grove-city-v1-fund-2",
  "title": "Api \u00b7 Fund",
  "url": "http://api.grove.city/v1/fund",
  "category": "data",
  "summary": "Api \u00b7 Fund \u2014 x402-protected data API. Pay $0.100 per call on base. Indexed by x402all.",
  "seo": {
    "title": "Api \u00b7 Fund \u2014 x402 data API \u00b7 $0.100 per call",
    "description": "Api \u00b7 Fund \u2014 x402-protected data API. Pay $0.100 per call on base. Indexed by x402all."
  },
  "use_cases": [],
  "risk_notes": [],
  "pricing_sanity": {
    "flag": "expensive",
    "ratio": 5.0,
    "median_category_atomic": 20000
  },
  "pricing_review_required": false,
  "pricing_decimal_suspect": false,
  "trust_tier": "indexed_external",
  "accepts": [
    {
      "scheme": "exact",
      "network": "base",
      "pay_to": "0x079d8cab4da9b5817612e98b8f6fc72cb1cb25a6",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "max_amount_required_atomic": "100000",
      "max_timeout_seconds": 60,
      "mime_type": "application/json",
      "description": "Fund Grove account with 0.1 USDC for tipping",
      "verified": false,
      "hints": {
        "input": {
          "type": "http",
          "method": "POST",
          "queryParams": {
            "amount": {
              "type": "string",
              "required": false,
              "description": "Token amount to fund (e.g., '0.01', '10.5'). Defaults to 100000 USDC."
            }
          },
          "headerFields": {
            "X-PAYMENT": {
              "type": "string",
              "required": true,
              "description": "Base64-encoded payment payload returned after signing the x402 request."
            },
            "Authorization": {
              "type": "string",
              "required": false,
              "description": "Bearer JWT for existing accounts. Omit to create a new account."
            }
          }
        },
        "output": {
          "type": "object",
          "title": "FundResponse",
          "required": [
            "funded_amount",
            "new_balance",
            "tx_hash"
          ],
          "properties": {
            "api_key": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Api Key"
            },
            "tx_hash": {
              "type": "string",
              "title": "Tx Hash"
            },
            "account_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Account Id"
            },
            "new_balance": {
              "type": "string",
              "title": "New Balance"
            },
            "funded_amount": {
              "type": "string",
              "title": "Funded Amount"
            }
          },
          "description": "Response model for successful funding.\n\nWhen creating a new account (no JWT provided):\n- account_id and api_key are populated\n- Use api_key as Bearer token for future requests\n\nWhen funding existing account (JWT provided):\n- account_id and api_key are None"
        }
      }
    }
  ],
  "origin": {
    "slug": "api-grove-city-2",
    "host": "api.grove.city",
    "url": "http://api.grove.city"
  },
  "json_ld": {
    "@id": "https://x402all.com/resource/api-grove-city-v1-fund-2",
    "url": "https://x402all.com/resource/api-grove-city-v1-fund-2",
    "name": "Api \u00b7 Fund",
    "@type": "WebAPI",
    "offers": {
      "url": "https://x402all.com/resource/api-grove-city-v1-fund-2",
      "@type": "Offer",
      "price": "0.1",
      "availability": "https://schema.org/InStock",
      "priceCurrency": "USDC",
      "additionalProperty": [
        {
          "name": "paymentNetwork",
          "@type": "PropertyValue",
          "value": "base"
        },
        {
          "name": "paymentAsset",
          "@type": "PropertyValue",
          "value": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
        }
      ],
      "priceSpecification": {
        "@type": "UnitPriceSpecification",
        "price": "0.100000",
        "unitText": "call",
        "priceCurrency": "USDC"
      },
      "eligibleCustomerType": "Agent"
    },
    "sameAs": "http://api.grove.city/v1/fund",
    "@context": "https://schema.org",
    "provider": {
      "@id": "https://x402all.com/server/api-grove-city-2",
      "url": "http://api.grove.city",
      "name": "api.grove.city",
      "@type": "Organization"
    },
    "identifier": "api-grove-city-v1-fund-2",
    "description": "Api \u00b7 Fund \u2014 x402-protected data API. Pay $0.100 per call on base. Indexed by x402all.",
    "potentialAction": {
      "@type": "BuyAction",
      "target": "https://axon402.com/test-buy?resource=api-grove-city-v1-fund-2",
      "description": "Test-buy this endpoint on AXON"
    },
    "applicationCategory": "data"
  },
  "axon_deep_link": "https://axon402.com/test-buy?resource=api-grove-city-v1-fund-2",
  "callability": {
    "status": "likely_callable",
    "schema_callability": 0.522,
    "source": "provider_openapi",
    "source_confidence": 0.9,
    "match_confidence": 0.95,
    "schema_confidence": 0.5,
    "validated_at": "2026-05-10T23:20:10.730031+00:00",
    "warnings": []
  },
  "contract": {
    "method": "POST",
    "route_template": "/v1/fund",
    "content_type": "application/json",
    "query_schema": {
      "type": "object",
      "properties": {
        "token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Token",
          "description": "\n        Token symbol (e.g., \"USDC\", \"ETH\").\n\n        Defaults to: USDC\n\n        Supported tokens vary by network. Check the network's token configuration for available options.\n        "
        },
        "amount": {
          "type": "string",
          "title": "Amount",
          "default": "1",
          "description": "\n        Amount to credit to the tipping account.\n\n        Unit: human-readable amount (not atomic units), for example `\"0.10\"`, `\"1\"`, `\"5.25\"`.\n\n        Purpose: this balance is used by an agent or human to tip content creators (agents or humans) on the internet.\n\n        Flow:\n          - Without `Authorization`: creates a new Grove account, funds it, and returns an `api_key` JWT.\n          - With `Authorization`: funds the existing Grove account associated with that JWT.\n\n        Constraints:\n          - Must be a positive number.\n          - Precision must not exceed the configured decimals for the token.\n        "
        },
        "network": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Network",
          "description": "\n        Network identifier (e.g., \"base\", \"base-sepolia\").\n\n        Supported networks: ethereum-mainnet, base, base-sepolia, solana-mainnet, solana-devnet.\n\n        Defaults to: base\n\n        Note: The account's primary network (Account.network) is set on first funding and\n        represents the Virtual Machine (EVM, SVM, etc.). Multi-network balances are tracked\n        separately in the AccountBalance table.\n        "
        },
        "referral_code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Referral Code",
          "description": "\n        Optional referral code from an existing Grove user (e.g., \"GRV-ABC123\").\n\n        Only applies to new account creation (when no `Authorization` header is provided).\n        If the referral code is valid, the new account will be linked to the referrer.\n        If invalid (not found or self-referral), account creation still succeeds but\n        `referral_status.applied` will be `false` in the response.\n\n        The new account's own referral code is returned in `referral_code` field\n        so they can share it with others.\n        "
        }
      }
    },
    "response_schema": {
      "type": "object",
      "title": "FundResponse",
      "required": [
        "funded_amount",
        "new_balance",
        "tx_hash",
        "address",
        "client_address",
        "earnings_wallet",
        "earnings_address"
      ],
      "properties": {
        "address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Address",
          "readOnly": true
        },
        "api_key": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Api Key"
        },
        "tx_hash": {
          "type": "string",
          "title": "Tx Hash"
        },
        "account_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Account Id"
        },
        "new_balance": {
          "type": "string",
          "title": "New Balance"
        },
        "funded_amount": {
          "type": "string",
          "title": "Funded Amount"
        },
        "referral_code": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Referral Code"
        },
        "client_address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Client Address",
          "readOnly": true
        },
        "earning_address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Earning Address"
        },
        "earnings_wallet": {
          "type": "object",
          "title": "EarningsWallet",
          "required": [
            "earnings_address"
          ],
          "properties": {
            "eoa_address": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Eoa Address",
              "description": "Owner EOA address (non-earning key)"
            },
            "earnings_address": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Earnings Address",
              "readOnly": true,
              "description": "Canonical earnings address for sender-path use."
            },
            "smart_account_address": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Smart Account Address",
              "description": "Smart Account address used as canonical earning wallet"
            }
          },
          "description": "Dual earnings-wallet representation (owner EOA + Smart Account)."
        },
        "referral_status": {
          "anyOf": [
            {
              "type": "object",
              "title": "ReferralStatus",
              "required": [
                "applied"
              ],
              "properties": {
                "applied": {
                  "type": "boolean",
                  "title": "Applied"
                },
                "message": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "title": "Message"
                }
              },
              "description": "Status of referral code application during account creation.\n\nIncluded in FundResponse to provide feedback on referral code processing.\nAllows successful account creation even with invalid referral codes,\nwhile still informing the user of the outcome."
            },
            {
              "type": "null"
            }
          ]
        },
        "tipping_address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tipping Address"
        },
        "earnings_address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Earnings Address",
          "readOnly": true
        },
        "eoa_owner_address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Eoa Owner Address"
        },
        "smart_account_address": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Smart Account Address",
          "description": "ERC-4337 Smart Account address (the earning wallet)"
        }
      },
      "description": "Response model for successful funding.\n\nWhen creating a new account (no JWT provided):\n- account_id, api_key, tipping_address, and earning_address are populated\n- Use api_key as Bearer token for future requests\n- referral_code contains the new account's shareable referral code\n- referral_status contains feedback on any provided referral code\n\nWhen funding existing account (JWT provided):\n- account_id and api_key are None\n- tipping_address and earning_address are populated\n- referral_code and referral_status are None (referrals only apply to new accounts)"
    },
    "examples": [],
    "schema_presence": {
      "path_schema": "unknown",
      "query_schema": "declared",
      "header_schema": "declared",
      "request_body_schema": "unknown",
      "response_schema": "declared"
    },
    "contract_hash": "539bfa1bccc30926ace09e4a3f741dd49e8f1027a0f13292a5aa564379813e4f"
  }
}