Grace and Money

00:00
00:00

If we’ve experienced God as a God of grace, how does that change our attitude toward money?
The early church was an economic subculture that was radically different from the culture around it. In fact wherever the early church is described, we see the Christians’ drastic generosity—so drastic that it seemed unreasonable to those outside the church. Why were they so different? The answer is an experience of God’s grace.
Grace revolutionizes 1) our attitude toward money, 2) our procedure, and 3) the benefits of giving. 
This sermon was preached by Dr. Timothy Keller at Redeemer Presbyterian Church on November 8, 1992. Series: The Attributes of God. Scripture: Acts 4:32-37.
Today's podcast is brought to you by Gospel in Life, the site for all sermons, books, study guides and resources from Timothy Keller and Redeemer Presbyterian Church. If you've enjoyed listening to this podcast and would like to make a gift to Gospel in Life this Giving Tuesday, you can do so by visiting https://gospelinlife.com/tuesday.

Released on 3 Dec 2024

Share this page...
SettingsRequest history8.3.17PHP Version171msRequest Duration4MBMemory UsageGET podcasts/{podcast}/episodes/{episode}
status
200 OK
full_url
https://premier.amperative.site/podcasts/timothy-keller-sermons-podcast-by-gospel-in-life/episodes/g...
action_name
podcasts.episodes.show
controller_action
App\Http\Controllers\PodcastEpisodesController@show
Theme
Open Button Position
Hide Empty Tabs
Autoshow
Reset to defaults
status
200 OK
full_url
https://premier.amperative.site/podcasts/timothy-keller-sermons-podcast-by-gospel-in-life/episodes/g...
action_name
podcasts.episodes.show
controller_action
App\Http\Controllers\PodcastEpisodesController@show
uri
GET podcasts/{podcast}/episodes/{episode}
scope_bindings
true
controller
App\Http\Controllers\PodcastEpisodesController@show
file
app/Http/Controllers/PodcastEpisodesController.php:22-38
middleware
web
duration
172ms
peak_memory
4MB
response
text/html; charset=UTF-8
request_format
html
request_query
[]
request_request
[]
request_headers
0 of 0
array:15 [ "host" => array:1 [ 0 => "premier.amperative.site" ] "connection" => array:1 [ 0 => "keep-alive" ] "pragma" => array:1 [ 0 => "no-cache" ] "cache-control" => array:1 [ 0 => "no-cache" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "accept-encoding" => array:1 [ 0 => "gzip, deflate, br, zstd" ] ]
request_cookies
[]
response_headers
0 of 0
array:3 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sun, 15 Jun 2025 01:28:31 GMT" ] ]
session_attributes
0 of 0
array:1 [ "_token" => "naHLD1FgCUG4qJKsz8kz9tVfJc8jw9RF6t3yJMC5" ]
    • Booting (56.56ms)time
    • Application (114ms)time
    • Routing (6.26ms)
    • Preparing Response (78.45ms)
    • 1 x Application (66.91%)
      114ms
      1 x Preparing Response (45.88%)
      78.45ms
      1 x Booting (33.08%)
      56.56ms
      1 x Routing (3.66%)
      6.26ms
      62 templates were rendered
      • 1x templates.podcast-episodes.showshow.blade.php#?blade
      • 1x livewire.section-podcast-playersection-podcast-player.blade.php#?blade
      • 1x components.sections.header-playerheader-player.blade.php#?blade
      • 1x components.sections.header-topheader-top.blade.php#?blade
      • 35x components.iconicon.blade.php#?blade
      • 1x components.player.tracktrack.blade.php#?blade
      • 1x components.modals.modal-confirmationmodal-confirmation.blade.php#?blade
      • 3x components.modals.generic-1generic-1.blade.php#?blade
      • 1x components.sharethissharethis.blade.php#?blade
      • 3x components.cards.episodeepisode.blade.php#?blade
      • 1x components.modals.model-show-signupmodel-show-signup.blade.php#?blade
      • 1x components.recommendations.index-bespokeindex-bespoke.blade.php#?blade
      • 1x components.promotional-blockspromotional-blocks.blade.php#?blade
      • 1x components.sections.footerfooter.blade.php#?blade
      • 2x components.form.inputinput.blade.php#?blade
      • 2x components.form.input-groupinput-group.blade.php#?blade
      • 1x components.layouts.mastermaster.blade.php#?blade
      • 1x components.faviconfavicon.blade.php#?blade
      • 1x components.social-metasocial-meta.blade.php#?blade
      • 1x components.modals.searchsearch.blade.php#?blade
      • 1x components.toast-controllertoast-controller.blade.php#?blade
      • 1x components.modals.model-show-thank-youmodel-show-thank-you.blade.php#?blade
      uri
      GET podcasts/{podcast}/episodes/{episode}
      middleware
      web
      scope_bindings
      true
      controller
      App\Http\Controllers\PodcastEpisodesController@show
      as
      podcasts.episodes.show
      file
      app/Http/Controllers/PodcastEpisodesController.php:22-38
      22 statements were executed (13 duplicates)Show only duplicates41.1ms
      • RedirectMiddleware.php#49premier970μsselect * from `redirects` where `is_regex` = 1 and `redirects`.`deleted_at` is null
        Bindings
        • 0: 1
        Backtrace
        • app/Http/Middleware/RedirectMiddleware.php:49
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:209
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:127
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:807
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:786
      • RedirectMiddleware.php#79premier570μsselect * from `redirects` where `is_regex` = 0 and `match` = '/podcasts/timothy-keller-sermons-podcast-by-gospel-in-life/episodes/grace-and-money' and `is_active` = 1 and `redirects`.`deleted_at` is null limit 1
        Bindings
        • 0: 0
        • 1: /podcasts/timothy-keller-sermons-podcast-by-gospel-in-life/episodes/grace-and-money
        • 2: 1
        Backtrace
        • app/Http/Middleware/RedirectMiddleware.php:79
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:209
        • vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:127
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:807
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:786
      • DatabaseSessionHandler.php#97premier560μsselect * from `sessions` where `id` = 'yjWF0XHWeGyhTDfLezMRTWdfPD4CVU5iRAv7Qbh4' limit 1
        Bindings
        • 0: yjWF0XHWeGyhTDfLezMRTWdfPD4CVU5iRAv7Qbh4
        Backtrace
        • vendor/laravel/framework/src/Illuminate/Session/DatabaseSessionHandler.php:97
        • vendor/laravel/framework/src/Illuminate/Session/Store.php:117
        • vendor/laravel/framework/src/Illuminate/Session/Store.php:105
        • vendor/laravel/framework/src/Illuminate/Session/Store.php:89
        • vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:147
      • ContentFamilyTrait.php#42premier900μsselect * from `podcasts` where `slug` = 'timothy-keller-sermons-podcast-by-gospel-in-life' and `is_active` = 1 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: timothy-keller-sermons-podcast-by-gospel-in-life
        • 1: 1
        Backtrace
        • app/Models/Traits/ContentFamilyTrait.php:42
        • vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php:61
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:961
        • vendor/livewire/livewire/src/Features/SupportPageComponents/SupportPageComponents.php:214
        • vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:42
      • ContentFamilyTrait.php#59premier12.05msselect * from `podcast_episodes` where `podcast_episodes`.`podcast_id` = 40 and `podcast_episodes`.`podcast_id` is not null and `slug` = 'grace-and-money' and `podcast_episodes`.`deleted_at` is null order by `published_at` desc limit 1
        Bindings
        • 0: 40
        • 1: grace-and-money
        Backtrace
        • app/Models/Traits/ContentFamilyTrait.php:59
        • vendor/laravel/framework/src/Illuminate/Routing/ImplicitRouteBinding.php:56
        • vendor/laravel/framework/src/Illuminate/Routing/Router.php:961
        • vendor/livewire/livewire/src/Features/SupportPageComponents/SupportPageComponents.php:214
        • vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:42
      • PodcastEpisodesController.php#24premier500μsselect exists(select * from `brands` where `brands`.`id` is null and `brands`.`deleted_at` is null) as `exists`
        Backtrace
        • app/Http/Controllers/PodcastEpisodesController.php:24
        • vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:44
        • vendor/laravel/framework/src/Illuminate/Routing/Route.php:266
        • vendor/laravel/framework/src/Illuminate/Routing/Route.php:212
      • PodcastEpisode.php#193premier790μsselect exists(select * from `musicables` where `musicables`.`musicable_type` = 'App\\Models\\PodcastEpisode' and `musicables`.`musicable_id` = 25393 and `musicables`.`musicable_id` is not null) as `exists`
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 25393
        Backtrace
        • app/Models/PodcastEpisode.php:193
        • app/Livewire/SectionPodcastPlayer.php:74
        • app/Livewire/SectionPodcastPlayer.php:29
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:43
      • PodcastEpisode.php#100premier610μsselect * from `podcasts` where `podcasts`.`id` = 40 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 40
        Backtrace
        • app/Models/PodcastEpisode.php:100
        • app/Models/PodcastEpisode.php:193
        • app/Livewire/SectionPodcastPlayer.php:74
        • app/Livewire/SectionPodcastPlayer.php:29
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
      • Podcast.php#215premier620μsselect exists(select * from `music_genres` inner join `musicables` on `music_genres`.`id` = `musicables`.`music_genre_id` where `musicables`.`musicable_id` = 40 and `musicables`.`musicable_type` = 'App\\Models\\Podcast' and `music_genres`.`deleted_at` is null) as `exists`
        Bindings
        • 0: 40
        • 1: App\Models\Podcast
        Backtrace
        • app/Models/Podcast.php:215
        • app/Models/PodcastEpisode.php:193
        • app/Livewire/SectionPodcastPlayer.php:74
        • app/Livewire/SectionPodcastPlayer.php:29
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
      • SectionPodcastPlayer.php#78premier430μsselect * from `listenable_progress_items` where `listenable_progress_items`.`listenable_type` = 'App\\Models\\PodcastEpisode' and `listenable_progress_items`.`listenable_id` = 25393 and `listenable_progress_items`.`listenable_id` is not null and `user_id` is null limit 1
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 25393
        Backtrace
        • app/Livewire/SectionPodcastPlayer.php:78
        • app/Livewire/SectionPodcastPlayer.php:29
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:95
      • SectionPodcastPlayer.php#138premier8.04msselect * from `podcast_episodes` where `podcast_id` = 40 and `published_at` < '2024-12-03 11:00:00' and `podcast_episodes`.`deleted_at` is null order by `published_at` desc limit 1
        Bindings
        • 0: 40
        • 1: 2024-12-03 11:00:00
        Backtrace
        • app/Livewire/SectionPodcastPlayer.php:138
        • app/Livewire/SectionPodcastPlayer.php:31
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:95
      • SectionPodcastPlayer.php#148premier8.72msselect * from `podcast_episodes` where `podcast_id` = 40 and `published_at` > '2024-12-03 11:00:00' and `podcast_episodes`.`deleted_at` is null order by `published_at` asc limit 3
        Bindings
        • 0: 40
        • 1: 2024-12-03 11:00:00
        Backtrace
        • app/Livewire/SectionPodcastPlayer.php:148
        • app/Livewire/SectionPodcastPlayer.php:32
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:95
      • PodcastEpisode.php#193premier860μsselect exists(select * from `musicables` where `musicables`.`musicable_type` = 'App\\Models\\PodcastEpisode' and `musicables`.`musicable_id` = 25393 and `musicables`.`musicable_id` is not null) as `exists`
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 25393
        Backtrace
        • app/Models/PodcastEpisode.php:193
        • view::livewire.section-podcast-player:4
        • vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php:38
        • vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:75
        • vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php:16
      • Podcast.php#215premier680μsselect exists(select * from `music_genres` inner join `musicables` on `music_genres`.`id` = `musicables`.`music_genre_id` where `musicables`.`musicable_id` = 40 and `musicables`.`musicable_type` = 'App\\Models\\Podcast' and `music_genres`.`deleted_at` is null) as `exists`
        Bindings
        • 0: 40
        • 1: App\Models\Podcast
        Backtrace
        • app/Models/Podcast.php:215
        • app/Models/PodcastEpisode.php:193
        • view::livewire.section-podcast-player:4
        • vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php:38
        • vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:75
      • Setting.php#20premier590μsselect * from `settings` where `setting_key` = 'web_donation_link' limit 1
        Bindings
        • 0: web_donation_link
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php:38
        • vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:75
        • vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php:16
      • Setting.php#20premier540μsselect * from `settings` where `setting_key` = 'web_donation_link' limit 1
        Bindings
        • 0: web_donation_link
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php:38
        • vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:75
        • vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php:16
      • PodcastEpisode.php#193premier660μsselect exists(select * from `musicables` where `musicables`.`musicable_type` = 'App\\Models\\PodcastEpisode' and `musicables`.`musicable_id` = 25393 and `musicables`.`musicable_id` is not null) as `exists`
        Bindings
        • 0: App\Models\PodcastEpisode
        • 1: 25393
        Backtrace
        • app/Models/PodcastEpisode.php:193
        • app/Livewire/SectionPodcastPlayer.php:102
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:43
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:95
      • Podcast.php#215premier660μsselect exists(select * from `music_genres` inner join `musicables` on `music_genres`.`id` = `musicables`.`music_genre_id` where `musicables`.`musicable_id` = 40 and `musicables`.`musicable_type` = 'App\\Models\\Podcast' and `music_genres`.`deleted_at` is null) as `exists`
        Bindings
        • 0: 40
        • 1: App\Models\Podcast
        Backtrace
        • app/Models/Podcast.php:215
        • app/Models/PodcastEpisode.php:193
        • app/Livewire/SectionPodcastPlayer.php:102
        • vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
        • vendor/laravel/framework/src/Illuminate/Container/Util.php:43
      • PodcastEpisode.php#100premier620μsselect * from `podcasts` where `podcasts`.`id` = 40 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 40
        Backtrace
        • app/Models/PodcastEpisode.php:100
        • app/Models/Traits/ThumbnailImage.php:26
        • app/Models/Traits/ThumbnailImage.php:66
        • view::livewire.section-podcast-player:194
        • vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php:38
      • PodcastEpisode.php#100premier580μsselect * from `podcasts` where `podcasts`.`id` = 40 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 40
        Backtrace
        • app/Models/PodcastEpisode.php:100
        • app/Models/Traits/ThumbnailImage.php:26
        • app/Models/Traits/ThumbnailImage.php:66
        • view::livewire.section-podcast-player:194
        • vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php:38
      • PodcastEpisode.php#100premier540μsselect * from `podcasts` where `podcasts`.`id` = 40 and `podcasts`.`deleted_at` is null limit 1
        Bindings
        • 0: 40
        Backtrace
        • app/Models/PodcastEpisode.php:100
        • app/Models/Traits/ThumbnailImage.php:26
        • app/Models/Traits/ThumbnailImage.php:66
        • view::livewire.section-podcast-player:194
        • vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php:38
      • Setting.php#20premier610μsselect * from `settings` where `setting_key` = 'web_donation_link' limit 1
        Bindings
        • 0: web_donation_link
        Backtrace
        • app/Models/Setting.php:20
        • app/Helpers/Settings.php:6
        • vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:124
        • vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • vendor/livewire/livewire/src/Mechanisms/ExtendBlade/ExtendedCompilerEngine.php:22
      App\Models\Podcast
      5Podcast.php#?
      App\Models\PodcastEpisode
      5PodcastEpisode.php#?
      App\Models\Setting
      3Setting.php#?
      section-podcast-player #CmWonJ9IlqGhBXglkFwx
      array:4 [ "data" => array:8 [ "podcast" => App\Models\Podcast {#2301 #connection: "mysql...
          _token
          naHLD1FgCUG4qJKsz8kz9tVfJc8jw9RF6t3yJMC5
          ClearShow all
          Date ↕MethodURLData
          #12025-06-15 02:28:31GET/podcasts/timothy-keller-sermons-podcast-by-gospel-in-life/episodes/grace-and-money6222131