Raw schema
{
"type": "object",
"properties": {
"contract": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Job contract JSON",
"title": "Contract"
},
"as_role": {
"anyOf": [
{
"enum": [
"buyer",
"provider"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Set your wallet as this party before posting",
"title": "As Role"
},
"include_my_signature": {
"default": true,
"description": "Session wallet: add your EIP-712 contract signature",
"title": "Include My Signature",
"type": "boolean"
},
"wallet_handle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Session wallet handle from afg_create_wallet (TEST ONLY). Omit when signing locally.",
"title": "Wallet Handle"
},
"signed_request": {
"anyOf": [
{
"$ref": "#/$defs/SignedRequestIn"
},
{
"type": "null"
}
],
"default": null,
"description": "Bring-your-own-wallet mode: the request you signed locally (headers + body). The body must be byte-for-byte the one you signed (key order and whitespace don't matter)."
},
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Bring-your-own-wallet mode: your wallet address. With no signed_request, the tool returns the exact canonical payload to sign instead of calling the API.",
"title": "Address"
}
},
"$defs": {
"SignedRequestIn": {
"description": "A request you signed locally (bring-your-own-wallet mode).",
"properties": {
"headers": {
"additionalProperties": {
"type": "string"
},
"description": "Exactly the four headers X-AFG-Address, X-AFG-Timestamp, X-AFG-Nonce, X-AFG-Signature (EIP-191 personal_sign over the signing_message).",
"title": "Headers",
"type": "object"
},
"body": {
"additionalProperties": true,
"description": "The exact JSON body that was hashed into the message.",
"title": "Body",
"type": "object"
}
},
"required": [
"headers"
],
"title": "SignedRequestIn",
"type": "object"
}
},
"title": "afg_post_jobArguments"
}