đ¯ Goal
Go beyond the built-in operations: have your Agent preview and execute contract calls you construct yourself, and produce EIP-712 typed-data signatures â with simulation, risk checks and an explicit confirmation step in front of every action.
â Prerequisites
- Agentic Wallet installed and signed in.
- Developer Mode enabled in the Binance App. It cannot be switched on by the Agent, by the CLI, or from the web â this is deliberate.
Check the current state before you try anything else:
"Is Developer Mode enabled on my wallet?"
Code
Look for devMode.enabled. If it is false, enable it in Binance App â Agentic Wallet management
page â Settings, then ask again. Four fields are worth reading before you script anything:
| Field | Meaning |
|---|---|
devMode.enabled | Whether external signing is currently allowed at all |
devMode.expiresAt | When Developer Mode lapses (Unix seconds); null when disabled or expired |
devMode.dailyLimit | The external-sign spend cap for a 24-hour period |
developerModeQuotaUsed | How much of that cap has already been consumed today |
This quota is its own pool. Developer Mode spending is independent of your main
dailyLimit, and of the prediction, DeFi and x402 quotas â it neither consumes them nor is capped by them. ReaddeveloperModeQuotaUsedfor Developer Mode usage, neverdefiQuotaUsedorquotaUsed.
What Developer Mode does and does not change
By default, Agentic Wallet performs only capabilities that have been verified end to end â swap, transfer, limit order, prediction market, tokenized securities, DeFi â and does not sign or initiate arbitrary transactions. That is a security decision rather than a missing feature; see Verified Capabilities Only for the reasoning.
Developer Mode is the one exception, and it is deliberately narrow.
What enabling it adds:
- Arbitrary contract calls you construct â EVM
to+ calldata, or a Solana unsigned transaction. - EIP-712 typed-data signatures for payloads you build yourself, such as Permit and Permit2.
What does not move:
| Boundary | Still applies |
|---|---|
| A separate spend cap | External signing draws on its own Developer Mode daily limit, set in the App |
| Time-boxed access | Developer Mode expires â devMode.expiresAt â and must be re-enabled in the App |
| Risk interception | Operations assessed as high risk are blocked outright, before you can confirm them |
| Private key custody | Keys are MPC keyless and cannot be exported â there is no way to sign outside the wallet |
| Two-step confirmation | Every contract call and signature requires a preview and an explicit confirmation |
The enable switch lives in the Binance App only â an Agent cannot turn Developer Mode on for itself, which is why the prerequisite check above matters before you script anything against it.
Supported signature types
Developer Mode widens what the Agent can do, but it does not lower the security floor. Message signing stays restricted to structured data that can be parsed and shown to you before you approve it:
| Signature type | Method | Supported |
|---|---|---|
| EIP-712 typed data | eth_signTypedData_v4 | â Yes |
| EIP-191 personal message | personal_sign / eth_sign | â Not supported |
sign-message accepts --signType EIP712 only, and --message must be a full
eth_signTypedData_v4 JSON-RPC request â not a plain string and not a pre-hashed digest.
Why typed data only. EIP-712 carries its own schema â domain, types, and the exact values being authorised â so a preview can show you the spender, amounts and deadlines you are actually granting. An EIP-191 plain-text message carries no structure at all: neither you nor the Agent can verify what the resulting signature will be used for, which is exactly the property blind-signing attacks rely on. Since an Agent signs without a human inspecting every payload, that class of request is not permitted.
What this means in practice
A large number of third-party flows ask you to sign a plain text message rather than structured typed data. Common examples:
- "Sign in with Ethereum" style logins and dApp session authentication
- Airdrop, reward or points claim flows that verify address ownership by signing a sentence
- Allowlist or campaign registrations
All of these use EIP-191 personal_sign, and they cannot be completed with an Agentic Wallet.
This applies even when the activity that earned the reward was itself performed through Agentic
Wallet â for example, supplying liquidity or staking through the DeFi flows, and
later being asked to sign a message to claim a distribution from that protocol.
Because keys cannot be exported, the signature cannot be produced elsewhere with the same address either.
The two-step safety flow
Every Developer Mode operation is deliberately split in two. The Agent will:
- Run preview â parses the operation, simulates it, and returns risk information.
- Show you the parsed transaction or message, any
risks, and any authority being granted. - Wait for your explicit confirmation.
- Run execute, using the
requestIdfrom that preview.
A preview that returns an error produces no requestId and cannot be executed. Previews also expire
â if execute reports an expired preview, simply preview again.
Contract calls
"Preview a contract call to 0xTargetContract on BSC with this calldata"
Code
| Parameter | Required | Description |
|---|---|---|
--binanceChainId | Yes | For example 56 (BSC), 1 (Ethereum), CT_501 (Solana) |
--from | Yes | Your Agentic Wallet address on that chain â ownership is verified server-side |
--to | EVM | Target contract address |
--value | No | Native value in wei, not human-readable. Integers only; decimals rejected |
--inputData | No | EVM calldata, defaults to 0x |
--unsignedTx | Solana | Base58-encoded unsigned transaction, used instead of --to / --inputData |
--gasLimit | No | EVM only. An integer from 21000 to 15000000. Omit it and the backend estimates |
Leave gas alone by default.
contract-callaccepts no gas price and no gas option. Preview simulates the call, and the backend estimates the gas limit.
Setting your own gas limit. --gasLimit is an advanced fallback rather than part of the normal
flow â pass it only when you specifically want a ceiling. It is a cap, not a bypass:
- The call is still simulated, with your value as the ceiling. If it passes, that exact value goes on chain â no buffer is added.
- If the call needs more gas than the cap, preview fails rather than letting the transaction run out of gas after broadcast. Raise the value and preview again.
- Pass it on
previewonly.executetakes just therequestIdand reuses the value from that preview. - EVM only â passing it on Solana is rejected, as is any value outside the range above.
Then execute with the returned requestId:
Code
Reading the result:
status: BROADCASTEDâ signed and submitted; use the returnedtxHashto track it on-chain.status: PENDING_CONFIRMATIONâ you must approve in the Binance App before it completes.requireConfirmationin the preview tells you in advance which of the two to expect.parsedTx.amountis in the smallest unit. Divide by the token'sdecimalsfromtokenInfosbefore reading it as a human amount.
If the preview is intercepted, it returns an error and no requestId â the operation was assessed
as high risk and stopped before you could confirm it. There is nothing to execute in that case; the
error body carries the reason.
Signing messages
"Preview this EIP-712 signature request"
Code
params[0] must be your own Agentic Wallet address; params[1] is the EIP-712 typed data
(domain, types, primaryType, message) as a JSON string.
Code
On success you get status: COMPLETED with signature and signatureRecovery. If it returns
PENDING_CONFIRMATION, approve in the App and then fetch the result:
Code
REJECTED or EXPIRED means no signature will be produced.
Permit and Permit2: these grant spending authority, not just a signature. Before confirming, read the
spender,sigDeadlineand each entry indetails[](token, amount, expiration) fromparsedMessageâ that is exactly what you are authorising.
Signature history
"Show me my recent message signatures"
Code
Returns past signatures with signatureTime, messageType, and for Permit-style messages the
spenderAddress, tokenPermits and signatureDeadline. Use it to audit what authority your wallet
has granted over time. See also Security & Settings for reviewing and
revoking approvals.
What's next
- Security & Settings â daily limit, token scope, approvals
- Automated Strategies â combine Skills into end-to-end automation
- Skills Reference â full capability reference