pimlico_sponsorMagicSpendWithdrawal | Pimlico Docs
Skip to content

pimlico_sponsorMagicSpendWithdrawal

This method requests a sponsored withdrawal from FlashFund. It accepts different types of withdrawal parameters based on the withdrawal mode.

Request

For credits mode:

{
    "jsonrpc": "2.0",
    "method": "pimlico_sponsorMagicSpendWithdrawal",
    "params": [
        {
            "type": "credits",
            "data": {
                "token": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
                "recipient": "0x1234567890123456789012345678901234567890",
                "amount": "1000000000000000000",
                "signature": "0xabcdef..."
            }
        },
        null
    ],
    "id": 1
}

For pimlico_lock mode:

{
    "jsonrpc": "2.0",
    "method": "pimlico_sponsorMagicSpendWithdrawal",
    "params": [
        {
            "type": "pimlico_lock",
            "data": {
                "allowance": {
                    "account": "0x1234567890123456789012345678901234567890",
                    "assets": [
                        {
                            "token": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
                            "amount": "1000000000000000000",
                            "chainId": "11155111"
                        }
                    ],
                    "validUntil": "1709308800",
                    "validAfter": "1709222400",
                    "salt": "123456",
                    "version": "1",
                    "metadata": "0x"
                },
                "signature": "0xabcdef..."
            }
        },
        null
    ],
    "id": 1
}

For onebalance mode:

{
    "jsonrpc": "2.0",
    "method": "pimlico_sponsorMagicSpendWithdrawal",
    "params": [
        {
            "type": "onebalance",
            "data": {
                "quote": {
                    // Quote object from pimlico_prepareMagicSpendAllowance
                },
                "amount": "1000000000000000000",
                "recipient": "0x1234567890123456789012345678901234567890"
            }
        },
        null
    ],
    "id": 1
}

Response

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": [
        "0x1234567890123456789012345678901234567890",
        "0xabcdef..."
    ]
}

Types

type SponsorWithdrawalCreditParams = {
    type: "credits";
    data: {
        token: Address;
        recipient: Address;
        amount: string;
        signature: Hex;
    };
};
 
type SponsorWithdrawalPimlicoLockParams = {
    type: "pimlico_lock";
    data: {
        allowance: MagicSpendAllowance;
        signature: Hex;
    };
};
 
type SponsorWithdrawalOneBalanceParams = {
    type: "onebalance";
    data: {
        quote: Quote;
        amount: string;
        recipient: Address;
    };
};
 
type MagicSpendSponsorWithdrawalResponse = [Address, Hex];